

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

# 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 キータブ、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 managed policies for 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 ユーザーガイド*」の「[Choosing a AWS Key Management Service key](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 がシークレットとシークレットの暗号化に使用される AWS KMS キーの両方にアクセスするために使用する IAM ロールを指定します。適切なアクセス許可を持つ IAM ロールを作成するには、次の手順を実行します。

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. 左側のナビゲーションペインの **[アクセス管理]** で、**[ロール]** を選択し、**[ロールの作成]** を選択します。

1. **[信頼されたエンティティを選択]** ページの **[信頼されたエンティティタイプ]** では、**[AWS サービス]** を選択します。

1. **[ユースケース]** では、ドロップダウンリストから、**[DataSync]** を選択します。[**次へ**] を選択します。

1. **[アクセス許可を追加]** ページで **[次へ]** を選択してください。ロール名を入力し、**[ロールの作成]** を選択します。

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"
           }
       ]
   }
   ```

------

   *your-secret-name* を Secrets Manager シークレットの名前に置き換えます。

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/)」を参照してください。