

# シークレットアクセスポリシーとロールの作成
<a name="USER_DMS_migration-IAM.secret-iam-role-policy"></a>

以下の手順に従って、シークレットアクセスポリシーとロールを作成し、DMS がソースデータベースとターゲットデータベースのユーザー認証情報にアクセスできるようにします。

**シークレットアクセスポリシーとロールを作成して、Amazon RDS の AWS Secrets Manager へのアクセスを許可して適切なシークレットにアクセスできるようにするには**

1. AWS マネジメントコンソール にサインインして、[https://console.aws.amazon.com/iam](https://console.aws.amazon.com/iam/) の AWS Identity and Access Management (IAM) マネジメントコンソールを開きます。

1. **[Policies]** (ポリシー) を選択し、次に**[Create Policy]** (ポリシー作成) を選択します

1. **[JSON]** を選択し、次のポリシーを入力して、シークレットへのアクセスと復号化を有効にします。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "arn:aws:secretsmanager:{{us-east-1}}:{{111122223333}}:secret:SecretName-ABCDEF"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:DescribeKey"
               ],
               "Resource": "arn:aws:kms:{{us-east-1}}:111122223333:key/{{1234abcd-12ab-34cd-56ef-1234567890ab}}"
           }
       ]
   }
   ```

------

   `{{secret_arn}}` は、必要に応じて `SecretsManagerSecretId` より取得できるシークレットの ARN で、`{{kms_key_arn}}` は、シークレットを暗号化するために使用する AWS KMS キーの ARN です。次に例を示します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "arn:aws:secretsmanager:us-east-2:123456789012:secret:MySQLTestSecret-qeHamH"
           },
           {
                "Effect": "Allow",
                "Action": [
                           "kms:Decrypt",
                           "kms:DescribeKey"
                         ],
                "Resource": "arn:aws:kms:us-east-2:123456789012:key/761138dc-0542-4e58-947f-4a3a8458d0fd"
           }
        ]
   }
   ```

------
**注記**  
AWS Secrets Manager で作成されたデフォルトの暗号化キーを使用する場合、`{{kms_key_arn}}` に AWS KMS 許可を指定する必要はありません。  
ポリシーで両方のシークレットへのアクセスを許可する場合は、もう 1 つの {{[secret\_arn]}} に追加の JSON リソースオブジェクトを指定するだけです。

1. フレンドリ名とオプションの説明を使用して、ポリシーを確認して作成します。

1. **[Roles]** (ロール)、**[Create role]** (ロールの作成) の順に選択します。

1. 信頼されたエンティティの種類に、**[AWS service]** (サービス) を選択します。

1. 信頼されたサービスのリストから **[DMS]** を選択し、**[Next: Permissions]** (次へ: アクセス許可) を選択します。

1. ステップ 4 で作成したポリシーを検索しアタッチし、任意のタグを追加しながらロールを確認します。この時点で、信頼されたエンティティとして Amazon RDS リージョンサービスプリンシパルを使用するように、ロールの信頼関係を編集します。このプリンシパルの形式は以下のとおりです。

   ```
   dms.{{region-name}}.amazonaws.com
   ```

   ここで、{{`region-name`}} は 例えば `us-east-1` などといったリージョンの名前です。したがって、このリージョンの Amazon RDS リージョンサービスプリンシパルが続きます。

   ```
   dms.us-east-1.amazonaws.com
   dms-data-migrations.amazonaws.com
   ```