

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

# Amazon EC2 또는 Amazon EKS에 대한 EMR Studio 사용자 권한 구성
<a name="emr-studio-user-permissions"></a>

세분화된 사용자 및 그룹 권한을 설정할 수 있도록 Amazon EMR Studio에 대한 사용자 권한 정책을 구성해야 합니다. EMR Studio에서 사용자 권한이 작동하는 방식에 대한 자세한 내용은 [Amazon EMR Studio 작동 방식](how-emr-studio-works.md)에서 [액세스 관리](how-emr-studio-works.md#emr-studio-access-control) 섹션을 참조하세요.

**참고**  
이 섹션에서 다루는 권한은 데이터 액세스 제어를 적용하지 않습니다. 입력 데이터 세트에 대한 액세스를 관리하려면 Studio에서 사용하는 클러스터에 대한 권한을 구성해야 합니다. 자세한 내용은 [Amazon EMR의 보안](emr-security.md) 단원을 참조하십시오.

## IAM Identity Center 인증 모드를 위한 EMR Studio 사용자 역할 생성
<a name="emr-studio-create-user-role"></a>

IAM Identity Center 인증 모드를 사용할 때는 EMR Studio 사용자 역할을 생성해야 합니다.

**EMR Studio의 사용자 역할을 생성하는 방법**

1. *AWS Identity and Access Management 사용 설명서*의 [AWS 역할에 권한을 위임하는 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)의 지침에 따라 사용자 역할을 생성합니다.

   역할을 생성할 때 다음과 같은 신뢰 관계 정책을 사용합니다.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "sts:AssumeRole",
           "sts:SetContext"
         ],
         "Resource": "arn:aws:iam::123456789012:role/EMRStudioServiceRole",
         "Sid": "AllowSTSAssumerole"
       }
     ]
   }
   ```

------

1. 기본 역할 권한 및 정책을 제거합니다.

1. 사용자와 그룹을 Studio에 할당하기 전에 EMR Studio 세션 정책을 사용자 역할에 연결합니다. 세션 정책을 작성하는 방법에 대한 지침은 [EMR Studio 사용자를 위한 권한 정책 생성](#emr-studio-permissions-policies) 섹션을 참조하세요.

## EMR Studio 사용자를 위한 권한 정책 생성
<a name="emr-studio-permissions-policies"></a>

다음 섹션을 참조하여 EMR Studio를 위한 권한 정책을 생성하세요.

**Topics**
+ [

### 권한 정책 생성
](#emr-studio-permissions-policies-create)
+ [

### Workspace 협업에 대한 소유권 설정
](#emr-studio-workspace-collaboration-permissions)
+ [

### 사용자 수준 Git 암호 정책 생성
](#emr-studio-permissions-policies-git)
+ [

### IAM 자격 증명에 권한 정책 연결
](#emr-studio-permissions-policies-attach)

**참고**  
노트북 파일 저장을 위한 Amazon S3 액세스 권한을 설정하고, Workspace를 Git 리포지토리에 연결할 때 암호를 읽을 수 있는 AWS Secrets Manager 액세스 권한을 설정하려면 EMR Studio 서비스 역할을 사용합니다.

### 권한 정책 생성
<a name="emr-studio-permissions-policies-create"></a>

사용자가 Studio에서 수행할 수 있는 작업을 지정하는 IAM 권한 정책을 하나 이상 생성합니다. 예를 들어, 이 페이지의 예제 정책을 사용하여 [기본](), [중급]() 및 [고급]() Studio 사용자 유형을 위한 세 가지 개별 정책을 생성할 수 있습니다.

사용자가 수행할 수 있는 각 Studio 작업에 대한 분석과 각 작업을 수행하는 데 필요한 최소 IAM 작업을 확인하려면 [AWS Identity and Access Management EMR Studio 사용자에 대한 권한](#emr-studio-iam-permissions-table) 섹션을 참조하세요. 정책 생성을 위한 단계를 확인하려면 *IAM 사용 설명서*의 [IAM 정책 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)을 참조하세요.

권한 정책에 다음 명령문이 포함되어야 합니다.

```
{
            "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix",
            "Effect": "Allow",
            "Action": "secretsmanager:TagResource",
            "Resource": "arn:aws:secretsmanager:*:*:secret:emr-studio-*"
},
{
            "Sid": "AllowPassingServiceRoleForWorkspaceCreation",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::*:role/your-emr-studio-service-role"
            ],
            "Effect": "Allow"
}
```

### Workspace 협업에 대한 소유권 설정
<a name="emr-studio-workspace-collaboration-permissions"></a>

Workspace 협업을 사용하면 여러 사용자가 동일한 Workspace에서 동시에 작업할 수 있으며 Workspace UI의 **협업** 패널로 구성할 수 있습니다. **협업** 패널을 보고 사용하려면 사용자에게 다음 권한이 있어야 합니다. 이 권한이 있는 모든 사용자는 **협업** 패널을 보고 사용할 수 있습니다.

```
"elasticmapreduce:UpdateEditor",
"elasticmapreduce:PutWorkspaceAccess",
"elasticmapreduce:DeleteWorkspaceAccess",
"elasticmapreduce:ListWorkspaceAccessIdentities"
```

**협업** 패널에 대한 액세스를 제한하기 위해 태그 기반 액세스 제어를 사용할 수 있습니다. 사용자가 Workspace를 생성하면 EMR Studio는 Workspace를 생성하는 사용자의 ID가 값인 `creatorUserId`의 키와 함께 기본 태그를 적용합니다.

**참고**  
EMR Studio에서는 2021년 11월 16일 이후 만들어진 Workspaces에 `creatorUserId` 태그를 추가합니다. 이 날짜 이전에 생성한 작업 영역에 대해 협업을 구성할 수 있는 사용자를 제한하려면 Workspace에 `creatorUserId` 태그를 수동으로 추가한 다음, 사용자 권한 정책에서 태그 기반 액세스 제어를 사용하는 것이 좋습니다.

다음 예제 명령문을 사용하면 값이 사용자 ID(`aws:userId` 정책 변수로 표시됨)와 일치하는 `creatorUserId` 태그 키를 포함하는 모든 Workspace에 대해 협업을 구성할 수 있습니다. 즉, 이 명령문을 통해 사용자가 생성한 Workspace에 대해 협업을 구성할 수 있습니다. 정책 변수에 대해 자세히 알아보려면 *IAM 사용 설명서*의 [IAM 정책 요소: 변수 및 태그](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)를 참조하세요.

```
    {
        "Sid": "UserRolePermissionsForCollaboration",
        "Action": [
            "elasticmapreduce:UpdateEditor",
            "elasticmapreduce:PutWorkspaceAccess",
            "elasticmapreduce:DeleteWorkspaceAccess",
            "elasticmapreduce:ListWorkspaceAccessIdentities"
        ],
        "Resource": "*",
        "Effect": "Allow",
        "Condition": {
            "StringEquals": {
                "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userid}"
            }
        }
    }
