Amazon EMR 管理ポリシー - Amazon EMR

Amazon EMR 管理ポリシー

必要な Amazon EMR アクションにフルアクセスまたは読み取り専用アクセスを付与する最も簡単な方法は、Amazon EMR の IAM 管理ポリシーを使用することです。管理ポリシーは、アクセス権限の条件が変更された場合に、自動的に更新されるというメリットを提供します。インラインポリシーを使用する場合は、サービスの変更によってアクセス許可エラーが発生する場合があります。

Amazon EMR は、新しい管理ポリシー (v2 ポリシー) を優先して、既存の管理ポリシー (v1 ポリシー) を廃止します。新しい管理ポリシーでは、AWS のベストプラクティスに合うように範囲が制限されています。既存の v1 管理ポリシーが廃止されると、これらのポリシーを新しい IAM ロールまたはユーザーにアタッチできなくなります。廃止されたポリシーを使用している既存のロールおよびユーザーは、それらを引き続き使用できます。v2 管理ポリシーは、タグを使用してアクセスを制限します。指定された Amazon EMR アクションのみが許可され、EMR 固有のキーでタグ付けされたクラスターリソースが必要です。新しい v2 ポリシーを使用する前に、ドキュメントを慎重に確認することをお勧めします。

v1 ポリシーには非推奨のマークが付けられ、IAM コンソールの [Policies] (ポリシー) リストの横に警告アイコンとともに表示されます。非推奨ポリシーには、次の特徴があります。

  • 現在アタッチされているすべてのユーザー、グループ、およびロールで引き続き機能します。中断される処理はありません。

  • 新しいユーザー、グループ、またはロールにアタッチすることはできません。現在のエンティティからポリシーのいずれかをデタッチした場合、再アタッチすることはできません。

  • 現在のすべてのエンティティから v1 ポリシーをデタッチすると、ポリシーは表示されなくなり、使用できなくなります。

次の表は、現在のポリシー (v1) ポリシーと v2 ポリシーの変更点をまとめたものです。

EMR 管理ポリシーの変更
ポリシータイプ ポリシー名 ポリシーの目的 v2 ポリシーへの変更

アタッチされたユーザー、ロール、またはグループによる完全な EMR アクセスのための IAM 管理ポリシー

V1 ポリシー (非推奨化予定): AmazonElasticMapReduceFullAccess

V2 (範囲制限) ポリシー名: AmazonEMRFullAccessPolicy_v2

EMR アクションに対する完全なアクセス許可をユーザーに許可します。リソースに対する iam:PassRole アクセス許可が含まれます。

ポリシーは、ユーザーがこのポリシーを使用する前にリソースにユーザータグを追加する必要があるという前提条件を追加します。「管理ポリシーを使用するためにリソースにタグを付ける」を参照してください。

iam:PassRole アクションでは、指定されたサービスに iam:PassedToService 条件を設定する必要があります。デフォルトでは、Amazon EC2、Amazon S3、およびその他のサービスへのアクセスは許可されていません。「フルアクセス用の IAM 管理ポリシー (v2 管理デフォルトポリシー)」を参照してください。

アタッチされたユーザー、ロール、またはグループによる読み取り専用アクセスのための IAM 管理ポリシー

V1 ポリシー (非推奨化予定): AmazonElasticMapReduceReadOnlyAccess

V2 (範囲制限) ポリシー名: AmazonEMRReadOnlyAccessPolicy_v2

Amazon EMR アクションに対する読み取り専用アクセス許可をユーザーに許可します。

アクセス許可によって、指定された elasticmapreduce の読み取り専用アクションのみが許可されます。Amazon S3 へのアクセスは、デフォルトではアクセスが許可されていません。「読み取り専用アクセス用の IAM 管理ポリシー (v2 管理デフォルトポリシー)」を参照してください。

デフォルトの EMR サービスロールとアタッチされた管理ポリシー

ロール名: EMR_DefaultRole

V1 ポリシー (非推奨化予定): AmazonElasticMapReduceRole (EMR サービスロール)

V2 (範囲制限) ポリシー名: AmazonEMRServicePolicy_v2

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

