

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 別のアカウントから AWS Secrets Manager シークレットにアクセスする
<a name="auth-and-access_examples_cross"></a>

1 つのアカウントのユーザーに別のアカウントのシークレットへのアクセス (*クロスアカウントアクセス*) を許可するには、リソースポリシーとアイデンティティポリシーの両方でアクセスを許可する必要があります。これは、シークレットと同じアカウントのアイデンティティにアクセスを許可することとは異なります。

クロスアカウント許可は、以下のオペレーションに対してのみ有効です。
+ [CancelRotateSecret](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_CancelRotateSecret.html)
+ [DeleteResourcePolicy](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_DeleteResourcePolicy.html)
+ [DeleteSecret](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_DeleteSecret.html)
+ [DescribeSecret](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_DescribeSecret.html)
+ [GetRandomPassword](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_GetRandomPassword.html)
+ [GetResourcePolicy](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_GetResourcePolicy.html)
+ [GetSecretValue](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_GetSecretValue.html)
+ [ListSecretVersionIds](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_ListSecretVersionIds.html)
+ [PutResourcePolicy](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_PutResourcePolicy.html)
+ [PutSecretValue](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_PutSecretValue.html)
+ [RemoveRegionsFromReplication](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_RemoveRegionsFromReplication.html)
+ [ReplicateSecretToRegions](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_ReplicateSecretToRegions.html)
+ [RestoreSecret](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_RestoreSecret.html)
+ [RotateSecret](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_RotateSecret.html)
+ [StopReplicationToReplica](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_StopReplicationToReplica.html)
+ [TagResource](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_TagResource.html)
+ [UntagResource](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_UntagResource.html)
+ [UpdateSecret](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_UpdateSecret.html)
+ [UpdateSecretVersionStage](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_UpdateSecretVersionStage.html)
+ [ValidateResourcePolicy](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_ValidateResourcePolicy.html)

[PutResourcePolicy](https://docs.aws.amazon.com//secretsmanager/latest/apireference/API_PutResourcePolicy.html) アクションを指定して `BlockPublicPolicy` パラメータを使用し、シークレットに直接アタッチされているリソースポリシーを通じてパブリックアクセスが付与されないようにすることで、リソースを保護できます。[IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-preview-access) を使用してクロスアカウントアクセスを確認することもできます。

また、シークレットの暗号化に使用している KMS キーをアイデンティティで使用できるようにする必要があります。これは、クロスアカウントアクセスに AWS マネージドキー (`aws/secretsmanager`) を使用できないためです。代わりに、作成した KMS キーを使用してシークレットを暗号化し、キーポリシーをそれにアタッチする必要があります。KMS キーの作成には料金が発生します。シークレットの暗号化キーを変更するには、[AWS Secrets Manager シークレットを変更する](manage_update-secret.md) を参照してください。

**重要**  
`secretsmanager:PutResourcePolicy` アクセス許可を付与するリソースベースのポリシーは、他のアカウントのプリンシパルであっても、リソースベースのポリシーを変更できるようにします。このアクセス許可により、プリンシパルはシークレットへの完全な管理アクセスの取得など、既存のアクセス許可をエスカレートできます。[最小特権アクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)の原則をポリシーに適用することをお勧めします。詳細については、「[リソースベースのポリシー](auth-and-access_resource-policies.md)」を参照してください。

以下のポリシーの例では、*Account1* にシークレットと暗号化キーがあり、*Account2* にシークレット値へのアクセスを許可するアイデンティティがあると仮定します。

**ステップ 1: リソースポリシーを *Account1* のシークレットにアタッチする**
+ 次のポリシーは、*Account2* の *ApplicationRole* に *Account1* のシークレットへのアクセスを許可します。このポリシーを使用するには、[リソースベースのポリシー](auth-and-access_resource-policies.md) を参照してください。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:role/ApplicationRole"
              },
              "Action": "secretsmanager:GetSecretValue",
              "Resource": "*"
          }
      ]
  }
  ```

------

**ステップ 2: *Account1* の KMS キーのキーポリシーにステートメントを追加する**
+ 次のキーポリシーステートメントは、*Account2* の *ApplicationRole* が *Account1* の KMS キーを使用して *Account1* のシークレットを復号するのを許可します。このステートメントを使用するには、それを KMS キーのキーポリシーに追加します。詳細については、[キーポリシーの変更](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)を参照してください。

  ```
  {
    "Effect": "Allow",
    "Principal": {
      "AWS": "arn:aws:iam::Account2:role/ApplicationRole"
    },
    "Action": [
      "kms:Decrypt",
      "kms:DescribeKey"
    ],
    "Resource": "*"
  }
  ```

**ステップ 3: *Account2* のアイデンティティにアイデンティティポリシーをアタッチする**
+ 次のポリシーは、*Account2* の *ApplicationRole* が *Account1* にある暗号化キーを使用て、*Account1* のシークレットにアクセスし、シークレット値を復号するのを許可します。このポリシーを使用するには、[アイデンティティベースのポリシー](auth-and-access_iam-policies.md) を参照してください。シークレットの ARN は、Secrets Manager コンソールのシークレット詳細ページの [**Secret ARN**] (シークレット ARN) で確認できます。または、[https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/describe-secret.html](https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/describe-secret.html) を呼び出すこともできます。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "secretsmanager:GetSecretValue",
              "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName-AbCdEf"
          },
          {
              "Effect": "Allow",
              "Action": "kms:Decrypt",
              "Resource": "arn:aws:kms:us-east-1:123456789012:key/EncryptionKey"
          }
      ]
  }
  ```

------