

# Amazon S3 리소스에 액세스할 수 있는 IAM 정책 생성
<a name="AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy"></a>

Aurora는 Aurora DB 클러스터로 데이터를 로드하거나 Aurora DB 클러스터로부터 데이터를 저장하기 위해 Amazon S3 리소스에 액세스할 수 있습니다. 하지만 Aurora가 Amazon S3에 액세스하도록 허용하는 버킷 및 객체 권한을 제공하는 IAM 정책을 먼저 생성해야 합니다.

다음 표에는 사용자 대신 Amazon S3 버킷에 액세스할 수 있는 Aurora 기능과 각 기능에 요구되는 최소 필요 버킷 및 객체 권한이 나와 있습니다.


| 기능 | 버킷 권한 | 객체 권한 | 
| --- | --- | --- | 
|  `LOAD DATA FROM S3`  |  `ListBucket`  |  `GetObject` `GetObjectVersion`  | 
| LOAD XML FROM S3 |  `ListBucket`  |  `GetObject` `GetObjectVersion`  | 
|  `SELECT INTO OUTFILE S3`  |  `ListBucket`  |  `AbortMultipartUpload` `DeleteObject` `GetObject` `ListMultipartUploadParts` `PutObject`  | 

다음 정책은 Aurora에서 사용자를 대신하여 Amazon S3 버킷에 액세스하는 데 필요할 수 있는 권한을 추가합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAuroraToExampleBucket",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:AbortMultipartUpload",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetObjectVersion",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        }
    ]
}
```

------

**참고**  
 `Resource` 값에 두 항목을 모두 포함해야 합니다. Aurora에는 버킷 자체와 버킷 내부의 모든 객체에 대한 권한이 필요합니다.  
사용 사례에 따라 샘플 정책에 모든 권한을 추가하지 않아도 됩니다. 또한 다른 권한이 필요할 수 있습니다. 예를 들어 Amazon S3 버킷이 암호화된 경우에는 `kms:Decrypt` 권한을 추가해야 합니다.

다음 단계를 사용하여 사용자를 대신하여 Amazon S3 버킷에 액세스하는 데 필요한 최소 권한을 Aurora에 제공하는 IAM 정책을 생성할 수 있습니다. Aurora이 모든 Amazon S3 버킷에 액세스할 수 있도록 허용하려면 이러한 단계를 건너뛰고 직접 생성하지 않고 `AmazonS3ReadOnlyAccess` 또는 `AmazonS3FullAccess` 미리 정의된 IAM 정책을 사용하십시오.

**Amazon S3 리소스에 대한 액세스 권한을 부여하는 IAM 정책 생성 방법**

1. [IAM 관리 콘솔](https://console.aws.amazon.com/iam/home?#home)을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. [**Create policy**]를 선택합니다.

1. [**Visual editor**] 탭에서 [**Choose a service**]를 선택한 다음 [**S3**]을 선택합니다.

1. **작업**에서 **Expand all(모두 확장)**을 선택한 다음 IAM 정책에 필요한 버킷 권한 및 객체 권한을 선택합니다.

   객체 권한은 Amazon S3의 객체 작업에 대한 권한으로, 버킷 자체가 아닌 버킷의 객체에 대해 부여해야 합니다. Amazon S3의 객체 작업의 권한에 대한 자세한 내용은 [객체 작업에 대한 권한](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-objects)을 참조하십시오.

1. **리소스**를 선택하고 **bucket(버킷)**에 대해 **Add ARN(ARN 추가)**을 선택합니다.

1. [**Add ARN(s)**] 대화 상자에서 리소스에 대한 세부 정보를 제공하고 [**Add**]를 선택합니다.

   액세스를 허용할 Amazon S3 버킷을 지정하십시오. 예를 들어, Aurora가 *amzn-s3-demo-bucket*이라는 Amazon S3 버킷에 액세스할 수 있게 허용하려면 Amazon 리소스 이름(ARN) 값을 `arn:aws:s3:::amzn-s3-demo-bucket`으로 설정하세요.

1. [**object**] 리소스가 나열되면 **객체**에 대해 [**Add ARN**]을 선택합니다.

1. [**Add ARN(s)**] 대화 상자에서 리소스에 대한 세부 정보를 제공합니다.

   Amazon S3 버킷의 경우 액세스를 허용할 Amazon S3 버킷을 지정하십시오. 객체의 경우 [**Any**]를 선택하여 버킷의 모든 객체에 권한을 허용할 수 있습니다.
**참고**  
**Amazon Resource Name(ARN)(Amazon 리소스 이름(ARN))**을 더 구체적인 ARN 값으로 설정하여 Aurora에서 Amazon S3 버킷의 특정 파일 또는 폴더에만 액세스하도록 허용할 수 있습니다. Amazon S3에 대한 액세스 정책을 정의하는 방법에 대한 자세한 내용은 [Amazon S3 리소스에 대한 액세스 권한 관리](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) 단원을 참조하십시오.

1. (선택 사항) **버킷**에 대해 **Add ARN(ARN 추가)**를 선택하여 다른 Amazon S3 버킷을 정책에 추가하고 버킷에 대해 이전 단계를 반복합니다.
**참고**  
이 단계를 반복하여 Aurora에서 액세스할 각 Amazon S3 버킷의 정책에 해당 버킷 권한 설명문을 추가할 수 있습니다. 또는 Amazon S3의 모든 버킷 및 객체에 대한 액세스 권한을 부여할 수도 있습니다.

1. **정책 검토**(Review policy)를 선택합니다.

1. **이름**에서 IAM 정책의 이름을 입력합니다(예: `AllowAuroraToExampleBucket`). IAM 역할을 만들어 Aurora DB 클러스터와 연결할 때 이 이름을 사용합니다. **Description** 값(선택 사항)을 추가할 수도 있습니다.

1. [**Create policy**]를 선택합니다.

1. [Amazon Aurora에서 AWS 서비스에 액세스하도록 허용하는 IAM 역할 생성](AuroraMySQL.Integrating.Authorizing.IAM.CreateRole.md)의 단계를 수행합니다.