v2 サービスロールと v2 デフォルトポリシーは、非推奨のロールとポリシーを置き換えます。このポリシーは、ユーザーがこのポリシーを使用する前にリソースにユーザータグを追加する必要があるという前提条件を追加します。「管理ポリシーを使用するためにリソースにタグを付ける」を参照してください 「Amazon EMR のサービスロール (EMR ロール)」を参照してください

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

V1 ポリシー (非推奨化予定): EMR_EC2_DefaultRole (インスタンスプロファイル)

非推奨のポリシー名:AmazonElasticMapReduceforEC2Role

EMR クラスターで実行されているアプリケーションが、Amazon S3 などの他の AWS リソースにアクセスできるようにします。例えば、Amazon S3 からのデータを処理する Apache Spark ジョブを実行する場合、ポリシーでそのようなリソースへのアクセスを許可する必要があります。

デフォルトロールとデフォルトポリシーの両方が非推奨予定です。代替の AWS デフォルト管理ロールまたはポリシーはありません。リソースベースまたは ID ベースのポリシーを提供する必要があります。つまり、デフォルトでは、EMR クラスターで実行されているアプリケーションは、ポリシーに手動で追加しない限り、Amazon S3 やその他のリソースにアクセスできません。「デフォルトのロールとデフォルトの管理ポリシー」を参照してください。

その他の EC2 サービスロールポリシー

現在のポリシー名: AmazonElasticMapReduceforAutoScalingRole、AmazonElasticMapReduceEditorsRole, AmazonEMRCleanupPolicy

EMR が他の AWS リソースにアクセスし、アクションを実行するため (オートスケーリング、ノートブックを使用する場合)、または EC2 リソースをクリーンアップするために必要なアクセス許可を提供します。

v2 で変更はありません。

iam:PassRole の保護

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

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

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

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

カスタムポリシーを作成するには、管理ポリシーから始め、条件にしたがって編集することをお勧めします。

ユーザー (プリンシパル) にポリシーをアタッチする方法については、「IAM ユーザーガイド」の「Working with managed policies using the AWS Management Console」を参照してください。

管理ポリシーを使用するためにリソースにタグを付ける

AmazonEMRServicePolicy_v2 および AmazonEMRFullAccessPolicy_v2 は、Amazon EMR がプロビジョニングまたは使用するリソースへの範囲が制限されたアクセス権限に依存します。事前に定義されたユーザータグが関連付けられているリソースのみにアクセスを制限することで、範囲制限を行います。これらの 2 つのポリシーのいずれかを使用する場合は、クラスターをプロビジョニングする際に、事前定義のユーザータグ for-use-with-amazon-emr-managed-policies = true を渡す必要があります。Amazon EMR はそのタグを自動的に伝播します。さらに、次のセクションにリストされているリソースにユーザータグを追加する必要があります。Amazon EMR コンソールを使用してクラスターを起動する場合は、「Amazon EMR コンソールで v2 管理ポリシーを使用してクラスターを起動する際の考慮事項」を参照してください。

管理ポリシーを使用するには、CLI、SDK、またはその他の方法を使用してクラスターをプロビジョニングする際に、ユーザータグ for-use-with-amazon-emr-managed-policies = true を渡します。

タグを渡すと、Amazon EMR は、作成したプライベートサブネット ENI、EC2 インスタンス、および EBS ボリュームにタグを伝播します。Amazon EMR は、作成するセキュリティグループにも自動的にタグ付けします。ただし、特定のセキュリティグループで Amazon EMR を起動するには、タグを付ける必要があります。Amazon EMR によって作成されていないリソースの場合は、それらのリソースにタグを追加する必要があります。例えば、Amazon EC2 サブネット、EC2 セキュリティグループ (Amazon EMR によって作成されていない場合)、VPC (Amazon EMR でセキュリティグループを作成する場合) にタグを付ける必要があります。VPC で v2 管理ポリシーを使用してクラスターを起動するには、事前定義のユーザータグでそれらの VPC にタグを付ける必要があります。「Amazon EMR コンソールで v2 管理ポリシーを使用してクラスターを起動する際の考慮事項」を参照してください。

伝播されたユーザー指定のタグ付け

Amazon EMR は、クラスターの作成時に指定した Amazon EMR タグを使用して、作成したリソースにタグを付けます。Amazon EMR は、クラスターの存続期間中に作成したリソースにタグを適用します。