```

### 사용자 수준 Git 암호 정책 생성
<a name="emr-studio-permissions-policies-git"></a>

**Topics**
+ [

#### 사용자 수준 권한을 사용하는 방법
](#emr-studio-permissions-policies-user)
+ [

#### 서비스 수준 권한에서 사용자 수준 권한으로 전환하는 방법
](#emr-studio-permissions-policies-transition)
+ [

#### 서비스 수준 권한을 사용하는 방법
](#emr-studio-permissions-policies-service)

#### 사용자 수준 권한을 사용하는 방법
<a name="emr-studio-permissions-policies-user"></a>

EMR Studio에서는 Git 암호를 생성할 경우 `for-use-with-amazon-emr-managed-user-policies` 태그를 자동으로 추가합니다. 사용자 수준에서 Git 암호에 대한 액세스를 제어하려는 경우 아래 [서비스 수준 권한에서 사용자 수준 권한으로 전환하는 방법](#emr-studio-permissions-policies-transition) 섹션에 설명된 것처럼 태그 기반 권한을 `secretsmanager:GetSecretValue`가 있는 EMR Studio **사용자 역할 정책**에 추가하세요.

EMR Studio **서비스 역할 정책**에 `secretsmanager:GetSecretValue`에 대한 기존 권한이 있는 경우 해당 권한을 제거해야 합니다.

#### 서비스 수준 권한에서 사용자 수준 권한으로 전환하는 방법
<a name="emr-studio-permissions-policies-transition"></a>

**참고**  
`for-use-with-amazon-emr-managed-user-policies` 태그는 아래 **1단계**의 권한이 작업 영역 생성자에게 Git 암호에 대한 액세스 권한을 부여하도록 합니다. 하지만 2023년 9월 1일 이전에 Git 리포지토리를 연결했다면, 해당 Git 암호에 `for-use-with-amazon-emr-managed-user-policies` 태그가 적용되지 않아 이 암호의 액세스가 거부됩니다. 사용자 수준 권한을 적용하기 위해서는 JupyterLab에서 이전 암호를 재생성하고 적절한 Git 리포지토리를 다시 연결해야 합니다.  
정책 변수에 대한 자세한 내용을 확인하려면 *IAM 사용 설명서*의 [IAM 정책 요소: 변수 및 태그](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)를 참조하세요.

1. 다음 권한을 [EMR Studio **사용자 역할 정책**](emr-studio-service-role.md)에 추가합니다. `"${aws:userid}"` 값이 있는 `for-use-with-amazon-emr-managed-user-policies` 키를 사용합니다.

   ```
   {
      "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags",
       "Effect": "Allow",
       "Action": "secretsmanager:GetSecretValue",
       "Resource": "arn:aws:secretsmanager:*:*:secret:*",
       "Condition": {
           "StringEquals": {
               "secretsmanager:ResourceTag/for-use-with-amazon-emr-managed-user-policies": "${aws:userid}"
           }
       }
   }
   ```

1. 있는 경우 [EMR Studio **서비스 역할 정책**](emr-studio-service-role.md)에서 다음 권한을 제거합니다. 서비스 역할 정책은 각 사용자가 정의한 모든 암호에 적용되기 때문에 이 작업은 한 번만 수행하면 됩니다.

   ```
   {
       "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags", 
       "Effect": "Allow", 
       "Action": [ 
           "secretsmanager:GetSecretValue" 
        ], 
       "Resource": "arn:aws:secretsmanager:*:*:secret:*", 
       "Condition": {
           "StringEquals": {
               "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" 
           } 
       } 
   }
   ```

#### 서비스 수준 권한을 사용하는 방법
<a name="emr-studio-permissions-policies-service"></a>

2023년 9월 1일부로 EMR Studio는 사용자 수준 액세스 제어를 위해 `for-use-with-amazon-emr-managed-user-policies` 태그를 자동으로 추가합니다. 이 항목은 추가된 기능이기 때문에 [EMR Studio 서비스 역할](emr-studio-service-role.md)의 `GetSecretValue` 권한을 통해 사용할 수 있는 서비스 수준 액세스를 계속 사용할 수 있습니다.

2023년 9월 1일 이전에 생성된 암호의 경우 EMR Studio는 `for-use-with-amazon-emr-managed-user-policies` 태그를 추가하지 않았습니다. 서비스 수준 권한을 계속 사용하기 위해서는 기존 [EMR Studio 서비스 역할](emr-studio-service-role.md) 및 사용자 역할 권한을 유지하기만 하면 됩니다. 단, 개별 암호에 액세스할 수 있는 사용자를 제한하기 위해서는 [사용자 수준 권한을 사용하는 방법](#emr-studio-permissions-policies-user)의 단계에 따라 암호에 `for-use-with-amazon-emr-managed-user-policies` 태그를 수동으로 추가한 후, 해당 사용자 권한 정책의 태그 기반 액세스 제어를 사용할 것을 권장합니다.

정책 변수에 대한 자세한 내용을 확인하려면 *IAM 사용 설명서*의 [IAM 정책 요소: 변수 및 태그](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)를 참조하세요.

### IAM 자격 증명에 권한 정책 연결
<a name="emr-studio-permissions-policies-attach"></a>

다음 테이블에는 EMR Studio 인증 모드에 따라 권한 정책을 연결하는 IAM 자격 증명이 요약되어 있습니다. 정책을 연결하는 방법에 대한 지침은 [IAM 자격 증명 권한 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.


****  

| 사용하는 항목 | 정책을 연결하는 대상... | 
| --- | --- | 
| IAM 인증 | IAM 자격 증명(사용자, 사용자 그룹 또는 역할) 예를 들어, AWS 계정의 사용자에게 권한 정책을 연결할 수 있습니다. | 
| 외부 ID 제공업체(idP)와의 IAM 페더레이션 |  IAM 역할 또는 외부 IdP에서 생성한 역할. SAML 2.0용 IAM 페더레이션이 이에 해당합니다. EMR Studio는 Studio에 대한 페더레이션 액세스 권한을 가진 사용자의 IAM 역할에 연결하는 권한을 사용합니다.  | 
| IAM Identity Center | Amazon EMR Studio 사용자 역할. | 

## 사용자 정책 예제
<a name="emr-studio-example-policies"></a>

다음 기본 사용자 정책은 대부분의 EMR Studio 작업을 허용하지만 이때 사용자는 새 Amazon EMR 클러스터를 생성할 수 없습니다.

### 기본 정책
<a name="basic"></a>

**중요**  
예제 정책에는 IAM 인증 모드를 사용할 때 사용자에게 허용해야 하는 `CreateStudioPresignedUrl` 권한이 포함되어 있지 않습니다. 자세한 내용은 [EMR Studio에 사용자 또는 그룹 할당](emr-studio-manage-users.md#emr-studio-assign-users-groups) 단원을 참조하십시오.

예제 정책에는 EMR Studio의 예제 서비스 역할과 함께 정책을 사용할 수 있도록 태그 기반 액세스 제어(TBAC)를 적용하는 `Condition` 요소가 포함되어 있습니다. 자세한 내용은 [EMR Studio 서비스 역할 생성](emr-studio-service-role.md) 단원을 참조하십시오.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "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": "AllowSecretManagerListSecrets",
      "Action": [
        "secretsmanager:ListSecrets"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowSecretCreationWithEMRTagsAndEMRStudioPrefix",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:CreateSecret"
      ],
      "Resource": [
        "arn:aws:secretsmanager:*:*:secret:emr-studio-*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:TagResource"
      ],
      "Resource": [
        "arn:aws:secretsmanager:*:*:secret:emr-studio-*"
      ]
    },
    {
      "Sid": "AllowPassingServiceRoleForWorkspaceCreation",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/your-emr-studio-service-role>"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowS3ListAndLocationPermissions",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:ListBucket",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowS3ReadOnlyAccessToLogs",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::aws-logs-aws-111122223333>-region>/elasticmapreduce/*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowConfigurationForWorkspaceCollaboration",
      "Action": [
        "elasticmapreduce:UpdateEditor",
        "elasticmapreduce:PutWorkspaceAccess",
        "elasticmapreduce:DeleteWorkspaceAccess",
        "elasticmapreduce:ListWorkspaceAccessIdentities"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}"
        }
      }
    },
    {
      "Sid": "DescribeNetwork",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "ListIAMRoles",
      "Effect": "Allow",
      "Action": [
        "iam:ListRoles"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

다음 중급 사용자 정책은 대부분의 EMR Studio 작업을 허용하고 사용자는 클러스터 템플릿을 사용하여 새 Amazon EMR 클러스터를 생성할 수 있습니다.

### 중급 정책
<a name="intermediate"></a>

**중요**  
예제 정책에는 IAM 인증 모드를 사용할 때 사용자에게 허용해야 하는 `CreateStudioPresignedUrl` 권한이 포함되어 있지 않습니다. 자세한 내용은 [EMR Studio에 사용자 또는 그룹 할당](emr-studio-manage-users.md#emr-studio-assign-users-groups) 단원을 참조하십시오.

예제 정책에는 EMR Studio의 예제 서비스 역할과 함께 정책을 사용할 수 있도록 태그 기반 액세스 제어(TBAC)를 적용하는 `Condition` 요소가 포함되어 있습니다. 자세한 내용은 [EMR Studio 서비스 역할 생성](emr-studio-service-role.md) 단원을 참조하십시오.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowEMRBasicActions",
      "Action": [
        "elasticmapreduce:CreateEditor",
        "elasticmapreduce:DescribeEditor",
        "elasticmapreduce:ListEditors",
        "elasticmapreduce:StartEditor",
        "elasticmapreduce:StopEditor",
        "elasticmapreduce:DeleteEditor",
        "elasticmapreduce:OpenEditorInConsole",
        "elasticmapreduce:AttachEditor",
        "elasticmapreduce:DetachEditor",
        "elasticmapreduce:CreateRepository",
        "elasticmapreduce:DescribeRepository",
        "elasticmapreduce:DeleteRepository",
        "elasticmapreduce:ListRepositories",
        "elasticmapreduce:LinkRepository",
        "elasticmapreduce:UnlinkRepository",
        "elasticmapreduce:DescribeCluster",
        "elasticmapreduce:ListInstanceGroups",
        "elasticmapreduce:ListBootstrapActions",
        "elasticmapreduce:ListClusters",
        "elasticmapreduce:ListSteps",
        "elasticmapreduce:CreatePersistentAppUI",
        "elasticmapreduce:DescribePersistentAppUI",
        "elasticmapreduce:GetPersistentAppUIPresignedURL",
        "elasticmapreduce:GetOnClusterAppUIPresignedURL"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowEMRContainersBasicActions",
      "Action": [
        "emr-containers:DescribeVirtualCluster",
        "emr-containers:ListVirtualClusters",
        "emr-containers:DescribeManagedEndpoint",
        "emr-containers:ListManagedEndpoints",
        "emr-containers:DescribeJobRun",
        "emr-containers:ListJobRuns"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowRetrievingManagedEndpointCredentials",
      "Effect": "Allow",
      "Action": [
        "emr-containers:GetManagedEndpointSessionCredentials"
      ],
      "Resource": [
        "arn:aws:emr-containers:us-west-1:123456789012:/virtualclusters/virtual-cluster-id/endpoints/managed-endpoint-id"
      ],
      "Condition": {
        "StringEquals": {
          "emr-containers:ExecutionRoleArn": [
            "arn:aws:iam::123456789012:role/emr-on-eks-execution-role"
          ]
        }
      }
    },
    {
      "Sid": "AllowSecretManagerListSecrets",
      "Action": [
        "secretsmanager:ListSecrets"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowSecretCreationWithEMRTagsAndEMRStudioPrefix",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:CreateSecret"
      ],
      "Resource": [
        "arn:aws:secretsmanager:*:*:secret:emr-studio-*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:TagResource"
      ],
      "Resource": [
        "arn:aws:secretsmanager:*:*:secret:emr-studio-*"
      ]
    },
    {
      "Sid": "AllowClusterTemplateRelatedIntermediateActions",
      "Action": [
        "servicecatalog:DescribeProduct",
        "servicecatalog:DescribeProductView",
        "servicecatalog:DescribeProvisioningParameters",
        "servicecatalog:ProvisionProduct",
        "servicecatalog:SearchProducts",
        "servicecatalog:UpdateProvisionedProduct",
        "servicecatalog:ListProvisioningArtifacts",
        "servicecatalog:ListLaunchPaths",
        "servicecatalog:DescribeRecord",
        "cloudformation:DescribeStackResources"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowPassingServiceRoleForWorkspaceCreation",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/your-emr-studio-service-role"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowS3ListAndLocationPermissions",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:ListBucket",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowS3ReadOnlyAccessToLogs",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::aws-logs-123456789012-us-east-1/elasticmapreduce/*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowConfigurationForWorkspaceCollaboration",
      "Action": [
        "elasticmapreduce:UpdateEditor",
        "elasticmapreduce:PutWorkspaceAccess",
        "elasticmapreduce:DeleteWorkspaceAccess",
        "elasticmapreduce:ListWorkspaceAccessIdentities"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}"
        }
      }
    },
    {
      "Sid": "DescribeNetwork",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "ListIAMRoles",
      "Effect": "Allow",
      "Action": [
        "iam:ListRoles"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "AllowServerlessActions",
      "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",
        "emr-serverless:GetDashboardForJobRun",
        "emr-serverless:AccessInteractiveEndpoints"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowPassingRuntimeRoleForRunningServerlessJob",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/serverless-runtime-role"
      ],
      "Effect": "Allow"
    }
  ]
}
```

