EMRStudio 서비스 역할을 생성하십시오. - 아마존 EMR

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

EMRStudio 서비스 역할을 생성하십시오.

EMR스튜디오 서비스 역할 정보

각 EMR Studio는 Studio가 다른 AWS 서비스와 상호 작용할 수 있는 권한이 있는 IAM 역할을 사용합니다. 이 서비스 역할에는 EMR Studio가 Workspaces와 클러스터 간에 보안 네트워크 채널을 설정하고, 노트북 파일을 저장하고, Workspace를 Git 리포지토리에 Amazon S3 Control연결하는 AWS Secrets Manager 동안 액세스할 수 있는 권한이 포함되어야 합니다.

Studio 서비스 역할(세션 정책 대신)을 사용하여 노트북 파일 저장을 위해 모든 Amazon S3 액세스 권한을 정의하고 AWS Secrets Manager 액세스 권한을 정의합니다.

Amazon EC2 또는 Amazon에서 EMR 스튜디오의 서비스 역할을 생성하는 방법 EKS

  1. AWS 서비스에 권한을 위임할 역할 만들기의 지침에 따라 다음 신뢰 정책에 따라 서비스 역할을 생성하십시오.

    중요

    다음 신뢰 정책에는 계정의 특정 리소스에 EMR Studio에 부여하는 권한을 제한하는 aws:SourceAccount글로벌 조건 키가 포함되어 있습니다. aws:SourceArn 이를 사용하면 혼동된 대리자 문제를 방지할 수 있습니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "<account-id>" }, "ArnLike": { "aws:SourceArn": "arn:aws:elasticmapreduce:<region>:<account-id>:*" } } } ] }
  2. 기본 역할 권한을 제거합니다. 그런 다음, 다음 샘플 권한 정책의 IAM 권한을 포함하세요. 또는 EMRStudio 서비스 역할 권한을 사용하는 사용자 지정 보안 정책을 생성할 수 있습니다.

    중요
    • Amazon EC2 태그 기반 액세스 제어를 EMR Studio와 함께 사용하려면 다음 정책에 표시된 ModifyNetworkInterfaceAttribute API 대로 액세스를 설정해야 합니다.

    • EMRStudio가 서비스 역할을 수행하려면 다음 AllowAddingEMRTagsDuringDefaultSecurityGroupCreation 명령문을 변경해서는 안 됩니다. AllowAddingTagsDuringEC2ENICreation

    • 예제 정책을 사용하려면 다음 리소스에 "for-use-with-amazon-emr-managed-policies" 키와 "true" 값의 태그를 지정해야 합니다.

      • EMR스튜디오용 Amazon Virtual Private Cloud (VPC).

      • Studio에서 사용할 각 서브넷

      • 모든 사용자 지정 EMR 스튜디오 보안 그룹. EMRStudio 미리 보기 기간 동안 만든 보안 그룹을 계속 사용하려면 태그를 지정해야 합니다.

      • Studio AWS Secrets Manager 사용자가 Git 리포지토리를 Workspace에 연결하는 데 사용하는 보안 정보입니다.

      AWS Management Console에서 관련 리소스 화면의 태그 탭을 사용하여 리소스에 태그를 적용할 수 있습니다.

    해당하는 경우 다음 * "Resource":"*" 정책에서 내용을 변경하여 사용 사례에 적용되는 리소스의 Amazon Resource Name (ARN) 을 지정하십시오.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEMRReadOnlyActions", "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps" ], "Resource": "*" }, { "Sid": "AllowEC2ENIActionsWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowEC2ENIAttributeAction", "Effect": "Allow", "Action": [ "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "AllowEC2SecurityGroupActionsWithEMRTags", "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:DeleteNetworkInterfacePermission" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowDefaultEC2SecurityGroupsCreationWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup" ], "Resource": [ "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowDefaultEC2SecurityGroupsCreationInVPCWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup" ], "Resource": [ "arn:aws:ec2:*:*:vpc/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingEMRTagsDuringDefaultSecurityGroupCreation", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:security-group/*", "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true", "ec2:CreateAction": "CreateSecurityGroup" } } }, { "Sid": "AllowEC2ENICreationWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingTagsDuringEC2ENICreation", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface" } } }, { "Sid": "AllowEC2ReadOnlyActions", "Effect": "Allow", "Action": [ "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowWorkspaceCollaboration", "Effect": "Allow", "Action": [ "iam:GetUser", "iam:GetRole", "iam:ListUsers", "iam:ListRoles", "sso:GetManagedApplicationInstance", "sso-directory:SearchUsers" ], "Resource": "*" } ] }
  3. 서비스 역할에 EMR Studio의 Amazon S3 위치에 대한 읽기 및 쓰기 액세스 권한을 부여하십시오. 다음과 같은 최소 권한 세트를 사용합니다. 자세한 내용은 Amazon S3: S3 버킷에 있는 객체에 대한 읽기 및 쓰기 액세스 권한을 프로그래밍 방식으로 콘솔에서 허용 예제를 참조하세요.

    "s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"

    Amazon S3 버킷을 암호화하는 경우 AWS Key Management Service에 다음 권한을 포함합니다.

    "kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
  4. 사용자 수준에서 Git 암호에 대한 액세스를 제어하려면 Studio 사용자 역할 정책에 태그 기반 권한을 추가하고 EMR EMR Studio 서비스 역할 secretsmanager:GetSecretValue 정책에서 정책에 대한 권한을 제거하세요. secretsmanager:GetSecretValue 세분화된 사용자 권한 설정에 대한 자세한 내용은 EMRStudio 사용자를 위한 권한 정책을 생성하십시오. 섹션을 참조하세요.

서버리스의 최소 서비스 역할 EMR

EMRStudio 노트북을 통해 EMR 서버리스로 대화형 워크로드를 실행하려면 이전 섹션에서 Studio를 설정할 EMR 때 사용한 것과 동일한 신뢰 정책을 사용하십시오. Amazon EC2 또는 Amazon에서 EMR 스튜디오의 서비스 역할을 생성하는 방법 EKS

해당 IAM 정책의 경우 실행 가능한 최소 정책에는 다음과 같은 권한이 있습니다. EMRStudio 및 Workspace를 구성할 때 사용하려는 버킷의 이름으로 bucket-name 업데이트하세요. EMRStudio는 버킷을 사용하여 Studio의 작업 공간 및 노트북 파일을 백업합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ObjectActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": ["arn:aws:s3:::bucket-name/*"] }, { "Sid": "BucketActions", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetEncryptionConfiguration" ], "Resource": ["arn:aws:s3:::bucket-name"] } ] }

암호화된 Amazon S3 버킷을 사용하려는 경우 정책에 다음 권한을 추가합니다.

"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"

EMRStudio 서비스 역할 권한

다음 표에는 EMR Studio가 서비스 역할을 사용하여 수행하는 작업과 각 IAM 작업에 필요한 작업이 나열되어 있습니다.

Operation 작업
Workspace와 EMR 클러스터 간에 보안 네트워크 채널을 설정하고 필요한 정리 작업을 수행합니다.
"ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:ModifyNetworkInterfaceAttribute", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps"
에 저장된 Git 자격 증명을 사용하여 Git 리포지토리를 AWS Secrets Manager Workspace에 연결합니다.
"secretsmanager:GetSecretValue"
EMRStudio가 보안 네트워크 채널을 설정할 때 생성하는 네트워크 인터페이스 및 기본 보안 그룹에 AWS 태그를 적용합니다. 자세한 내용을 알아보려면 AWS 리소스에 태깅을 참조하세요.
"ec2:CreateTags"
노트북 파일 및 메타데이터에 액세스하거나 Amazon S3에 업로드합니다.
"s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"

암호화된 Amazon S3 버킷을 사용하는 경우 다음 권한을 포함합니다.

"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
Workspace 협업을 활성화하고 구성합니다.
"iam:GetUser", "iam:GetRole", "iam:ListUsers", "iam:ListRoles", "sso:GetManagedApplicationInstance", "sso-directory:SearchUsers"
고객 관리 키 () CMK 를 사용하여 EMR Studio 워크스페이스 노트북 및 파일을 암호화합니다. AWS Key Management Service
"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"