CodeBuild のビルドログで一部の値が「***」に置換され確認できないときの対処方法
困っていた内容
CodeBuild で環境変数を通じてパラメータストアの値を取得しています。
デバッグのため環境変数の値をログに出力したところ「***
」に置換され確認できませんでした。
元の環境変数の値を確認する方法を教えてください。
どう対応すればいいの?
Base64 エンコードなど、一度別の値に置き換えてログ出力してください。
CodeBuild では機密情報を保護するため、パラメータストアから取得した値などを自動的にマスキングしてログ出力します。
デバッグなどでログから元の値を確認したい場合はあらかじめ Base64 エンコードを行うなど、元の値に戻せる方法で別の値に置き換えてログに出力してください。その後、ビルドログに出力された値をもとに、元の値を復元してください。
# Buildspec の記載例
- echo $SSM_RETRIEVED_VALUE | base64
# ローカル環境で復元する際のコマンド例
echo "【エンコードされた値】" | base64 -d
# 実行例
$ echo "aGF0by1lbnYtdmFsdWUK" | base64 -d
hato-env-value
なお、2025年2月時点の挙動として、マスキング対象となった文字列は機械的に処理され、環境変数の値以外の箇所でもマスキングされます。
例えば、マスキング対象がhato-env-value
の場合、commands ブロックでecho "hato-env-value"
を指定した場合、次のようなログとなります。
Running command echo "***"
***
変数名等を決める際は、同じ文字列を避けるなど、使用する文字列に注意してください。
参考資料
機密情報を保護するために、CodeBuild ログでは次の情報が非表示になっています。
- AWS アクセスキー ID。詳細については、AWS Identity and Access Management ユーザーガイドの IAM ユーザーのアクセスキーの管理を参照してください。
- パラメータストアを使用して指定された文字列。詳細については、「Amazon EC2 Systems Manager ユーザーガイド」の「Systems Manager パラメータストア」および「Systems Manager パラメータストアコンソールのチュートリアル」を参照してください。
- AWS Secrets Manager を使用して指定された文字列。詳細については、「キー管理」を参照してください。