------

다음 고급 사용자 정책은 모든 EMR Studio 작업을 허용하고 사용자는 클러스터 템플릿을 사용하거나 클러스터 구성을 제공하여 새 Amazon EMR 클러스터를 생성할 수 있습니다.

### 고급 정책
<a name="advanced"></a>

**중요**  
예제 정책에는 IAM 인증 모드를 사용할 때 사용자에게 허용해야 하는 `CreateStudioPresignedUrl` 권한이 포함되어 있지 않습니다. 자세한 내용은 [EMR Studio에 사용자 또는 그룹 할당](emr-studio-manage-users.md#emr-studio-assign-users-groups) 단원을 참조하십시오.

예제 정책에는 EMR Studio의 예제 서비스 역할과 함께 정책을 사용할 수 있도록 태그 기반 액세스 제어(TBAC)를 적용하는 `Condition` 요소가 포함되어 있습니다. 자세한 내용은 [EMR Studio 서비스 역할 생성](emr-studio-service-role.md) 단원을 참조하십시오.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowEMRBasicActions",
      "Action": [
        "elasticmapreduce:CreateEditor",
        "elasticmapreduce:DescribeEditor",
        "elasticmapreduce:ListEditors",
        "elasticmapreduce:StartEditor",
        "elasticmapreduce:StopEditor",
        "elasticmapreduce:DeleteEditor",
        "elasticmapreduce:OpenEditorInConsole",
        "elasticmapreduce:AttachEditor",
        "elasticmapreduce:DetachEditor",
        "elasticmapreduce:CreateRepository",
        "elasticmapreduce:DescribeRepository",
        "elasticmapreduce:DeleteRepository",
        "elasticmapreduce:ListRepositories",
        "elasticmapreduce:LinkRepository",
        "elasticmapreduce:UnlinkRepository",
        "elasticmapreduce:DescribeCluster",
        "elasticmapreduce:ListInstanceGroups",
        "elasticmapreduce:ListBootstrapActions",
        "elasticmapreduce:ListClusters",
        "elasticmapreduce:ListSteps",
        "elasticmapreduce:CreatePersistentAppUI",
        "elasticmapreduce:DescribePersistentAppUI",
        "elasticmapreduce:GetPersistentAppUIPresignedURL",
        "elasticmapreduce:GetOnClusterAppUIPresignedURL"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowEMRContainersBasicActions",
      "Action": [
        "emr-containers:DescribeVirtualCluster",
        "emr-containers:ListVirtualClusters",
        "emr-containers:DescribeManagedEndpoint",
        "emr-containers:ListManagedEndpoints",
        "emr-containers:DescribeJobRun",
        "emr-containers:ListJobRuns"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowRetrievingManagedEndpointCredentials",
      "Effect": "Allow",
      "Action": [
        "emr-containers:GetManagedEndpointSessionCredentials"
      ],
      "Resource": [
        "arn:aws:emr-containers:*:123456789012:/virtualclusters/virtual-cluster-id/endpoints/managed-endpoint-id"
      ],
      "Condition": {
        "StringEquals": {
          "emr-containers:ExecutionRoleArn": [
            "arn:aws:iam::123456789012:role/emr-on-eks-execution-role"
          ]
        }
      }
    },
    {
      "Sid": "AllowSecretManagerListSecrets",
      "Action": [
        "secretsmanager:ListSecrets"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowSecretCreationWithEMRTagsAndEMRStudioPrefix",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:CreateSecret"
      ],
      "Resource": [
        "arn:aws:secretsmanager:*:*:secret:emr-studio-*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:TagResource"
      ],
      "Resource": [
        "arn:aws:secretsmanager:*:*:secret:emr-studio-*"
      ]
    },
    {
      "Sid": "AllowClusterTemplateRelatedIntermediateActions",
      "Action": [
        "servicecatalog:DescribeProduct",
        "servicecatalog:DescribeProductView",
        "servicecatalog:DescribeProvisioningParameters",
        "servicecatalog:ProvisionProduct",
        "servicecatalog:SearchProducts",
        "servicecatalog:UpdateProvisionedProduct",
        "servicecatalog:ListProvisioningArtifacts",
        "servicecatalog:ListLaunchPaths",
        "servicecatalog:DescribeRecord",
        "cloudformation:DescribeStackResources"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowEMRCreateClusterAdvancedActions",
      "Action": [
        "elasticmapreduce:RunJobFlow"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowPassingServiceRoleForWorkspaceCreation",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/your-emr-studio-service-role",
        "arn:aws:iam::*:role/EMR_DefaultRole_V2",
        "arn:aws:iam::*:role/EMR_EC2_DefaultRole"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowS3ListAndLocationPermissions",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:ListBucket",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowS3ReadOnlyAccessToLogs",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::aws-logs-123456789012-us-east-1/elasticmapreduce/*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowConfigurationForWorkspaceCollaboration",
      "Action": [
        "elasticmapreduce:UpdateEditor",
        "elasticmapreduce:PutWorkspaceAccess",
        "elasticmapreduce:DeleteWorkspaceAccess",
        "elasticmapreduce:ListWorkspaceAccessIdentities"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}"
        }
      }
    },
    {
      "Sid": "SageMakerDataWranglerForEMRStudio",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreatePresignedDomainUrl",
        "sagemaker:DescribeDomain",
        "sagemaker:ListDomains",
        "sagemaker:ListUserProfiles"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "DescribeNetwork",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "ListIAMRoles",
      "Effect": "Allow",
      "Action": [
        "iam:ListRoles"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "AllowServerlessActions",
      "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",
        "emr-serverless:GetDashboardForJobRun",
        "emr-serverless:AccessInteractiveEndpoints"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowPassingRuntimeRoleForRunningServerlessJob",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/serverless-runtime-role"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowCodeWhisperer",
      "Effect": "Allow",
      "Action": [
        "codewhisperer:GenerateRecommendations"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "AllowAthenaSQL",
      "Action": [
        "athena:StartQueryExecution",
        "athena:StopQueryExecution",
        "athena:GetQueryExecution",
        "athena:GetQueryRuntimeStatistics",
        "athena:GetQueryResults",
        "athena:ListQueryExecutions",
        "athena:BatchGetQueryExecution",
        "athena:GetNamedQuery",
        "athena:ListNamedQueries",
        "athena:BatchGetNamedQuery",
        "athena:UpdateNamedQuery",
        "athena:DeleteNamedQuery",
        "athena:ListDataCatalogs",
        "athena:GetDataCatalog",
        "athena:ListDatabases",
        "athena:GetDatabase",
        "athena:ListTableMetadata",
        "athena:GetTableMetadata",
        "athena:ListWorkGroups",
        "athena:GetWorkGroup",
        "athena:CreateNamedQuery",
        "athena:GetPreparedStatement",
        "glue:CreateDatabase",
        "glue:DeleteDatabase",
        "glue:GetDatabase",
        "glue:GetDatabases",
        "glue:UpdateDatabase",
        "glue:CreateTable",
        "glue:DeleteTable",
        "glue:BatchDeleteTable",
        "glue:UpdateTable",
        "glue:GetTable",
        "glue:GetTables",
        "glue:BatchCreatePartition",
        "glue:CreatePartition",
        "glue:DeletePartition",
        "glue:BatchDeletePartition",
        "glue:UpdatePartition",
        "glue:GetPartition",
        "glue:GetPartitions",
        "glue:BatchGetPartition",
        "kms:ListAliases",
        "kms:ListKeys",
        "kms:DescribeKey",
        "lakeformation:GetDataAccess",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:ListBucketMultipartUploads",
        "s3:ListMultipartUploadParts",
        "s3:AbortMultipartUpload",
        "s3:PutObject",
        "s3:PutBucketPublicAccessBlock",
        "s3:ListAllMyBuckets"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    }
  ]
}
```

------

다음 사용자 정책에는 EMR Studio Workspace와 함께 EMR Serverless 대화형 애플리케이션을 사용하는 데 필요한 최소 사용자 권한이 포함되어 있습니다.

### EMR Serverless 대화형 정책
<a name="serverless-interactive"></a>

EMR Studio를 사용하는 EMR Serverless 대화형 애플리케이션에 대한 사용자 권한을 포함하는 이 예제 정책에서 *serverless-runtime-role* 및 *emr-studio-service-role*의 자리 표시자를 올바른 [EMR Studio 서비스 역할](emr-studio-service-role.md) 및 [EMR Serverless 런타임 역할](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html)로 바꿉니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowServerlessActions",
      "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",
        "emr-serverless:GetDashboardForJobRun",
        "emr-serverless:AccessInteractiveEndpoints"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowEMRBasicActions",
      "Action": [
        "elasticmapreduce:CreateEditor",
        "elasticmapreduce:DescribeEditor",
        "elasticmapreduce:ListEditors",
        "elasticmapreduce:UpdateStudio",
        "elasticmapreduce:StartEditor",
        "elasticmapreduce:StopEditor",
        "elasticmapreduce:DeleteEditor",
        "elasticmapreduce:OpenEditorInConsole",
        "elasticmapreduce:AttachEditor",
        "elasticmapreduce:DetachEditor",
        "elasticmapreduce:CreateStudio",
        "elasticmapreduce:DescribeStudio",
        "elasticmapreduce:DeleteStudio",
        "elasticmapreduce:ListStudios",
        "elasticmapreduce:CreateStudioPresignedUrl"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowPassingRuntimeRoleForRunningEMRServerlessJob",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/serverless-runtime-role"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowPassingServiceRoleForWorkspaceCreation",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/emr-studio-service-role"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "AllowS3ListAndGetPermissions",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:ListBucket",
        "s3:GetBucketLocation",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::*"
      ],
      "Effect": "Allow"
    },
    {
      "Sid": "DescribeNetwork",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "ListIAMRoles",
      "Effect": "Allow",
      "Action": [
        "iam:ListRoles"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

## AWS Identity and Access Management EMR Studio 사용자에 대한 권한
<a name="emr-studio-iam-permissions-table"></a>

다음 테이블에는 사용자가 수행할 수 있는 각 Amazon EMR Studio 작업이 포함되어 있으며 해당 작업을 수행하는 데 필요한 최소 IAM 작업이 나열되어 있습니다. 이러한 작업은 EMR Studio의 IAM 권한 정책(IAM 인증을 사용하는 경우) 또는 사용자 역할 세션 정책(IAM Identity Center 인증을 사용하는 경우)에서 허용됩니다.

이 테이블에는 EMR Studio의 각 예제 권한 정책에서 허용된 작업도 표시됩니다. 권한 정책 예제에 대한 자세한 내용은 [EMR Studio 사용자를 위한 권한 정책 생성](#emr-studio-permissions-policies) 섹션을 참조하세요.


| 작업 | 기본 | 중급 | Advanced | 관련 작업 | 
| --- | --- | --- | --- | --- | 
| Workspace 생성 및 삭제 | 예 | 예 | 예 |  <pre>"elasticmapreduce:CreateEditor", <br />"elasticmapreduce:DescribeEditor",<br />"elasticmapreduce:ListEditors", <br />"elasticmapreduce:DeleteEditor"</pre>  | 
| 협업 패널을 보고, Workspace 협업을 활성화하며, 공동 작업자를 추가합니다. 자세한 내용은 [Workspace 협업에 대한 소유권 설정](#emr-studio-workspace-collaboration-permissions)을 참조하세요. | 예 | 예 | 예 |  <pre>"elasticmapreduce:UpdateEditor",<br />"elasticmapreduce:PutWorkspaceAccess",<br />"elasticmapreduce:DeleteWorkspaceAccess",<br />"elasticmapreduce:ListWorkspaceAccessIdentities"</pre>  | 
| 새 EMR 클러스터를 생성할 때 Studio와 동일한 계정의 Amazon S3 Control 스토리지 버킷 목록을 확인하고 웹 UI를 사용하여 애플리케이션을 디버깅할 때 컨테이너 로그에 액세스합니다. | 예 | 예 | 예 |  <pre>"s3:ListAllMyBuckets",<br />"s3:ListBucket", <br />"s3:GetBucketLocation",<br />"s3:GetObject"</pre>  | 
| Workspace에 액세스 | 예 | 예 | 예 |  <pre>"elasticmapreduce:DescribeEditor", <br />"elasticmapreduce:ListEditors",<br />"elasticmapreduce:StartEditor", <br />"elasticmapreduce:StopEditor",<br />"elasticmapreduce:OpenEditorInConsole"</pre>  | 
| Workspace와 연결된 기존 Amazon EMR 클러스터 연결 또는 분리 | 예 | 예 | 예 |  <pre>"elasticmapreduce:AttachEditor",<br />"elasticmapreduce:DetachEditor",<br />"elasticmapreduce:ListClusters",<br />"elasticmapreduce:DescribeCluster",<br />"elasticmapreduce:ListInstanceGroups",<br />"elasticmapreduce:ListBootstrapActions"</pre>  | 
| Amazon EMR on EKS 연결 또는 분리  | 예 | 예 | 예 |  <pre>"elasticmapreduce:AttachEditor", <br />"elasticmapreduce:DetachEditor",<br />"emr-containers:ListVirtualClusters", <br />"emr-containers:DescribeVirtualCluster",<br />"emr-containers:ListManagedEndpoints",<br />"emr-containers:DescribeManagedEndpoint",<br />"emr-containers:GetManagedEndpointSessionCredentials"</pre>  | 
| Workspace와 연결된 EMR Serverless 애플리케이션 연결 또는 분리 | 아니요 | 예 | 예 |  <pre>"elasticmapreduce:AttachEditor",<br />"elasticmapreduce:DetachEditor",<br />"emr-serverless:GetApplication",<br />"emr-serverless:StartApplication",<br />"emr-serverless:ListApplications",<br />"emr-serverless:GetDashboardForJobRun",<br />"emr-serverless:AccessInteractiveEndpoints",<br />"iam:PassRole"</pre> EMR Serverless 작업 런타임 역할을 전달하려면 `PassRole` 권한이 필요합니다. 자세한 내용은 *Amazon EMR Serverless 사용 설명서*에서 [Job runtime roles](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html)를 참조하세요. | 
| 영구 애플리케이션 사용자 인터페이스를 사용하여 EC2에서 Amazon EMR 작업 디버깅 | 예 | 예 | 예 |  <pre>"elasticmapreduce:CreatePersistentAppUI",<br />"elasticmapreduce:DescribePersistentAppUI",<br />"elasticmapreduce:GetPersistentAppUIPresignedURL",<br />"elasticmapreduce:ListClusters",<br />"elasticmapreduce:ListSteps",<br />"elasticmapreduce:DescribeCluster",<br />"s3:ListBucket",<br />"s3:GetObject"</pre>  | 
| 클러스터 내 애플리케이션 사용자 인터페이스를 사용하여 EC2에서 Amazon EMR 작업 디버깅 | 예 | 예 | 예 |  <pre>"elasticmapreduce:GetOnClusterAppUIPresignedURL"</pre>  | 
| Spark 기록 서버를 사용하여 Amazon EMR on EKS 작업 실행 디버깅 | 예 | 예 | 예 |  <pre>"elasticmapreduce:CreatePersistentAppUI",<br />"elasticmapreduce:DescribePersistentAppUI",<br />"elasticmapreduce:GetPersistentAppUIPresignedURL",<br />"emr-containers:ListVirtualClusters",<br />"emr-containers:DescribeVirtualCluster",<br />"emr-containers:ListJobRuns",<br />"emr-containers:DescribeJobRun",<br />"s3:ListBucket",<br />"s3:GetObject"</pre>  | 
| Git 리포지토리 생성 및 삭제 | 예 | 예 | 예 |  <pre>"elasticmapreduce:CreateRepository", <br />"elasticmapreduce:DeleteRepository",<br />"elasticmapreduce:ListRepositories",<br />"elasticmapreduce:DescribeRepository",<br />"secretsmanager:CreateSecret",<br />"secretsmanager:ListSecrets",<br />"secretsmanager:TagResource"</pre>  | 
| Git 리포지토리 연결 또는 연결 해제 | 예 | 예 | 예 |  <pre>"elasticmapreduce:LinkRepository",<br />"elasticmapreduce:UnlinkRepository",<br />"elasticmapreduce:ListRepositories",<br />"elasticmapreduce:DescribeRepository"</pre>  | 
| 사전 정의된 클러스터 템플릿에서 새 클러스터 생성 | 아니요 | 예 | 예 |  <pre>"servicecatalog:SearchProducts", <br />"servicecatalog:DescribeProduct",<br />"servicecatalog:DescribeProductView",<br />"servicecatalog:DescribeProvisioningParameters",<br />"servicecatalog:ProvisionProduct",<br />"servicecatalog:UpdateProvisionedProduct",<br />"servicecatalog:ListProvisioningArtifacts", <br />"servicecatalog:DescribeRecord",<br />"servicecatalog:ListLaunchPaths",<br />"cloudformation:DescribeStackResources", <br />"elasticmapreduce:ListClusters",<br />"elasticmapreduce:DescribeCluster"</pre>  | 
| 클러스터 구성을 제공하여 새 클러스터를 생성하세요. | 아니요 | 아니요 | 예 |  <pre>"elasticmapreduce:RunJobFlow",<br />"iam:PassRole",<br />"elasticmapreduce:ListClusters",<br />"elasticmapreduce:DescribeCluster"</pre>  | 
| [IAM 인증 모드를 사용할 때 사용자를 Studio에 할당합니다.](emr-studio-manage-users.md#emr-studio-assign-users-groups) | 아니요 | 아니요 | 아니요 |  <pre>"elasticmapreduce:CreateStudioPresignedUrl"</pre>  | 
| 네트워크 객체를 설명합니다. | 예 | 예 | 예 |    JSON   

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DescribeNetwork",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```      | 
| IAM 역할을 나열합니다. | 예 | 예 | 예 |    JSON   

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ListIAMRoles",
      "Effect": "Allow",
      "Action": [
        "iam:ListRoles"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```      | 
| [Amazon SageMaker AI Studio에서 EMR Studio에 연결하고 Data Wrangler 비주얼 인터페이스를 사용합니다.](https://aws.amazon.com/blogs/machine-learning/prepare-data-from-amazon-emr-for-machine-learning-using-amazon-sagemaker-data-wrangler/) | 아니요 | 아니요 | 예 |  <pre>"sagemaker:CreatePresignedDomainUrl",<br />"sagemaker:DescribeDomain",<br />"sagemaker:ListDomains",<br />"sagemaker:ListUserProfiles"</pre>  | 
| [EMR Studio에서 Amazon CodeWhisperer를 사용하세요.](emr-studio-codewhisperer.md) | 아니요 | 아니요 | 예 |  <pre>"codewhisperer:GenerateRecommendations"</pre>  | 
| [EMR Studio에서 Amazon Athena SQL 편집기에 액세스하세요.](emr-studio-athena.md) 이 목록에는 Athena의 모든 기능을 사용하는 데 필요한 일부 권한이 포함되지 않았을 수 있습니다. 최신 목록을 확인하려면 [Athena 전체 액세스 정책](https://docs.aws.amazon.com/athena/latest/ug/managed-policies.html#amazonathenafullaccess-managed-policy)을 참조하세요. | 아니요 | 아니요 | 예 |  <pre>"athena:StartQueryExecution",<br />"athena:StopQueryExecution",<br />"athena:GetQueryExecution",<br />"athena:GetQueryRuntimeStatistics",<br />"athena:GetQueryResults",<br />"athena:ListQueryExecutions",<br />"athena:BatchGetQueryExecution",<br />"athena:GetNamedQuery",<br />"athena:ListNamedQueries",<br />"athena:BatchGetNamedQuery",<br />"athena:UpdateNamedQuery",<br />"athena:DeleteNamedQuery",<br />"athena:ListDataCatalogs",<br />"athena:GetDataCatalog",<br />"athena:ListDatabases",<br />"athena:GetDatabase",<br />"athena:ListTableMetadata",<br />"athena:GetTableMetadata",<br />"athena:ListWorkGroups",<br />"athena:GetWorkGroup",<br />"athena:CreateNamedQuery",<br />"athena:GetPreparedStatement",<br />"glue:CreateDatabase",<br />"glue:DeleteDatabase",<br />"glue:GetDatabase",<br />"glue:GetDatabases",<br />"glue:UpdateDatabase",<br />"glue:CreateTable",<br />"glue:DeleteTable",<br />"glue:BatchDeleteTable",<br />"glue:UpdateTable",<br />"glue:GetTable",<br />"glue:GetTables",<br />"glue:BatchCreatePartition",<br />"glue:CreatePartition",<br />"glue:DeletePartition",<br />"glue:BatchDeletePartition",<br />"glue:UpdatePartition",<br />"glue:GetPartition",<br />"glue:GetPartitions",<br />"glue:BatchGetPartition",<br />"kms:ListAliases",<br />"kms:ListKeys",<br />"kms:DescribeKey",<br />"lakeformation:GetDataAccess",<br />"s3:GetBucketLocation",<br />"s3:GetBucketLocation",<br />"s3:GetObject",<br />"s3:ListBucket",<br />"s3:ListBucketMultipartUploads",<br />"s3:ListMultipartUploadParts",<br />"s3:AbortMultipartUpload",<br />"s3:PutObject",<br />"s3:PutBucketPublicAccessBlock",<br />"s3:ListAllMyBuckets"</pre>  | 