

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 從不同帳戶存取 AWS Secrets Manager 秘密
<a name="auth-and-access_examples_cross"></a>

若要允許一個帳戶中的使用者存取另一個帳戶中的秘密 (*跨帳戶存取*)，您必須同時允許在資源政策和身分政策中的存取權。這與授予和秘密所在的同一帳戶中的身分存取權不同。

跨帳戶許可僅適用於下列操作：
+ [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)。在 **Secret ARN** (秘密 ARN) 下的秘密詳細資訊頁面中，您可以從 Secrets Manager 主控台找到秘密的 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}}"
          }
      ]
  }
  ```

------