Amazon EMR on EKS へのアクセス許可をユーザーに付与する - Amazon EMR

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

Amazon EMR on EKS へのアクセス許可をユーザーに付与する

Amazon EMR on EKS で実行するアクションについては、そのアクションに対応する IAM アクセス許可が必要です。Amazon EMR on EKS アクションを実行し、使用する IAM ユーザーまたはロールにポリシーをアタッチできる IAM ポリシーを作成する必要があります。

このトピックでは、新しいポリシーを作成し、ユーザーにアタッチする手順について説明します。Amazon EMR on EKS 環境を設定するために必要な基本的なアクセス許可についても説明します。ビジネスニーズに基づいて、可能な限り、特定のリソースに対するアクセス許可を絞り込むことをお勧めします。

新しい IAM ポリシーを作成して、IAM コンソールでユーザーにアタッチする

新規 IAM ポリシーを作成する
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/iam/ で IAM コンソールを開きます。

  2. IAM コンソールの左側のナビゲーションペインで [ポリシー] を選択します。

  3. [ポリシー] ページで、[ポリシーの作成] を選択します。

  4. [Create Policy] (ポリシーの作成) ウィンドウで、[Edit JSON] (JSON の編集) タブに移動します。この手順の後、例に示されているように、1 つ以上の JSON ステートメントを含むポリシードキュメントを作成します。次に、[ポリシーの確認] を選択します。

  5. [Review Policy] (ポリシーの確認) 画面で、[Policy Name] (ポリシー名)に AmazonEMROnEKSPolicy (など)を入力します。任意で説明を入力し、[ポリシーの作成] を選択します。

ポリシーをユーザーまたはロールにアタッチする
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/iam/ で IAM コンソールを開きます。

  2. ナビゲーションペインで、ポリシー を選択してください。

  3. ポリシーのリストで、前のセクションで作成したポリシーの横にあるチェックボックスを選択します。[Filter (フィルター)] メニューと検索ボックスを使用して、ポリシーのリストをフィルタリングできます。

  4. [Policy actions] を選択して、[Attach] を選択します。

  5. ポリシーをアタッチするユーザーまたはロールを選択します。[Filter] メニューと検索ボックスを使用して、プリンシパルエンティティのリストをフィルタリングできます。ポリシーをアタッチするユーザーまたはロールを選択した後、[Attach policy] (ポリシーのアタッチ) を選択します。

仮想クラスターを管理するためのアクセス許可

AWS アカウントの仮想クラスターを管理するには、次のアクセス許可を持つ IAM ポリシーを作成します。これらのアクセス許可により、 AWS アカウントで仮想クラスターを作成、一覧表示、説明、削除できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "emr-containers.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "emr-containers:CreateVirtualCluster", "emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster", "emr-containers:DeleteVirtualCluster" ], "Resource": "*" } ] }

Amazon EMR は Amazon EKS クラスターアクセス管理 (CAM) と統合されているため、Amazon EKS クラスターの名前空間で Amazon EMR Spark ジョブを実行するために必要な AuthN ポリシーと AuthZ ポリシーの設定を自動化できます。これを行うには、次のアクセス許可が必要です。

{ "Effect": "Allow", "Action": [ "eks:CreateAccessEntry" ], "Resource": "arn:<AWS_PARTITION>:eks:<AWS_REGION>:<AWS_ACCOUNT_ID>:cluster/<EKS_CLUSTER_NAME>" }, { "Effect": "Allow", "Action": [ "eks:DescribeAccessEntry", "eks:DeleteAccessEntry", "eks:ListAssociatedAccessPolicies", "eks:AssociateAccessPolicy", "eks:DisassociateAccessPolicy" ], "Resource": "arn:<AWS_PARTITION>:eks:<AWS_REGION>:<AWS_ACCOUNT_ID>:access-entry/<EKS_CLUSTER_NAME>/role/<AWS_ACCOUNT_ID>/AWSServiceRoleForAmazonEMRContainers/*" }

詳細については、「Automate enabling cluster access for Amazon EMR on EKS」を参照してください。

AWS アカウントからオペレーションが初めてCreateVirtualCluster呼び出されると、Amazon EMR on EKS のサービスにリンクされたロールを作成するためのCreateServiceLinkedRoleアクセス許可も必要です。詳細については、「Amazon EMR on EKS でのサービスにリンクされたロールの使用」を参照してください。

ジョブを送信するためのアクセス許可

AWS アカウントの仮想クラスターでジョブを送信するには、次のアクセス許可を持つ IAM ポリシーを作成します。これらのアクセス許可により、アカウント内のすべての仮想クラスターに対して、ジョブ実行の開始、一覧表示、説明、およびキャンセルを行えるようになります。仮想クラスターを一覧表示または記述するアクセス許可を追加することを検討する必要があります。これにより、ジョブを送信する前に仮想クラスターの状態を確認できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:StartJobRun", "emr-containers:ListJobRuns", "emr-containers:DescribeJobRun", "emr-containers:CancelJobRun" ], "Resource": "*" } ] }

デバッグとモニタリングを行うためのアクセス許可

Amazon S3 および CloudWatch にプッシュされたログにアクセスしたり、Amazon EMR コンソールでアプリケーションイベントログを表示したりするには、以下のアクセス許可を持つ IAM ポリシーを作成します。ビジネスニーズに基づいて、可能な限り、特定のリソースに対するアクセス許可を絞り込むことをお勧めします。

重要

Amazon S3 バケットを作成していない場合は、s3:CreateBucket アクセス許可をポリシーステートメントに追加する必要があります。ロググループを作成していない場合は、logs:CreateLogGroup をポリシーステートメントに追加する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:DescribeJobRun", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:Get*", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "*" } ] }

Amazon S3 および CloudWatch にログをプッシュするようにジョブ実行を設定する方法の詳細については、S3ログ使用のための実行の構成)および CloudWatchログ使用のためのジョブ実行の構成) を参照してください