

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# IAM 권한 구성
<a name="configure-iam-role-policy-credentials"></a>

Amazon Location Jobs에는 Amazon S3 버킷에 액세스할 수 있는 서비스 권한을 부여하는 IAM 실행 역할이 필요합니다. 작업을 실행할 때 Amazon Location은이 역할을 수임하여 입력 버킷에서 입력 파일을 읽고 출력 결과를 출력 버킷에 기록합니다. 필요한 Amazon S3 권한이 있는 IAM 정책을 생성하고 Amazon Location 서비스가 역할을 수임하도록 허용하는 신뢰 정책이 있는 IAM 역할에 연결하여 이러한 권한을 제공합니다.

**참고**  
생성한 Amazon S3 입력 및 출력 버킷은 작업을 실행하려는 AWS 리전 동일한에 있어야 합니다. 생성한 IAM 리소스는 동일한 계정에서 생성해야 합니다.

## 1단계: IAM 정책 생성
<a name="create-iam-policy-jobs"></a>

Amazon Location 작업에 필요한 권한을 부여하는 IAM 정책을 생성합니다.

**Amazon Location 작업에 대한 IAM 정책을 생성하려면**

1. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **Policies**를 선택합니다.

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

1. **JSON** 탭을 선택하고 다음 정책 문서를 입력하여 {{INPUT\_BUCKET\_NAME}} 및 {{OUTPUT\_BUCKET\_NAME}}을 버킷 이름으로 바꿉니다.

   ```
   {
     "Version": "2012-10-17", 		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:GetObjectVersion",
           "s3:GetBucketVersioning"
         ],
         "Resource": [
           "arn:aws:s3:::{{INPUT_BUCKET_NAME}}",
           "arn:aws:s3:::{{INPUT_BUCKET_NAME}}/*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:AbortMultipartUpload"
         ],
         "Resource": [
           "arn:aws:s3:::{{OUTPUT_BUCKET_NAME}}/*"
         ]
       }
     ]
   }
   ```

1. **다음**을 선택합니다.

1. **정책 이름**에 설명이 포함된 이름을 입력합니다(예: `{{LocationJobsS3AccessPolicy}}`).

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

다음 표에서는이 정책에서 부여한 권한을 설명합니다.


| 권한 | 설명 | 
| --- | --- | 
|  s3:GetObject  | Amazon Location이 입력 버킷에서 입력 파일을 읽을 수 있도록 허용합니다. | 
|  s3:ListBucket  | Amazon Location이 입력 버킷의 파일을 나열하여 처리할 모든 입력 파일을 식별할 수 있도록 허용합니다. | 
|  s3:GetObjectVersion  | Amazon Location이 특정 버전의 입력 파일에 액세스할 수 있도록 허용합니다. 버킷에서 버전 관리를 활성화해야 하므로 필요합니다. | 
|  s3:GetBucketVersioning  | Amazon Location이 입력 버킷에서 버전 관리가 활성화되어 있는지 확인할 수 있도록 허용합니다. | 
|  s3:PutObject  | Amazon Location이 출력 버킷에 출력 결과를 쓸 수 있도록 허용합니다. | 
|  s3:AbortMultipartUpload  | 대용량 출력 파일을 쓸 때 Amazon Location이 실패한 멀티파트 업로드를 정리할 수 있도록 허용합니다. | 

**참고**  
이 정책은 Amazon Location Jobs가 작동하는 데 필요한 권한만 부여하여 최소 권한 원칙을 따릅니다. 이 정책은 입력 버킷에 대한 읽기 권한과 출력 버킷에 대한 쓰기 권한을 제한합니다.

**를 사용하여 IAM 정책을 생성하려면 AWS CLI**

1. 다음 콘텐츠`location-jobs-policy.json`로 이라는 파일을 생성하여 {{INPUT\_BUCKET\_NAME}} 및 {{OUTPUT\_BUCKET\_NAME}}을 버킷 이름으로 바꿉니다.

   ```
   {
     "Version": "2012-10-17", 		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:GetObjectVersion",
           "s3:GetBucketVersioning"
         ],
         "Resource": [
           "arn:aws:s3:::{{INPUT_BUCKET_NAME}}",
           "arn:aws:s3:::{{INPUT_BUCKET_NAME}}/*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:AbortMultipartUpload"
         ],
         "Resource": [
           "arn:aws:s3:::{{OUTPUT_BUCKET_NAME}}/*"
         ]
       }
     ]
   }
   ```

1. 정책을 생성합니다.

   ```
   aws iam create-policy \
       --policy-name {{LocationJobsS3AccessPolicy}} \
       --policy-document file://location-jobs-policy.json
   ```

