

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 アイデンティティセンターを有効にします](enable-identity-center.md)。[組織インスタンス](organization-instances-identity-center.md)が推奨されます。詳細については、「[前提条件と考慮事項](trustedidentitypropagation-overall-prerequisites.md)」を参照してください。

1. [ID のソースから IAM アイデンティティセンターにユーザーとグループをプロビジョニングします](tutorials.md)。

Amazon EMR Studio からの信頼できる ID 伝播の設定を完了するには、EMR Studio 管理者が次のステップを実行する必要があります。

## ステップ 1. EMR Studio に必要な IAM ロールを作成する
<a name="setting-up-tip-emr-step1"></a>

このステップでは、Amazon EMR Studio 管理者は と IAM サービスロール、および EMR Studio の 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 アイデンティティセンター認証用の EMR Studio ユーザーロールを作成する](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-studio-user-permissions.html#emr-studio-create-user-role)** - EMR Studio は、ユーザーが IAM アイデンティティセンターを通じてサインインしてワークスペース、EMR クラスター、ジョブ、git リポジトリを管理するときに、このロールを引き受けます。**このロールは、信頼できる ID の伝播ワークフローを開始するために使用されます**。
**注記**  
EMR Studio ユーザーロールには、 AWS Glue Catalog. AWS Lake Formation permissions のテーブルの Amazon S3 ロケーションにアクセスするためのアクセス許可を含める必要はありません。登録されたレイクロケーションは、一時的なアクセス許可を受け取るために使用されます。

   次のポリシー例は、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 WorkSpaces と EMR Notebooks を利用するには、追加のアクセス許可が必要です。詳細については、「[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/ja_jp/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 アイデンティティセンター]** を選択します。[ステップ 1. EMR Studio に必要な IAM ロールを作成するステップ 2. EMR Studio を作成および設定する](#setting-up-tip-emr-step1) で作成されたユーザーロールを選択します。  
![\[ステップ 3 EMR コンソールで EMR Studio を作成し、認証方法として IAM アイデンティティセンターを選択します。\]](http://docs.aws.amazon.com/ja_jp/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/ja_jp/singlesignon/latest/userguide/images/emr-tutorial-step-3.4.png)

1. すべての詳細を確認し、**[Studio を作成]**を選択します。

1. Athena WorkGroup または EMR クラスターを設定したら、Studio の URL にサインインして次の操作を行います。

   1. クエリエディタを使用して Athena クエリを実行します。

   1. Jupyter ノートブックを使用してワークスペースで Spark ジョブを実行します。