翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アクセス AWS Secrets Manager 別のアカウントのシークレット
1 つのアカウントのユーザーに別のアカウントのシークレットへのアクセス (クロスアカウントアクセス) を許可するには、リソースポリシーとアイデンティティポリシーの両方でアクセスを許可する必要があります。これは、シークレットと同じアカウントのアイデンティティにアクセスを許可することとは異なります。
また、シークレットが暗号化されているKMSキーの使用を ID に許可する必要があります。これは、 を使用できないためです。 AWS マネージドキー (aws/secretsmanager
) クロスアカウントアクセス用。代わりに、作成したKMSキーを使用してシークレットを暗号化し、キーポリシーをアタッチする必要があります。KMS キーの作成には料金がかかります。シークレットの暗号化キーを変更するには、AWS Secrets Manager シークレットの変更 を参照してください。
以下のポリシーの例では、Account1 にシークレットと暗号化キーがあり、Account2 にシークレット値へのアクセスを許可するアイデンティティがあると仮定します。
ステップ 1: リソースポリシーを Account1 のシークレットにアタッチする
-
次のポリシーでは、 を許可します。
ApplicationRole
inAccount2
でシークレットにアクセスするにはAccount1
。 このポリシーを使用するには、「」を参照してくださいアクセス許可ポリシーを AWS Secrets Manager シークレットにアタッチする。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
Account2
:role/ApplicationRole
" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }
ステップ 2: Account1 のキーのKMSキーポリシーにステートメントを追加する
-
次のキーポリシーステートメントでは、 を許可します。
ApplicationRole
inAccount2
で KMS キーを使用するAccount1
でシークレットを復号するにはAccount1
。 このステートメントを使用するには、キーのキーポリシーに追加しますKMS。詳細については、キーポリシーの変更を参照してください。{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
Account2
:role/ApplicationRole
" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }
ステップ 3: Account2 のアイデンティティにアイデンティティポリシーをアタッチする
次のポリシーでは、 を許可します。
ApplicationRole
inAccount2
でシークレットにアクセスするにはAccount1
でもある暗号化キーを使用してシークレット値を復号します。Account1
。 このポリシーを使用するには、「」を参照してくださいアクセス許可ポリシーをアイデンティティにアタッチする。シークレットARNの は、シークレット のシークレットの詳細ページの Secrets Manager ARNコンソールで確認できます。または、describe-secret
を呼び出すこともできます。{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "
SecretARN
" }, { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:Region
:Account1
:key/EncryptionKey
" } ] }