Amazon S3의 EMRFS 데이터에 대한 액세스 권한 부여 - 아마존 EMR

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

Amazon S3의 EMRFS 데이터에 대한 액세스 권한 부여

기본적으로 의 EMR 역할은 Amazon S3의 EMRFS 데이터에 액세스하기 위한 권한을 EC2 결정합니다. 이 역할에 연결된 IAM 정책은 요청을 하는 사용자나 그룹에 관계없이 적용됩니다EMRFS. 기본값은 EMR_EC2_DefaultRole입니다. 자세한 내용은 클러스터 EC2 인스턴스의 서비스 역할 (EC2인스턴스 프로필) 을 참조하십시오.

Amazon EMR 릴리스 버전 5.10.0부터 보안 구성을 사용하여 IAM 역할을 지정할 수 있습니다. EMRFS 이를 통해 사용자가 여러 명인 클러스터에 대해 Amazon S3에 대한 EMRFS 요청 권한을 사용자 지정할 수 있습니다. Amazon S3의 접두사에 따라 사용자 및 그룹별로, Amazon S3 버킷 위치별로 다른 IAM 역할을 지정할 수 있습니다. Amazon S3에 사용자, 그룹 또는 지정한 위치와 일치하는 요청을 보내면 클러스터는 역할 대신 사용자가 지정하는 해당 EMR 역할을 사용합니다EC2. EMRFS 자세한 내용은 Amazon S3에 대한 EMRFS 요청에 대한 IAM 역할 구성을 참조하십시오.

또는 Amazon EMR 솔루션이 EMRFS 제공하는 IAM 역할 이외의 요구 사항이 있는 경우 사용자 지정 자격 증명 공급자 클래스를 정의하여 Amazon S3의 EMRFS 데이터에 대한 액세스를 사용자 지정할 수 있습니다.

Amazon S3의 EMRFS 데이터에 대한 사용자 지정 자격 증명 공급자 생성

사용자 지정 자격 증명 공급자를 생성하려면 AWSCredentialsProvider및 Hadoop 구성 가능 클래스를 구현해야 합니다.

이 접근 방식에 대한 자세한 설명은 AWS 빅데이터 블로그에서 다른 AWS 계정의 데이터를 안전하게 분석하기를 참조하십시오. EMRFS 블로그 게시물에는 IAM 역할 생성부터 클러스터 시작까지의 프로세스를 end-to-end 안내하는 자습서가 포함되어 있습니다. 이 게시물은 사용자 지정 자격 증명 공급자 클래스를 구현하는 Java 코드 예제도 제공합니다.

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

사용자 지정 자격 증명 공급자를 지정하려면
  1. JAR파일로 컴파일된 사용자 지정 자격 증명 공급자 클래스를 생성하십시오.

  2. 스크립트를 부트스트랩 작업으로 실행하여 사용자 지정 자격 증명 공급자 JAR 파일을 클러스터의 마스터 노드 /usr/share/aws/emr/emrfs/auxlib 위치에 복사합니다. 부트스트랩 작업에 대한 자세한 내용은 (선택 사항)부트스트랩 작업을 생성하여 추가 소프트웨어 설치를 참조하세요.

  3. emrfs-site분류를 사용자 지정하여 JAR 파일에 구현하는 클래스를 지정하십시오. 애플리케이션을 사용자 지정하기 위해 구성 객체를 지정하는 방법에 대한 자세한 내용은 Amazon EMR Release Guide의 애플리케이션 구성을 참조하십시오.

    다음 예제는 일반적인 구성 파라미터를 사용하여 Hive 클러스터를 시작하는 create-cluster 명령을 보여줍니다.

    • Amazon S3의 mybucket에 저장되는 스크립트인 copy_jar_file.sh를 실행하는 부트스트랩 작업.

    • JAR파일에 다음과 같이 정의된 사용자 지정 자격 증명 공급자를 지정하는 emrfs-site 분류 MyCustomCredentialsProvider

    참고

    가독성을 위해 Linux 줄 연속 문자(\)가 포함됩니다. Linux 명령에 사용하거나 제외할 수 있습니다. Windows에서는 제외시키거나 캐럿(^)으로 바꿉니다.

    aws emr create-cluster --applications Name=Hive \ --bootstrap-actions '[{"Path":"s3://mybucket/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.2.0 \ --log-uri 's3n://my-emr-log-bucket/' --name 'test-awscredentialsprovider-emrfs' \ --instance-type=m5.xlarge --instance-count 3 \ --configurations '[{"Classification":"emrfs-site",\ "Properties":{"fs.s3.customAWSCredentialsProvider":"MyAWSCredentialsProviderWithUri"},\ "Configurations":[]}]'