AWS Secrets Manager シークレットにリソースベースのポリシーを適用する方法を教えてください。

所要時間1分
0

リソースベースのポリシーを使用して AWS Secrets Manager シークレットへのアクセスを制御したいと考えています。

簡単な説明

リソースベースのポリシーを使用して、シークレットへのユーザーアクセスと AWS Identity and Access Management (IAM) ユーザーが実行できるアクションを指定します。

**注:**シークレットは Secrets Manager でリソースとして定義されます。

Secrets Manager のリソースベースのポリシーは、次の一般的なシナリオで使用できます。

  • AWS アカウント間でシークレットを共有します。
  • シークレットに明示的な拒否を追加して権限を強制します。

次のリソースベースのポリシーの例ではエフェクトアクションリソースプリンシパルの各要素を使用しています。

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "secretsmanager:*",
      "Principal": {"AWS": "arn:aws:iam::123456789999:user/Mary"},
      "Resource": "*"
    }
  ]
}

解決策

**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

Secrets Manager でリソースベースのポリシーを適用するには、次の手順を実行します。

  1. シークレットを作成し、シークレットの ARN を書き留めておきます。

  2. このポリシーをコピーしてテキストエディタに貼り付け、my_explicit_deny_policy.json などの JSON ファイルとして保存します。

    { "Version": "2012-10-17","Statement": [
        {
          "Effect": "Deny",
          "Action": "secretsmanager:GetSecretValue",
          "Principal": {"AWS": "arn:aws:iam::123456789999:user/Mary"},
          "Resource": "*"
        }
      ]
    }
    
  3. put-resource-policy AWS CLI コマンドを実行してシークレットのリソースポリシーをアタッチし、シークレット値の取得を明示的に拒否します。

    aws secretsmanager put-resource-policy --secret-id My_Resource_Secret --resource-policy file:// My_explicit_deny_Policy.json
    

    次のような出力が表示されます。

    {"ARN": "arn:aws:secretsmanager:<your region>:123456789999:secret:My_Resource_Secret",
    "Name": "My_Resource_Secret"
    }
    

    **注:**AWS Key Management Service (AWS KMS) の復号許可は、AWS KMS キーを使用してシークレットを暗号化する場合にのみ必要です。シークレットがデフォルトの AWS KMS キーで暗号化されている場合、サードパーティアカウントの IAM プリンシパルはシークレットを取得できません。

詳細については、「AWS シークレットマネージャーシークレットにアクセス権限ポリシーをアタッチする」を参照してください。

コメントはありません

関連するコンテンツ