Amazon EMR을 사용하여 IAM 역할 사용자 지정
보안 요구 사항에 따라 권한을 제한하도록 IAM 서비스 역할 및 권한을 사용자 지정할 수 있습니다. 권한을 사용자가 지정하려면 새로운 역할과 정책을 생성하는 것이 좋습니다. 기본 역할(예: AmazonElasticMapReduceforEC2Role
및 AmazonElasticMapReduceRole
)에 대한 관리형 정책의 권한부터 시작합니다. 그런 다음 내용을 복사하여 새로운 정책 문에 붙여 넣고 권한을 적절하게 수정하고, 이렇게 수정한 권한 정책을 생성한 역할에 연결합니다. 이를 위해서는 역할 및 정책에 대해 작업을 수행할 수 있는 적절한 IAM 권한이 있어야 합니다. 자세한 내용은 사용자와 그룹이 역할을 생성 및 수정할 수 있도록 허용 단원을 참조하십시오.
EC2에 대한 사용자 지정 EMR 역할을 생성하는 경우 동일한 이름의 인스턴스 프로파일이 자동으로 생성되는 기본 워크플로를 따릅니다. Amazon EC2에서는 서로 다른 이름으로 인스턴스 프로파일과 역할을 생성할 수 있지만 Amazon EMR에서는 이 구성을 지원하지 않으므로 클러스터를 생성할 때 '잘못된 인스턴스 프로파일' 오류가 발생합니다.
중요
인라인 정책은 서비스 요구 사항이 변경될 때 자동으로 업데이트되지 않습니다. 인라인 정책을 생성 및 연결하는 경우 서비스 업데이트가 발생하여 갑작스럽게 권한 오류가 발생할 수도 있음을 염두에 두어야 합니다. 자세한 내용은 IAM 사용 설명서에서 관리형 정책 및 인라인 정책 및 클러스터를 생성할 때 사용자 지정 IAM 역할 지정 섹션을 참조하세요.
IAM 역할 작업에 대한 자세한 내용은 IAM 사용 설명서에서 다음 주제를 참조하세요.
클러스터를 생성할 때 사용자 지정 IAM 역할 지정
사용자는 클러스터 생성 시 Amazon EMR에 대한 서비스 역할과 Amazon EC2 인스턴스 프로파일에 대한 역할을 지정할 수 있습니다. 클러스터를 생성하는 사용자는 역할을 검색하고 Amazon EMR 및 EC2 인스턴스에 할당할 수 있는 권한이 있어야 합니다. 그렇지 않으면 account is not authorized to call EC2 오류가 발생합니다. 자세한 내용은 사용자와 그룹이 역할을 생성 및 수정할 수 있도록 허용 단원을 참조하십시오.
콘솔을 사용하여 사용자 지정 역할 지정
클러스터를 생성할 때 Amazon EMR의 사용자 지정 서비스 역할, EC2 인스턴스 프로파일의 사용자 지정 역할 및 고급 옵션을 사용하는 사용자 지정 Auto Scaling 역할을 지정할 수 있습니다. 빠른 옵션을 사용하면 기본 서비스 역할과 EC2 인스턴스 프로필에 대한 기본 역할이 지정됩니다. 자세한 내용은 Amazon EMR에서 사용하는 IAM 서비스 역할 단원을 참조하십시오.
AWS CLI를 사용하여 사용자 지정 역할 지정
AWS CLI의 create-cluster
명령과 함께 옵션을 사용하여 Amazon EMR에 대한 서비스 역할과 클러스터 EC2 인스턴스에 대한 서비스 역할을 명시적으로 지정할 수 있습니다. --service-role
옵션을 사용하여 서비스 역할을 지정합니다. InstanceProfile
옵션의 --ec2-attributes
인수를 사용하여 EC2 인스턴스 프로파일에 대한 역할을 지정합니다.
Auto Scaling 역할은 별도의 옵션(--auto-scaling-role
)을 사용하여 지정됩니다. 자세한 내용은 Amazon EMR의 인스턴스 그룹에서 사용자 지정 정책과 함께 자동 조정 사용 단원을 참조하십시오.
AWS CLI를 사용하여 사용자 지정 IAM 역할을 지정하는 방법
-
다음 명령을 통해 서비스 역할인
MyCustomServiceRoleForEMR
과 클러스터 시작 시 EC2 인스턴스 프로파일에 대한 역할인MyCustomServiceRoleForClusterEC2Instances
을 사용자가 지정할 수 있습니다. 이 예제에서는 기본 Amazon EMR 역할을 사용합니다.참고
가독성을 위해 Linux 줄 연속 문자(\)가 포함됩니다. Linux 명령에 사용하거나 제외할 수 있습니다. Windows에서는 제외시키거나 캐럿(^)으로 바꿉니다.
aws emr create-cluster --name "Test cluster" --release-label
emr-7.3.0
\ --applications Name=Hive Name=Pig --service-roleMyCustomServiceRoleForEMR
\ --ec2-attributes InstanceProfile=MyCustomServiceRoleForClusterEC2Instances
,\ KeyName=myKey --instance-type m5.xlarge --instance-count 3
--use-default-roles
옵션을 사용하기 보다 이들 옵션을 사용하여 기존 역할을 명시적으로 지정할 수 있습니다. --use-default-roles
옵션은 AWS CLI의 config
파일에 정의된 EC2 인스턴스 프로파일에 대한 역할과 서비스 역할을 지정합니다.
다음은 Amazon EMR에 대한 사용자 지정 역할을 지정하는 AWS CLI의 config
파일 콘텐츠를 보여주는 예제입니다. 이 구성 파일에서 --use-default-roles
옵션을 지정하면 MyCustomServiceRoleForEMR
및 MyCustomServiceRoleForClusterEC2Instances
를 사용하여 클러스터가 생성됩니다. 기본적으로 config
파일은 기본 service_role
을 AmazonElasticMapReduceRole
로, 기본 instance_profile
을 EMR_EC2_DefaultRole
로 지정합니다.
[default] output = json region = us-west-1 aws_access_key_id =
myAccessKeyID
aws_secret_access_key =mySecretAccessKey
emr = service_role =MyCustomServiceRoleForEMR
instance_profile =MyCustomServiceRoleForClusterEC2Instances