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/で始まる名前のシークレットにスコープされたGetSecretValueDescribeSecretを付与します。
  • ステートメント2: ListSecretsはリソースARNで制限できない(リスト操作)ため、"*"を使用します。

KMS権限

シークレットがカスタマー管理のKMSキー(デフォルトのaws/secretsmanagerキーではない)で暗号化されている場合、そのキーに対するkms:Decrypt権限も必要です。

ユースケース

アプリケーション起動時の設定読み込み、データベース認証情報を取得するLambda関数、コンテナにシークレットを注入するECSタスク、デプロイ認証情報にアクセスするCI/CDパイプライン。

試してみる — AWS IAM Policy Generator

フルツールを開く