Secrets Manager読み取りアクセスのIAMポリシー
AWS Secrets Managerからシークレットを読み取るIAMポリシーを作成します。最小権限の原則のために特定のシークレット名プレフィックスにスコープされています。
Security & Encryption
詳細な説明
Secrets Manager読み取りポリシー
アプリケーションは実行時にデータベースパスワード、APIキー、その他のシークレットを取得する必要があります。このポリシーは、特定のプレフィックスパターンに一致するシークレットへの読み取り専用アクセスを付与します。
ポリシーJSON
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowSecretsRead",
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue",
"secretsmanager:DescribeSecret"
],
"Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:myapp/*"
},
{
"Sid": "AllowListSecrets",
"Effect": "Allow",
"Action": [
"secretsmanager:ListSecrets"
],
"Resource": "*"
}
]
}
2つのステートメント
- ステートメント1:
myapp/で始まる名前のシークレットにスコープされたGetSecretValueとDescribeSecretを付与します。 - ステートメント2:
ListSecretsはリソースARNで制限できない(リスト操作)ため、"*"を使用します。
KMS権限
シークレットがカスタマー管理のKMSキー(デフォルトのaws/secretsmanagerキーではない)で暗号化されている場合、そのキーに対するkms:Decrypt権限も必要です。
ユースケース
アプリケーション起動時の設定読み込み、データベース認証情報を取得するLambda関数、コンテナにシークレットを注入するECSタスク、デプロイ認証情報にアクセスするCI/CDパイプライン。