EMR Serverless에 대한 사용자 액세스 정책 예제
EMR Serverless 애플리케이션과 상호 작용하는 경우 각 사용자가 수행할 작업에 따라 사용자를 위한 세분화된 정책을 설정할 수 있습니다. 다음 정책은 사용자에게 적합한 권한을 설정하는 데 도움이 될 수 있는 예제입니다. 이 섹션에서는 EMR Serverless 정책에만 중점을 둡니다. EMR Studio 사용자 정책 샘플은 EMR Studio 사용자 권한 구성을 참조하세요. IAM 사용자(위탁자)에 정책을 연결하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 IAM 정책 관리를 참조하세요.
고급 사용자 정책
EMR Serverless에 필요한 모든 작업을 부여하려면 AmazonEMRServerlessFullAccess
정책을 생성하고 필요한 IAM 사용자, 역할 또는 그룹에 연결합니다.
다음은 고급 사용자가 EMR Serverless 애플리케이션을 생성 및 수정하고 작업 제출 및 디버깅과 같은 기타 작업을 수행할 수 있도록 허용하는 샘플 정책입니다. 여기에는 EMR Serverless가 다른 서비스에 요구하는 모든 작업이 표시됩니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessActions", "Effect": "Allow", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:UpdateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun" ], "Resource": "*" } ] }
VPC에 대한 네트워크 연결을 활성화하면 EMR Serverless 애플리케이션에서 VPC 리소스와 통신할 Amazon EC2 탄력적 네트워크 인터페이스(ENI)를 생성합니다. 다음 정책은 새로운 EC2 ENI가 EMR Serverless 애플리케이션의 컨텍스트에서만 생성되도록 보장합니다.
참고
EMR Serverless 애플리케이션을 시작하는 컨텍스트를 제외하고 사용자가 EC2 ENI를 생성할 수 없도록 이 정책을 설정하는 것이 좋습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEC2ENICreationWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:CalledViaLast": "ops.emr-serverless.amazonaws.com" } } } }
특정 서브넷에 대한 EMR Serverless 액세스를 제한하려면 각 서브넷에 태그 조건으로 태그를 지정할 수 있습니다. 이 IAM 정책은 EMR Serverless 애플리케이션이 허용된 서브넷 내에서만 EC2 ENI를 생성할 수 있도록 보장합니다.
{ "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/
KEY
": "VALUE
" } } }
중요
첫 번째 애플리케이션을 생성하는 관리자 또는 고급 사용자인 경우 EMR Serverless 서비스 연결 역할을 생성할 수 있도록 권한 정책을 구성해야 합니다. 자세한 내용은 EMR Serverless에 대한 서비스 연결 역할 사용을 참조하십시오.
다음 IAM 정책은 계정에 대한 EMR Serverless 서비스 연결 역할을 생성할 수 있도록 허용합니다.
{ "Sid":"AllowEMRServerlessServiceLinkedRoleCreation", "Effect":"Allow", "Action":"iam:CreateServiceLinkedRole", "Resource":"arn:aws:iam::
account-id
:role/aws-service-role/ops.emr-serverless.amazonaws.com/AWSServiceRoleForAmazonEMRServerless" }
데이터 엔지니어 정책
다음은 사용자가 EMR Serverless 애플리케이션에 대한 읽기 전용 권한과 작업을 제출하고 디버깅할 수 있는 기능을 허용하는 샘플 정책입니다. 이 정책은 작업을 명시적으로 거부하지 않기 때문에 다른 정책 설명을 사용하더라도 지정된 작업에 대한 액세스를 허용할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessActions", "Effect": "Allow", "Action": [ "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun" ], "Resource": "*" } ] }
액세스 제어에 태그 사용
세분화된 액세스 제어를 위해 태그 조건을 사용할 수 있습니다. 예를 들어 팀 이름으로 태그가 지정된 EMR Serverless 애플리케이션에만 작업을 제출할 수 있도록 한 팀에서 사용자를 제한할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessActions", "Effect": "Allow", "Action": [ "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Team": "
team-name
" } } } ] }