

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

# EMR Serverless에 대한 사용자 액세스 정책 예제
<a name="security-iam-user-access-policies"></a>

EMR Serverless 애플리케이션과 상호 작용하는 경우 각 사용자가 수행할 작업에 따라 사용자를 위한 세분화된 정책을 설정할 수 있습니다. 다음 정책은 사용자에게 적합한 권한을 설정하는 데 도움이 될 수 있는 예제입니다. 이 섹션에서는 EMR Serverless 정책에만 중점을 둡니다. EMR Studio 사용자 정책 샘플은 [EMR Studio 사용자 권한 구성](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-user-permissions.html#emr-studio-advanced-permissions-policy)을 참조하세요. IAM 사용자(위탁자)에 정책을 연결하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 [IAM 정책 관리](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html)를 참조하세요.

## 고급 사용자 정책
<a name="security-iam-user-access-policies-full-access"></a>

EMR Serverless에 필요한 모든 작업을 부여하려면 `AmazonEMRServerlessFullAccess` 정책을 생성하고 필요한 IAM 사용자, 역할 또는 그룹에 연결합니다.

다음은 고급 사용자가 EMR Serverless 애플리케이션을 생성 및 수정하고 작업 제출 및 디버깅과 같은 기타 작업을 수행할 수 있도록 허용하는 샘플 정책입니다. 여기에는 EMR Serverless가 다른 서비스에 요구하는 모든 작업이 표시됩니다.

------
#### [ JSON ]

****  

```
{
  "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를 생성할 수 없도록 이 정책을 설정하는 것이 좋습니다.

------
#### [ JSON ]

****  

```
{
  "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에 대한 서비스 연결 역할 사용](using-service-linked-roles.md) 섹션을 참조하세요.

다음 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"
}
```

## 데이터 엔지니어 정책
<a name="security-iam-user-access-policies-read-only-access"></a>

다음은 사용자가 EMR Serverless 애플리케이션에 대한 읽기 전용 권한과 작업을 제출하고 디버깅할 수 있는 기능을 허용하는 샘플 정책입니다. 이 정책은 작업을 명시적으로 거부하지 않기 때문에 다른 정책 설명을 사용하더라도 지정된 작업에 대한 액세스를 허용할 수 있습니다.

------
#### [ JSON ]

****  

```
{
  "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": [
        "*"
      ]
    }
  ]
}
```

------

## 액세스 제어에 태그 사용
<a name="security-iam-user-access-policies-using-tags"></a>

세분화된 액세스 제어를 위해 태그 조건을 사용할 수 있습니다. 예를 들어, 팀 이름으로 태그가 지정된 EMR Serverless 애플리케이션에만 작업을 제출할 수 있도록 한 팀에서 사용자를 제한할 수 있습니다.

------
#### [ JSON ]

****  

```
{
  "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": [
        "*"
      ]
    }
  ]
}
```

------