1. 출력의 정책 ARN을 기록해 둡니다. 다음 단계에서 이 ARN을 사용합니다.

## 2단계: 실행 역할 생성
<a name="create-execution-role-jobs"></a>

Amazon Location이 작업 실행 중에 Amazon S3 버킷에 액세스하기 위해 수임하는 IAM 역할을 생성합니다.

신뢰 정책은 Amazon Location 서비스(`geo.amazonaws.com`)가이 역할을 수임하도록 허용합니다. 이 신뢰 관계는 Amazon Location이 작업 실행 중에 Amazon S3 버킷에 액세스하는 데 필요합니다.

**Amazon Location 작업에 대한 실행 역할을 생성하려면**

1. IAM 콘솔의 탐색 창에서 **역할**을 선택합니다.

1. **역할 생성(Create role)**을 선택합니다.

1. **신뢰할 수 있는 엔터티 유형(Trusted entity type)**에서 **사용자 지정 정책(Custom trust policy)**을 선택합니다.

1. {{ACCOUNT\_ID}}를 AWS 계정 ID로 바꾸어 다음 신뢰 정책을 입력합니다.

   ```
   {
     "Version": "2012-10-17", 		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "geo.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "StringEquals": {
             "aws:SourceAccount": "{{ACCOUNT_ID}}"
           }
         }
       }
     ]
   }
   ```

1. **다음**을 선택합니다.

1. 1단계에서 생성한 정책(예: )을 검색하고 선택합니다`{{LocationJobsS3AccessPolicy}}`.

1. **다음**을 선택합니다.

1. **역할 이름**에와 같이 설명이 포함된 이름을 입력합니다`LocationServiceJobExecutionRole`.

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

**를 사용하여 실행 역할을 생성하려면 AWS CLI**

1. 다음 콘텐츠`trust-policy.json`로 이라는 파일을 생성하여 {{ACCOUNT\_ID}}를 AWS 계정 ID로 바꿉니다.

   ```
   {
     "Version": "2012-10-17", 		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "geo.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "StringEquals": {
             "aws:SourceAccount": "{{ACCOUNT_ID}}"
           }
         }
       }
     ]
   }
   ```

1. 역할을 생성합니다.

   ```
   aws iam create-role \
       --role-name LocationServiceJobExecutionRole \
       --assume-role-policy-document file://trust-policy.json
   ```

1. 1단계에서 생성한 정책을 연결합니다({{ACCOUNT\_ID}}를 AWS 계정 ID로 바꾸고 {{LocationJobsS3AccessPolicy}}를 정책 이름으로 바꿉니다).

   ```
   aws iam attach-role-policy \
       --role-name LocationServiceJobExecutionRole \
       --policy-arn arn:aws:iam::{{ACCOUNT_ID}}:policy/{{LocationJobsS3AccessPolicy}}
   ```

1. 역할 ARN 가져오기:

   ```
   aws iam get-role \
       --role-name LocationServiceJobExecutionRole \
       --query 'Role.Arn' \
       --output text
   ```

1. 출력의 역할 ARN을 기록해 둡니다. `ExecutionRoleArn` 파라미터를 사용하여 작업을 시작할 때이 ARN이 필요합니다.

역할을 생성한 후 역할 ARN을 기록해 둡니다. `ExecutionRoleArn` 파라미터를 사용하여 작업을 시작할 때이 ARN이 필요합니다. 자세한 내용은 [입력 데이터 준비](preparing-input-data.md) 단원을 참조하십시오.

## 보안 모범 사례
<a name="iam-security-best-practices"></a>

Amazon Location Jobs에 대한 IAM 권한을 구성할 때 다음 보안 모범 사례를 따르세요.
+  **특정 버킷 ARNs 사용:** 정책의 자리 표시자 버킷 이름을 실제 버킷 이름으로 바꾸어 사용하려는 버킷으로만 액세스를 제한합니다.
+  **입력 및 출력 버킷 분리:** 입력 및 출력에 서로 다른 버킷을 사용하여 읽기 및 쓰기 권한의 명확한 분리를 유지합니다.
+  **Amazon S3 버킷 버전 관리 활성화:** 버킷에서 버전 관리를 활성화해야 합니다. 이는 Amazon Location Jobs가 제대로 작동하는 데 필요합니다.
+  **Amazon S3 버킷 정책 사용:** IAM 정책 이외의 추가 액세스 제어를 위해 Amazon S3 버킷에 버킷 정책을 추가합니다.
+  **역할 사용량 모니터링:** Amazon Location Jobs에서 실행 역할을 사용하는 시기와 방법을 모니터링하는 데 사용합니다.