

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

# Amazon EMR Studio를 사용한 신뢰할 수 있는 ID 전파 설정
<a name="setting-up-tip-emr"></a>

다음 절차에서는 Apache Spark를 실행하는 Amazon Athena 작업 그룹 또는 Amazon EMR 클러스터에 대한 쿼리에서 신뢰할 수 있는 ID 전파를 위해 Amazon EMR Studio를 설정하는 방법을 안내합니다.

## 사전 조건
<a name="setting-up-tip-emr-prereqs"></a>

이 자습서를 시작하려면 먼저 다음을 설정해야 합니다.

1. [IAM Identity Center를 활성화합니다](enable-identity-center.md). [조직 인스턴스](organization-instances-identity-center.md)를 권장합니다. 자세한 내용은 [필수 조건 및 고려 사항](trustedidentitypropagation-overall-prerequisites.md) 단원을 참조하십시오.

1. [ID 소스의 사용자 및 그룹을 IAM Identity Center로 프로비저닝합니다](tutorials.md).

Amazon EMR Studio에서 신뢰할 수 있는 ID 전파 설정을 완료하려면 EMR Studio 관리자가 다음 단계를 수행해야 합니다.

## 1단계. EMR Studio에 필요한 IAM 역할 생성
<a name="setting-up-tip-emr-step1"></a>

이 단계에서 Amazon EMR Studio 관리자는 EMR Studio에 대한 IAM 서비스 역할과 IAM 사용자 역할을 생성합니다.

