Amazon EMR을 사용하여 IAM 역할 사용자 지정 - Amazon EMR

Amazon EMR을 사용하여 IAM 역할 사용자 지정

보안 요구 사항에 따라 권한을 제한하도록 IAM 서비스 역할 및 권한을 사용자 지정할 수 있습니다. 권한을 사용자가 지정하려면 새로운 역할과 정책을 생성하는 것이 좋습니다. 기본 역할(예: AmazonElasticMapReduceforEC2RoleAmazonElasticMapReduceRole)에 대한 관리형 정책의 권한부터 시작합니다. 그런 다음 내용을 복사하여 새로운 정책 문에 붙여 넣고 권한을 적절하게 수정하고, 이렇게 수정한 권한 정책을 생성한 역할에 연결합니다. 이를 위해서는 역할 및 정책에 대해 작업을 수행할 수 있는 적절한 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 서비스 역할 단원을 참조하십시오.

Console
콘솔을 사용하여 사용자 지정 IAM 역할을 지정하는 방법

콘솔을 사용하여 클러스터를 생성하는 경우 Amazon EMR에 대한 사용자 지정 서비스 역할과 EC2 인스턴스 프로파일에 대한 사용자 지정 역할을 지정해야 합니다. 자세한 내용은 Amazon EMR에서 사용하는 IAM 서비스 역할 단원을 참조하십시오.

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/emr에서 Amazon EMR 콘솔을 엽니다.

  2. 왼쪽 탐색 창의 EMR on EC2에서 클러스터를 선택하고 클러스터 생성을 선택합니다.

  3. 보안 구성 및 권한에서 인스턴스 프로파일에 대한 IAM 역할Amazon EMR에 대한 서비스 역할 필드를 찾습니다. 각 역할 유형에 대해 목록에서 역할을 선택합니다. 해당 역할 유형에 대해 적절한 신뢰 정책을 가지고 있는 계정 내 역할만이 목록에 나열됩니다.

  4. 클러스터에 적용할 다른 옵션을 선택합니다.

  5. 클러스터를 시작하려면 클러스터 생성을 선택합니다.

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-role MyCustomServiceRoleForEMR \ --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 옵션을 지정하면 MyCustomServiceRoleForEMRMyCustomServiceRoleForClusterEC2Instances를 사용하여 클러스터가 생성됩니다. 기본적으로 config 파일은 기본 service_roleAmazonElasticMapReduceRole로, 기본 instance_profileEMR_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