Amazon EMR は、次のリソースのユーザータグを伝播します。

  • プライベートサブネット ENI (サービスアクセス Elastic Network Interface)

  • EC2 インスタンス

  • EBS ボリューム

  • EC2 起動テンプレート

自動的にタグ付けされたセキュリティグループ

Amazon EMR は、create cluster コマンドで指定したタグに関係なく、Amazon EMR の v2 管理ポリシーに必要なタグ for-use-with-amazon-emr-managed-policies を使用して、作成した EC2 セキュリティグループにタグ付けします。v2 管理ポリシーの導入前に作成されたセキュリティグループの場合、Amazon EMR はセキュリティグループに自動的にタグを付けません。アカウントにすでに存在するデフォルトのセキュリティグループで v2 管理ポリシーを使用する場合は、for-use-with-amazon-emr-managed-policies = true を使用して、セキュリティグループに手動でタグを付ける必要があります。

手動でタグ付けされたクラスターリソース

Amazon EMR のデフォルトロールからアクセスできるように、一部のクラスターリソースに手動でタグ付けする必要があります。

  • Amazon EMR 管理ポリシータグ for-use-with-amazon-emr-managed-policies を使用して、EC2 セキュリティグループと EC2 サブネットに手動でタグ付けする必要があります。

  • Amazon EMR でデフォルトのセキュリティグループを作成する場合は、VPC に手動でタグ付けする必要があります。EMR は、デフォルトのセキュリティグループがまだ存在しない場合、特定のタグを使用してセキュリティグループを作成しようとします。

Amazon EMR は、次のリソースに自動的にタグ付けします。

  • EMR が作成した EC2 セキュリティグループ

次のリソースに手動でタグ付けを行う必要があります。

  • EC2 サブネット

  • EC2 セキュリティグループ

必要に応じて、次のリソースに手動でタグ付けできます。

  • VPC - Amazon EMR でセキュリティグループを作成する場合のみ

Amazon EMR コンソールで v2 管理ポリシーを使用してクラスターを起動する際の考慮事項

Amazon EMR コンソールで v2 管理ポリシーを使用してクラスターをプロビジョニングできます。コンソールを使用して Amazon EMR クラスターを起動する場合の考慮事項を以下にいくつか示します。

注記

Amazon EMR コンソールを再設計しました。新しいコンソールでは自動タグ機能はまだ使用できません。また、新しいコンソールでは、タグ付けが必要なリソース (VPC/サブネット) も表示されません。古いコンソールと新しいコンソールエクスペリエンスの違いの詳細については、「コンソールの新機能」を参照してください。

  • 事前定義のタグを渡す必要はありません。Amazon EMR はタグを自動的に追加し、適切なコンポーネントに伝播します。

  • 手動でタグ付けする必要があるコンポーネントの場合、リソースにタグ付けするのに必要なアクセス許可を持っていれば、古い Amazon EMR コンソールがそれらのコンポーネントに自動的にタグ付けしようとします。リソースにタグ付けするためのアクセス許可を持っていない場合、または新しいコンソールを使用する場合は、管理者にリソースのタグ付けを依頼してください。

  • すべての前提条件が満たされない限り、v2 管理ポリシーを使用してクラスターを起動することはできません。

  • 古い Amazon EMR コンソールには、タグ付けする必要があるリソース (VPC/サブネット) が表示されます。

Amazon EMR の AWS 管理ポリシー

ユーザー、グループ、ロールに許可を追加するには、自分でポリシーを作成するよりも、AWS マネージドポリシーを使用する方が簡単です。チームに必要な許可のみを提供する IAM カスタマーマネージドポリシーを作成するには、時間と専門知識が必要です。すぐに使用を開始するために、AWS マネージドポリシーを使用できます。これらのポリシーは、一般的なユースケースを対象範囲に含めており、AWS アカウントで利用できます。AWS マネージドポリシーの詳細については、「IAM ユーザーガイド」の「AWS マネージドポリシー」を参照してください。

AWS のサービスは、AWS マネージドポリシーを維持および更新します。AWS マネージドポリシーの許可を変更することはできません。サービスでは、新しい機能を利用できるようにするために、AWS マネージドポリシーに許可が追加されることがあります。この種類の更新は、ポリシーがアタッチされている、すべてのアイデンティティ (ユーザー、グループおよびロール) に影響を与えます。新しい機能が立ち上げられた場合や、新しいオペレーションが使用可能になった場合に、各サービスが AWS マネージドポリシーを更新する可能性が最も高くなります。サービスは、AWS マネージドポリシーから許可を削除しないため、ポリシーの更新によって既存の許可が破棄されることはありません。

