

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

# 使用 Secrets Manager 保護儲存位置登入資料
<a name="location-credentials"></a>

DataSync 會使用[位置](https://docs.aws.amazon.com/datasync/latest/userguide/how-datasync-transfer-works.html#sync-locations)來存取位於內部部署、其他雲端或 中的儲存資源 AWS。某些位置類型會要求您提供登入資料 （例如存取金鑰和私密金鑰、使用者名稱和密碼、Kerberos keytab、SAS 字符等） 來驗證您的儲存系統。當您建立需要憑證進行身分驗證的 DataSync 位置時，您可以使用 AWS Secrets Manager (Secrets Manager) 來存放憑證的秘密。下列選項可供使用：
+ [ManagedSecretConfig](https://docs.aws.amazon.com/datasync/latest/userguide/API_ManagedSecretConfig.html)：DataSync 受管秘密組態。使用以預設金鑰加密的 DataSync 服務受管秘密，將秘密存放在 Secrets Manager 中。
+ [CmkSecretConfig](https://docs.aws.amazon.com/datasync/latest/userguide/API_CmkSecretConfig.html)：使用客戶受管金鑰 (CMK) 組態的 DataSync 受管秘密。使用以 AWS KMS 您管理的金鑰加密的 DataSync 服務受管秘密，將秘密存放在 Secrets Manager 中。
+ [CustomSecretConfig](https://docs.aws.amazon.com/datasync/latest/userguide/API_CustomSecretConfig.html)：客戶受管秘密組態。使用您建立和管理的秘密和金鑰，將秘密存放在 Secrets Manager 中。DataSync 會使用您提供的 IAM 角色存取此秘密。

在所有情況下，Secrets Manager 秘密都會存放在您的帳戶中，可讓您視需要更新秘密，而與 DataSync 服務無關。DataSync 建立和管理的秘密具有字首 `aws-datasync`。

只有在您在 DataSync 外部建立秘密，或從 DataSync 以外的服務對服務受管秘密進行 API 呼叫時，才會向您收取使用秘密的費用。

## 使用以預設金鑰加密的服務受管秘密
<a name="service-secret-default-key"></a>

當您建立 DataSync 位置時，只需提供秘密字串。DataSync 會在 Secrets Manager 中建立秘密資源，以儲存您提供的秘密，並使用您帳戶的預設 Secrets Manager KMS 金鑰加密秘密。您可以直接在 Secrets Manager 中變更秘密值，或使用 DataSync 主控台 AWS CLI或 SDK 更新位置。當您刪除位置資源或將其更新為使用自訂秘密時，DataSync 會自動刪除秘密資源。

**注意**  
若要在 Secrets Manager 中建立、修改和刪除秘密資源，DataSync 必須具有適當的許可。如需詳細資訊，請參閱 [AWS DataSync 的 受管政策](https://docs.aws.amazon.com/datasync/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-awsdatasyncfullaccess)。

## 使用使用自訂 AWS KMS 金鑰加密的服務受管秘密
<a name="service-secret-custom-key"></a>

當您建立 DataSync 位置時，請提供金鑰的 AWS KMS 秘密和 ARN。DataSync 會自動在 Secrets Manager 中建立秘密資源，以儲存您提供的秘密，並使用 AWS KMS 金鑰對其進行加密。您可以直接在 Secrets Manager 中變更秘密值，或使用 DataSync 主控台 AWS CLI或 SDK 更新位置。當您刪除位置資源或將其更新為使用自訂秘密時，DataSync 會自動刪除秘密資源。

**注意**  
您的 AWS KMS 金鑰必須搭配 `ENCRYPT_DECRYPT`金鑰類型使用對稱加密。如需詳細資訊，請參閱*AWS Secrets Manager 《 使用者指南*》中的[選擇 AWS Key Management Service 金鑰](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)。

若要在 Secrets Manager 中建立、修改和刪除秘密資源，DataSync 必須具有適當的許可。如需詳細資訊，請參閱[AWS 受管政策︰AWSDataSyncFullAccess](https://docs.aws.amazon.com/datasync/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-awsdatasyncfullaccess)。

除了使用正確的 DataSync 受管政策之外，您也需要下列許可：

```
{
    "Sid": "DataSyncKmsPermissions",
    "Effect": "Allow",
    "Action": [
        "kms:Encrypt",
        "kms:GenerateDataKey",
        "kms:Decrypt"
    ],
    "Resource": "your-kms-key-arn",
    "Condition": {
        "StringLike": {
            "kms:ViaService": "secretsmanager.*.amazonaws.com"
        }
    }
}
```

將 *your-kms-key-arn* 取代為 KMS 金鑰 ARN。

若要擷取和解密秘密值，DataSync 會使用服務連結角色 (SLR) 來存取您的 AWS KMS 金鑰。若要確保 DataSync 可以使用 KMS 金鑰，請將下列內容新增至金鑰的政策陳述式：

```
{
    "Sid": "Allow DataSync to use the key for decryption",
    "Effect": "Allow",
    "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/aws-service-role/datasync.amazonaws.com/AWSServiceRoleForDataSync"
    },
    "Action": "kms:Decrypt",
    "Resource": "*"
}
```

將 *111122223333* 取代為您的 AWS 帳戶 ID。

## 使用您管理的秘密
<a name="custom-secret-custom-key"></a>

在建立 DataSync 位置之前，請在 [Secrets Manager 中建立秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)。秘密的值只能包含純文字的秘密字串本身。當您建立 DataSync 位置時，請提供秘密的 ARN，以及 DataSync 用來存取秘密的 IAM 角色，以及用來加密秘密的 AWS KMS 金鑰。若要建立具有適當許可的 IAM 角色，請執行下列動作：

1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在左側導覽窗格的**存取管理**下，選擇**角色**，然後選擇**建立角色**。

1. 在**選取信任的實體**頁面上，針對**信任的實體類型**選擇**AWS 服務**。

1. 針對**使用案例**，從下拉式清單中選擇 **DataSync**。選擇**下一步**。

1. 在 **Add permissions** (新增許可) 頁面上，選擇 **Next** (下一步)。輸入角色的名稱，然後選擇**建立角色**。

1. 在**角色**頁面上，搜尋您剛建立的角色，然後選擇其名稱。

1. 在角色**的詳細資訊**頁面上，選擇**許可**索引標籤。選擇**新增許可**，然後選擇**建立內嵌政策**。

1. 選擇 **JSON** 索引標籤，並將下列許可新增至政策編輯器：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret"
               ],
               "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:your-secret-name"
           }
       ]
   }
   ```

------

   以 Secrets Manager 秘密的名稱取代 *your-secret-name*。

1. 選擇**下一步**。輸入政策的名稱，然後選擇**建立政策**。

1. （建議） 若要防止[跨服務混淆代理人問題](https://docs.aws.amazon.com/datasync/latest/userguide/cross-service-confused-deputy-prevention.html)，請執行下列動作：

   1. 在角色**的詳細資訊**頁面上，選擇**信任關係**索引標籤。選擇**編輯信任政策**。

   1. 使用以下範例更新信任政策，其中包含 `aws:SourceArn`和 `aws:SourceAccount`全域條件內容索引鍵：

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "datasync.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole",
                  "Condition": {
                      "StringEquals": {
                      "aws:SourceAccount": "111122223333"
                      },
                      "ArnLike": {
                      "aws:SourceArn": "arn:aws:datasync:us-east-1:111122223333:*"
                      }
                  }
              }
          ]
      }
      ```

------

   1. 選擇**更新政策**。

您可以在建立位置時指定此角色。如果您的秘密使用客戶受管 AWS KMS 金鑰進行加密，則您也需要更新金鑰的政策，以允許從您在先前程序中建立的角色進行存取。若要更新政策，請將下列內容新增至 AWS KMS 金鑰的政策陳述式：

```
{
    "Sid": "Allow DataSync use of the key",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam:111122223333:role/your-role-name”
    },
    "Action": "kms:Decrypt",
    "Resource": "*"
}
```

將 *111122223333* 取代為您的 AWS 帳戶 ID，並將 *your-role-name* 取代為您在先前程序中建立的 IAM 角色名稱。

**注意**  
當您將秘密存放在 Secrets Manager 時， AWS 帳戶 會產生費用。如需定價的資訊，請參閱 [AWS Secrets Manager 定價](https://aws.amazon.com/secrets-manager/pricing/)。