1. **[EMR Studio 서비스 역할 생성](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-studio-service-role.html)** - EMR Studio는 이 IAM 역할을 수임하여 워크스페이스와 노트북을 안전하게 관리하고, 클러스터에 연결하고, 데이터 상호 작용을 처리합니다.

   1. IAM 콘솔([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))로 이동하여 IAM 역할을 생성합니다.

   1. **AWS 서비스**를 신뢰할 수 있는 엔터티로 선택한 다음 **Amazon EMR**을 선택합니다. 다음 정책을 연결하여 역할의 권한 및 신뢰 관계를 정의합니다.

      이러한 정책을 사용하려면 정책 예제의 *기울임꼴 자리 표시자 텍스트*를 본인의 정보로 대체합니다. 추가 지침은 [정책 생성](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html) 또는 [정책 편집](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-edit.html)을 참조하세요.

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "ObjectActions",
                  "Effect": "Allow",
                  "Action": [
                      "s3:PutObject",
                      "s3:GetObject",
                      "s3:DeleteObject"
                  ],
                  "Resource": [
                      "arn:aws:s3:::Your-S3-Bucket-For-EMR-Studio/*"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "aws:ResourceAccount": "Your-AWS-Account-ID"
                      }
                  }
              },
              {
                  "Sid": "BucketActions",
                  "Effect": "Allow",
                  "Action": [
                      "s3:ListBucket",
                      "s3:GetEncryptionConfiguration"
                  ],
                  "Resource": [
                      "arn:aws:s3:::Your-S3-Bucket-For-EMR-Studio"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "aws:ResourceAccount": "Your-AWS-Account-ID"
                      }
                  }
              }
          ]
      }
      ```

------

      모든 서비스 역할 권한에 대한 참조는 [EMR Studio 서비스 역할 권한](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-service-role.html#emr-studio-service-role-permissions-table)을 참조하세요.

1. **[IAM Identity Center 인증을 위해 EMR Studio 사용자 역할 생성](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-studio-user-permissions.html#emr-studio-create-user-role)** - 사용자가 IAM Identity Center를 통해 로그인하여 워크스페이스, EMR 클러스터, 작업, git 리포지토리를 관리할 때 EMR Studio가 이 역할을 수임합니다. **이 역할은 신뢰할 수 있는 ID 전파 워크플로를 시작하는 데 사용됩니다**.
**참고**  
EMR Studio 사용자 역할에는 AWS Glue Catalog에 있는 테이블의 Amazon S3 위치에 액세스할 수 있는 권한이 포함되지 않아도 됩니다. AWS Lake Formation 권한 및 등록된 레이크 위치는 임시 권한을 받는 데 사용됩니다.

   다음 예제 정책은 EMR Studio의 사용자가 Athena 작업 그룹을 사용하여 쿼리를 실행하도록 허용하는 역할에서 사용할 수 있습니다.

------
#### [ 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::111122223333:role/service-role/AmazonEMRStudio_ServiceRole_Name"
               ],
               "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-Your-AWS-Account-ID-Region/elasticmapreduce/*"
               ],
               "Effect": "Allow"
           },
           {
               "Sid": "AllowAthenaQueryExecutions",
               "Effect": "Allow",
               "Action": [
                   "athena:StartQueryExecution",
                   "athena:GetQueryExecution",
                   "athena:GetQueryResults",
                   "athena:StopQueryExecution",
                   "athena:ListQueryExecutions",
                   "athena:GetQueryResultsStream",
                   "athena:ListWorkGroups",
                   "athena:GetWorkGroup",
                   "athena:CreatePreparedStatement",
                   "athena:GetPreparedStatement",
                   "athena:DeletePreparedStatement"
               ],
               "Resource": "*"
           },
           {
               "Sid": "AllowGlueSchemaManipulations",
               "Effect": "Allow",
               "Action": [
                   "glue:GetDatabase",
                   "glue:GetDatabases",
                   "glue:GetTable",
                   "glue:GetTables",
                   "glue:GetPartition",
                   "glue:GetPartitions"
               ],
               "Resource": "*"
           },
           {
               "Sid": "AllowQueryEditorToAccessWorkGroup",
               "Effect": "Allow",
               "Action": "athena:GetWorkGroup",
               "Resource": "arn:aws:athena:*:111122223333:workgroup*"
           },
           {
               "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": "AssumeRole",
               "Effect": "Allow",
               "Action": [
                   "sts:AssumeRole"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

   다음 신뢰 정책은 EMR Studio가 역할을 수임하도록 허용합니다.
**참고**  
EMR Studio Workspace 및 EMR 노트북을 활용하려면 추가 권한이 필요합니다. 자세한 내용은 [EMR Studio 사용자를 위한 권한 정책 생성](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-studio-user-permissions.html#emr-studio-permissions-policies)을 참조하세요.

**다음 링크를 통해 자세한 내용을 확인할 수 있습니다.**
   + [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html)
   + [EMR Studio 서비스 역할 권한](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-studio-service-role.html#emr-studio-service-role-permissions-table)

## 2단계. EMR Studio 생성 및 구성
<a name="setting-up-tip-emr-step2"></a>

이 단계에서는 EMR Studio 콘솔에서 Amazon EMR Studio를 생성하고 [1단계. EMR Studio에 필요한 IAM 역할 생성2단계. EMR Studio 생성 및 구성](#setting-up-tip-emr-step1)에서 생성한 IAM 역할을 사용합니다.

1. EMR Studio 콘솔로 이동하여 **Studio 생성** 및 **사용자 지정 설정** 옵션을 선택합니다. 새 S3 버킷을 생성하거나 기존 버킷을 사용할 수 있습니다. **자체 KMS 키로 워크스페이스 파일 암호화** 확인란을 선택할 수 있습니다. 자세한 내용은 [AWS Key Management Service](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html) 단원을 참조하십시오.  
![\[1단계 EMR 콘솔에서 EMR Studio 생성.\]](http://docs.aws.amazon.com/ko_kr/singlesignon/latest/userguide/images/emr-tutorial-step-3.1.png)

1. **Studio가 리소스에 액세스할 수 있도록 하는 서비스 역할**의 메뉴에서 [1단계. EMR Studio에 필요한 IAM 역할 생성2단계. EMR Studio 생성 및 구성](#setting-up-tip-emr-step1)에서 생성된 서비스 역할을 선택합니다.

1. **인증**에서 **IAM Identity Center**를 선택합니다. [1단계. EMR Studio에 필요한 IAM 역할 생성2단계. EMR Studio 생성 및 구성](#setting-up-tip-emr-step1)에서 생성된 사용자 역할을 선택합니다.  
![\[3단계 EMR 콘솔에서 인증 방법에 IAM Identity Center를 선택하여 EMR Studio 생성.\]](http://docs.aws.amazon.com/ko_kr/singlesignon/latest/userguide/images/emr-tutorial-step-3.3.png)

1. **신뢰할 수 있는 ID 전파** 상자를 선택합니다. 애플리케이션 액세스 섹션에서 **할당된 사용자 및 그룹만**을 선택합니다. 그러면 권한이 부여된 사용자 및 그룹만이 스튜디오에 액세스할 수 있습니다.

1. *(선택 사항)* - EMR 클러스터와 함께 이 Studio를 사용하는 경우 VPC 및 서브넷을 구성할 수 있습니다.  
![\[4단계 EMR 콘솔에서 네트워크 및 보안 설정을 선택하여 EMR Studio 생성.\]](http://docs.aws.amazon.com/ko_kr/singlesignon/latest/userguide/images/emr-tutorial-step-3.4.png)

1. 모든 세부 정보를 검토하고 **Studio 생성**을 선택합니다.

1. Athena WorkGroup 또는 EMR 클러스터를 구성한 후 Studio의 URL에 로그인하여 다음을 수행합니다.

   1. 쿼리 편집기로 Athena 쿼리를 실행합니다.

   1. Jupyter 노트북을 사용하여 워크스페이스에서 Spark 작업을 실행합니다.