

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

# Amazon S3에서 EMRFS 데이터에 대한 액세스 권한 부여
<a name="emr-plan-credentialsprovider"></a>

기본적으로 EC2의 EMR 역할에 따라 Amazon S3에서 EMRFS 데이터를 액세스할 수 있는 권한이 결정됩니다. EMRFS를 통해 요청을 수행하는 사용자나 그룹에 관계없이 이 역할에 연결된 IAM 정책이 적용됩니다. 기본값은 `EMR_EC2_DefaultRole`입니다. 자세한 내용은 [클러스터 EC2 인스턴스의 서비스 역할(EC2 인스턴스 프로파일)](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role-for-ec2.html)을 참조하세요.

Amazon EMR 릴리스 버전 5.10.0부터 보안 구성을 사용하여 EMRFS의 IAM 역할을 지정할 수 있습니다. 이 기능을 사용하면 사용자가 여러 명인 클러스터에서 Amazon S3에 대한 EMRFS 요청 권한을 사용자 지정할 수 있습니다. 사용자 및 그룹마다, 그리고 Amazon S3에서 접두사에 따라 Amazon S3 버킷 위치마다 다른 IAM 역할을 지정할 수 있습니다. EMRFS가 지정된 사용자, 그룹 또는 위치와 일치하는 Amazon S3에 대한 요청을 수행할 때 클러스터에서는 EC2의 EMR 역할 대신 사용자가 지정한 해당 역할을 사용합니다. 자세한 내용은 [Amazon S3에 대한 EMRFS 요청의 IAM 역할 구성](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-emrfs-iam-roles)을 참조하세요.

또는 Amazon EMR 솔루션의 요구가 EMRFS의 IAM 역할이 제공하는 범위를 벗어난 경우 사용자 지정 보안 인증 제공업체 클래스를 정의할 수 있기 때문에 Amazon S3에서 EMRFS 데이터에 대한 액세스 권한을 사용자가 지정할 수 있습니다.

## Amazon S3의 EMRFS 데이터에 대한 사용자 지정 보안 인증 제공업체 생성
<a name="emr-create-credentialsprovider"></a>

사용자 지정 자격 증명 공급자를 생성하려면 [AWSCredentialsProvider](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentialsProvider.html) 및 Hadoop [구성 가능](https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/conf/Configurable.html) 클래스를 구현합니다.

이 접근 방식에 대한 자세한 설명은 빅 [데이터 블로그의 EMRFS를 사용하여 다른 AWS 계정의 데이터 보안 분석을](https://aws.amazon.com/blogs/big-data/securely-analyze-data-from-another-aws-account-with-emrfs) 참조하세요 AWS . 블로그 게시물에는 IAM 역할 생성부터 클러스터 시작에 이르기까지 전체 프로세스를 안내하는 자습서가 포함되어 있습니다. 이 게시물은 사용자 지정 자격 증명 공급자 클래스를 구현하는 Java 코드 예제도 제공합니다.

기본 단계는 다음과 같습니다.

**사용자 지정 자격 증명 공급자를 지정하려면**

1. JAR 파일로 컴파일된 사용자 지정 자격 증명 공급자 클래스를 생성합니다.

1. 스크립트를 부트스트랩 작업으로 실행해 사용자 지정 자격 증명 공급자 JAR 파일을 클러스터의 마스터 노드에 있는 `/usr/share/aws/emr/emrfs/auxlib` 위치로 복사합니다. 부트스트랩 작업에 대한 자세한 내용은 [(선택 사항)부트스트랩 작업을 생성하여 추가 소프트웨어 설치](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-bootstrap.html)를 참조하세요.

1. `emrfs-site` 분류를 사용자 지정하여 JAR 파일에서 구현되는 클래스를 지정합니다. 애플리케이션을 사용자 지정하기 위해 구성 객체를 지정하는 방법에 대한 자세한 내용은 *Amazon EMR 릴리스 안내서*에서 [애플리케이션 구성](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html)을 참조하세요.

   다음 예제는 일반적인 구성 파라미터를 사용하여 Hive 클러스터를 시작하는 `create-cluster` 명령을 보여줍니다.
   + Amazon S3의 `amzn-s3-demo-bucket`에 저장되는 스크립트인 `copy_jar_file.sh`를 실행하는 부트스트랩 작업.
   + JAR 파일에 정의된 사용자 지정 자격 증명 공급자를 `emrfs-site`로 지정하는 `MyCustomCredentialsProvider` 분류
**참고**  
가독성을 위해 Linux 줄 연속 문자(\$1)가 포함됩니다. Linux 명령에 사용하거나 제외할 수 있습니다. Windows에서는 제외시키거나 캐럿(^)으로 바꿉니다.

   ```
   aws emr create-cluster --applications Name=Hive \
   --bootstrap-actions '[{"Path":"s3://amzn-s3-demo-bucket/copy_jar_file.sh","Name":"Custom action"}]' \
   --ec2-attributes '{"KeyName":"MyKeyPair","InstanceProfile":"EMR_EC2_DefaultRole",\
   "SubnetId":"subnet-xxxxxxxx","EmrManagedSlaveSecurityGroup":"sg-xxxxxxxx",\
   "EmrManagedMasterSecurityGroup":"sg-xxxxxxxx"}' \
   --service-role EMR_DefaultRole_V2 --enable-debugging --release-label emr-7.12.0 \
   --log-uri 's3n://amzn-s3-demo-bucket/' --name 'test-awscredentialsprovider-emrfs' \
   --instance-type=m5.xlarge --instance-count 3  \
   --configurations '[{"Classification":"emrfs-site",\
   "Properties":{"fs.s3.customAWSCredentialsProvider":"MyAWSCredentialsProviderWithUri"},\
   "Configurations":[]}]'
   ```