

# 보안 암호 액세스 정책 및 역할 만들기
<a name="USER_DMS_migration-IAM.secret-iam-role-policy"></a>

아래 프로시저에 따라 DMS가 소스 및 대상 데이터베이스의 사용자 자격 증명에 액세스할 수 있도록 허용하는 보안 암호 액세스 정책 및 역할을 만듭니다.

**Amazon RDS가 적절한 보안 암호에 액세스하기 위해 AWS Secrets Manager에 액세스하도록 허용하는 보안 암호 액세스 정책 및 역할을 만드는 방법**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 AWS Identity and Access Management(IAM) 콘솔을 엽니다.

1. **정책**을 선택한 후 **정책 생성**을 선택합니다.

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}}`은 보안 암호의 ARN(상황에 따라 `SecretsManagerSecretId`에서 가져올 수 있음)이고, `{{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 권한을 지정하지 않아도 됩니다.  
정책에서 두 보안 암호에 대한 액세스를 제공하도록 하려면 다른 {{secret\_arn}}에 대해 추가 JSON 리소스 객체를 지정하면 됩니다.

1. 기억하기 쉬운 이름과 설명(선택 사항)이 있는 정책을 검토하고 생성합니다.

1. **역할**을 선택한 다음, **역할 생성**을 선택합니다.

1. 신뢰할 수 있는 엔터티 유형으로서 **AWS 서비스**를 선택합니다.

1. 서비스 목록에서 **DMS**를 신뢰할 수 있는 서비스로 선택하고 **다음: 권한**을 선택합니다.

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
   ```