AWS のサービスおよびリソースへのアクセス許可を Amazon EMR に付与する IAM サービスロールの設定 - Amazon EMR

AWS のサービスおよびリソースへのアクセス許可を Amazon EMR に付与する IAM サービスロールの設定

Amazon EMR およびアプリケーション (Hadoop や Spark など) は、実行時に AWS の他のリソースにアクセスしてアクションを実行するための権限が必要です。Amazon EMR 内の各クラスターは、Amazon EC2 インスタンスプロファイル向けのサービスロールおよびロールが必要です。詳細については、「IAM ユーザーガイド」の「IAMロール」および「インスタンスプロファイルの使用」を参照してください。これらのロールにアタッチされている IAM ポリシーにより、クラスターはユーザーに代わって AWS の他のサービスとやり取りできます。

クラスターで Amazon EMR の自動スケーリングを使用する場合は、追加のロール (Auto Scaling ロール) が必要になります。EMR Notebooks を使用する場合は、EMR Notebooks の AWS サービスロールが必要です。

Amazon EMR は、各ロールのアクセス許可を決定するデフォルトのロールとデフォルトの管理ポリシーを提供します。管理ポリシーは、AWS で作成して管理するため、サービス要件が変更されると自動的に更新されます。「IAM ユーザーガイド」の「AWS 管理ポリシー」を参照してください。

アカウントで初めてクラスターやノートブックを作成する場合、Amazon EMR のロールはまだありません。ロールを作成すると、IAM コンソール (https://console.aws.amazon.com/iam/) でロール、ロールにアタッチされたポリシー、およびポリシーで許可または拒否されるアクセス許可を確認できます。Amazon EMR で作成および使用するデフォルトのロールを指定できます。また、独自のロールを作成して、これをクラスターの作成時に個別に指定してアクセス許可をカスタマイズできます。さらに、AWS CLI を使用してクラスターを作成するときに使用するデフォルトのロールを指定できます。詳細については、「IAM ロールのカスタマイズ」を参照してください。

Amazon EMR にサービスロールを渡すアクセス許可のアイデンティティベースのポリシーの変更

Amazon EMR のフルアクセス許可のデフォルトの管理ポリシーには、次を含む iam:PassRole セキュリティ設定が組み込まれています。

  • 特定のデフォルトの Amazon EMR ロール専用の iam:PassRole アクセス許可。

  • elasticmapreduce.amazonaws.comec2.amazonaws.com など、指定した AWS のサービスのみで使用できる iam:PassedToService 条件。

IAM コンソールで AmazonEMRFullAccessPolicy_v2 および AmazonEMRServicePolicy_v2 ポリシーの JSON バージョンを表示できます。v2 管理ポリシーを使用して新しいクラスターを作成することが推奨されます。

サービスロールの概要

次の表は、Amazon EMR に関連する IAM サービスロールを簡単に参照できる一覧です。

関数 デフォルトロール 説明 デフォルト管理ポリシー

Amazon EMR のサービスロール (EMR ロール)

EMR_DefaultRole_V2

リソースをプロビジョニングしてサービスレベルのアクションを実行する際にユーザーに代わって AWS の他のサービスを呼び出すことを Amazon EMR に許可します。このロールは、すべてのクラスターに必須です。

AmazonEMRServicePolicy_v2

重要

スポットインスタンスをリクエストするには、サービスリンクロールが必要です。このロールが存在しない場合、Amazon EMR サービスロールには、作成するためのアクセス許可が必要です。ない場合はアクセス許可エラーが発生します。スポットインスタンスをリクエストする場合は、このポリシーを更新して、このサービスにリンクされたロールの作成を許可するステートメントを含める必要があります。詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「Amazon EMR のサービスロール (EMR ロール)」および「スポットインスタンスリクエスト向けのサービスにリンクされたロール」を参照してください。

クラスター EC2 インスタンスのサービスロール (EC2 インスタンスプロファイル)

EMR_EC2_DefaultRole

クラスターインスタンスに対して Hadoop エコシステム上で実行されるアプリケーションプロセスは、このロールを使用して AWS の他のサービスを呼び出します。EMRFS を使用して Amazon S3 のデータにアクセスする場合は、Amazon S3 のデータの場所に応じて引き受ける各種ロールを指定できます。例えば、複数のチームが単一の Amazon S3 データ「ストレージアカウント」にアクセスできます。詳細については、「Amazon S3 への EMRFS リクエストの IAM ロールを設定する」を参照してください。このロールは、すべてのクラスターに必須です。

AmazonElasticMapReduceforEC2Role。詳細については、「クラスター EC2 インスタンスのサービスロール (EC2 インスタンスプロファイル)」を参照してください。

Amazon EMR の自動スケーリングのサービスロール (Auto Scaling ロール)

EMR_AutoScaling_DefaultRole

動的なスケーリング環境用の追加のアクションを許可します。Amazon EMR でオートスケーリングを使用するクラスターでのみ必須です。詳細については、「カスタムポリシーによる自動スケーリングをインスタンスグループに使用する 」を参照してください。

AmazonElasticMapReduceforAutoScalingRole。詳細については、「Amazon EMR の自動スケーリングのサービスロール (Auto Scaling ロール)」を参照してください。

EMR Notebooks のサービスロール

EMR_Notebooks_DefaultRole

EMR Notebooks が AWS の他のリソースにアクセスしてアクションを実行するために必要なアクセス許可を提供します。EMR Notebooks を使用する場合にのみ必須です。

AmazonElasticMapReduceEditorsRole。詳細については、「EMR Notebooks のサービスロール」を参照してください。

S3FullAccessPolicy もデフォルトでアタッチされます。このポリシーの内容は次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ] }

サービスにリンクされたロール

AWSServiceRoleForEMRCleanup

Amazon EMR では、サービスにリンクされたロールが自動的に作成されます。Amazon EMR のサービスが Amazon EC2 リソースをクリーンアップできなくなった場合、Amazon EMR はこのロールを使用してクリーンアップできます。クラスターでスポットインスタンスを使用している場合、Amazon EMR のサービスロール (EMR ロール) にアタッチされているアクセス許可ポリシーは、サービスにリンクされたロールの作成を許可する必要があります。詳細については、「Amazon EMR でのサービスにリンクされたロールのアクセス許可」を参照してください。

AmazonEMRCleanupPolicy