さらに、AWS は、複数のサービスにまたがるジョブ機能の特徴に対するマネージドポリシーもサポートしています。例えば、ReadOnlyAccess AWS マネージドポリシーでは、すべての AWS のサービスおよびリソースへの読み取り専用アクセスを許可します。サービスが新しい機能を起動する場合、AWS は、新たなオペレーションとリソース用に、読み取り専用の許可を追加します。ジョブ機能ポリシーのリストと説明については、IAM ユーザーガイドの「AWSジョブ関数のマネージドポリシー」を参照してください。

Amazon EMR での AWS 管理ポリシーに関する更新

Amazon EMR の AWS 管理ポリシーに対する更新の詳細について、このサービスがこれらの変更の追跡を開始した以降のものを示します。このページの変更に関する自動通知を入手するには、Amazon EMR ドキュメントの履歴ページから、RSS フィードにサブスクライブしてください。

変更 説明 日付
AmazonEMRFullAccessPolicy_v2AmazonEMRReadOnlyAccessPolicy_v2 – 既存のポリシーに対する更新 elasticmapreduce:ListSupportedInstanceTypesが追加されました。 2023 年 7 月 13 日
AmazonEMRFullAccessPolicy_v2AmazonEMRReadOnlyAccessPolicy_v2 – 既存のポリシーに対する更新 elasticmapreduce:DescribeReleaseLabelelasticmapreduce:GetAutoTerminationPolicy が追加されました。 2022 年 4 月 21 日
AmazonEMRFullAccessPolicy_v2 – 既存ポリシーへの更新。 カスタム AMI の使用」に ec2:DescribeImages が追加されました。 2022 年 2 月 15 日

Amazon EMR 管理ポリシー

定義済みのユーザータグの使用を明確にするために更新されました。

AWS コンソールで v2 管理ポリシーを使用してクラスターを起動する方法に関するセクションを追加しました。

2021 年 9 月 29 日

AmazonEMRFullAccessPolicy_v2 – 既存ポリシーへの更新。

PassRoleForAutoScaling および PassRoleForEC2 のアクションが変更され、それぞれ "iam:PassedToService":"application-autoscaling.amazonaws.com*" および "iam:PassedToService":"ec2.amazonaws.com*" に一致するように StringLike 条件演算子が使用されるようになりました。 2021 年 5 月 20 日

AmazonEMRFullAccessPolicy_v2 – 既存ポリシーへの更新。

無効なアクション s3:ListBuckets が削除され、s3:ListAllMyBuckets アクションに置き換えられました。

サービスにリンクされたロール (SLR) の作成を、明示的なサービス原則で Amazon EMR が備える唯一の SLR に明示的に範囲制限するように更新しました。作成できる SLR は、この変更前とまったく同じです。

2021 年 3 月 23 日

AmazonEMRFullAccessPolicy_v2 - 新しいポリシー

Amazon EMR で新しいアクセス許可が追加され、リソースへのアクセスの範囲が制限され、ユーザーが Amazon EMR 管理ポリシーを使用する前に事前定義されたユーザータグをリソースに追加する必要があるという前提条件が追加されました。

iam:PassRole アクションを実行するには、指定されたサービスに対して iam:PassedToService 条件が設定されている必要があります。デフォルトでは、Amazon EC2、Amazon S3、およびその他のサービスへのアクセスは許可されていません。

2021 年 3 月 11 日
AmazonEMRServicePolicy_v2 - 新しいポリシー

このポリシーを使用するには、ユーザーがリソースにユーザータグを追加する必要があるという前提条件を追加します。

2021 年 3 月 11 日
AmazonEMRReadOnlyAccessPolicy_v2 - 新しいポリシー

アクセス許可によって、指定された elasticmapreduce の読み取り専用アクションのみが許可されます。Amazon S3 へのアクセスは、デフォルトではアクセスが許可されていません。

2021 年 3 月 11 日

Amazon EMR が変更の追跡を開始しました。

Amazon EMR が AWS 管理ポリシーの変更の追跡を開始しました。

2021 年 3 月 11 日