Amazon EMR で IAM が機能する仕組み - Amazon EMR

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

Amazon EMR で IAM が機能する仕組み

IAM を使用して Amazon EMR へのアクセスを管理する前に、Amazon EMR で使用できる IAM 機能について理解しておく必要があります。

Amazon EMR およびその他の AWS のサービスがほとんどの IAM 機能と連携する方法の概要については、「IAM ユーザーガイド」のAWS 「IAM と連携する のサービス」を参照してください。

Amazon EMR の ID ベースのポリシー

アイデンティティベースのポリシーのサポート: あり

アイデンティティベースポリシーは、IAM ユーザー、ユーザーグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースポリシーの作成方法については、「IAM ユーザーガイド」の「カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する」を参照してください。

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。JSON ポリシーで使用できるすべての要素について学ぶには、「IAM ユーザーガイド」の「IAM JSON ポリシーの要素のリファレンス」を参照してください。

Amazon EMR の ID ベースのポリシーの例

Amazon EMR のアイデンティティベースポリシーの例を確認するには、「Amazon EMR のアイデンティティベースポリシーの例」を参照してください。

Amazon EMR 内のリソースベースのポリシー

リソースベースのポリシーのサポート: あり

リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。リソースベースのポリシーには例として、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーがあげられます。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーでは、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、または を含めることができます AWS のサービス。

クロスアカウントアクセスを有効にするには、全体のアカウント、または別のアカウントの IAM エンティティを、リソースベースのポリシーのプリンシパルとして指定します。詳細については、「IAM ユーザーガイド」の「IAM でのクロスアカウントリソースアクセス」を参照してください。

Amazon EMR のポリシーアクション

ポリシーアクションのサポート:あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

JSON ポリシーの Action 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

Amazon EMR のアクションのリストについては、「サービス認可リファレンス」の「Actions, resources, and condition keys for Amazon EMR」を参照してください。

Amazon EMR のポリシーアクションは、アクションの前に次のプレフィックスを使用します。

EMR

単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。

"Action": [ "EMR:action1", "EMR:action2" ]

Amazon EMR のアイデンティティベースポリシーの例を確認するには、「Amazon EMR のアイデンティティベースポリシーの例」を参照してください。

Amazon EMR のポリシーリソース

ポリシーリソースのサポート: あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Resource JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。

"Resource": "*"

Amazon EMR リソースのタイプとその ARN のリストについては、「サービス認可リファレンス」の「Resources Defined by Amazon EMR」を参照してください。各リソースの ARN を指定できるアクションについては、「Actions, resources, and condition keys for Amazon EMR」を参照してください。

Amazon EMR のアイデンティティベースポリシーの例を確認するには、「Amazon EMR のアイデンティティベースポリシーの例」を参照してください。

Amazon EMR のポリシー条件キー

サービス固有のポリシー条件キーのサポート: あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Condition 要素は、定義された基準に基づいてステートメントが実行されるタイミングを指定します。イコールや未満などの 条件演算子 を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドAWS 「グローバル条件コンテキストキー」を参照してください。

Amazon EMR の条件キーのリスト、および条件キーを使用できるアクションとリソースについては、「サービス認可リファレンス」の「Actions, resources, and condition keys for Amazon EMR」を参照してください。

Amazon EMR のアイデンティティベースポリシーの例を確認するには、「Amazon EMR のアイデンティティベースポリシーの例」を参照してください。

Amazon EMR のアクセスコントロールリスト (ACL)

ACL のサポート: なし

アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするための許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。

Amazon EMR での属性ベースのアクセスコントロール (ABAC)

ABAC のサポート (ポリシー内のタグ) あり

属性ベースのアクセス制御 (ABAC) は、タグと呼ばれる属性に基づいてアクセス許可を定義する認可戦略です。IAM エンティティと AWS リソースにタグをアタッチし、プリンシパルのタグがリソースのタグと一致するときにオペレーションを許可するように ABAC ポリシーを設計できます。

タグに基づいてアクセスを管理するには、aws:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeys の条件キーを使用して、ポリシーの 条件要素でタグ情報を提供します。

サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値はありです。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「部分的」になります。

ABAC の詳細については、「IAM ユーザーガイド」の「ABAC 認可でアクセス許可を定義する」を参照してください。ABAC をセットアップする手順を説明するチュートリアルについては、「IAM ユーザーガイド」の「属性ベースのアクセスコントロール (ABAC) を使用する」を参照してください。

Amazon EMR での一時認証情報の使用

一時的な認証情報のサポート: あり

一時的な認証情報は AWS 、リソースへの短期的なアクセスを提供し、フェデレーションまたはスイッチロールの使用時に自動的に作成されます。長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成 AWS することをお勧めします。詳細については、「IAM ユーザーガイド」の「IAM の一時的な認証情報」および「IAM と連携するAWS のサービス」を参照してください。

Amazon EMR のクロスサービスプリンシパルのアクセス許可

転送アクセスセッション (FAS) のサポート: あり

転送アクセスセッション (FAS) は、 を呼び出すプリンシパルのアクセス許可と AWS のサービス、ダウンストリームサービス AWS のサービス へのリクエストをリクエストする を使用します。FAS リクエストを行う際のポリシーの詳細については、「転送アクセスセッション」を参照してください。

Amazon EMR のサービスロール

サービスロールのサポート なし

Amazon EMR のサービスリンクロール

サービスリンクロールのサポート Yes

サービスにリンクされたロールの作成または管理の詳細については、「IAM と提携するAWS のサービス」を参照してください。表の「サービスリンクロール」列に Yes と記載されたサービスを見つけます。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[はい] リンクを選択します。

IAM ポリシーを持つクラスターとノートブックのタグをアクセスコントロールに使用する

EMR Notebooks および EMR クラスターに関連した Amazon EMR アクションに対する許可は、アイデンティティベースの IAM ポリシーを用いたタグベースのアクセスコントロールを使用して調整できます。ノートブック、クラスター、またはその両方に特定のタグキーまたはキーと値の組み合わせがある場合にのみ特定のアクションを許可するには、Condition 要素 (Condition ブロックとも呼ばれる) 内で条件キーを使用できます。CreateEditor アクション (EMR Notebooks が作成される)、RunJobFlow アクション (クラスターが作成される) を制限することもできます。これにより、タグに対するリクエストが、リソースの作成時に送信されなければならないようにすることができます。

Amazon EMR では、Condition 要素で使用できる条件キーは、リクエストパラメータとして ClusterID または NotebookID を必要とする Amazon EMR API アクションにのみ適用されます。たとえば、ModifyInstanceGroups アクションはコンテキストキーをサポートしません。ClusterID はオプションのパラメータではないからです。

EMR ノートブックを作成すると、デフォルトのタグが適用されます。このタグのキー文字列は creatorUserId で、ノートブックを作成した IAM ユーザー ID の値に設定されています。ノートブックに対して許可されるアクションを作成者のみに制限するのに便利です。

Amazon EMR で次の条件キーを使用できます。

  • elasticmapreduce:ResourceTag/TagKeyString 条件コンテキストキーを使用して、指定した TagKeyString のあるタグを持つクラスターまたはノートブックのユーザーアクションを許可または拒否します。ClusterIDNotebookID の両方を渡す場合、条件がクラスターとノートブッククラスターの両方に適用されます。つまり、両方のリソースに、タグキー文字または指定するキーと値の組み合わせが必要です。Resource 要素を使用してステートメントを制限できるため、必要に応じてクラスターまたはノートブックにのみ適用されます。詳細については、「Amazon EMR のアイデンティティベースポリシーの例」を参照してください。

  • アクション/API コールを持つ特定のタグを必要としている elasticmapreduce:RequestTag/TagKeyString 条件コンテキストキーを使用します。たとえば、この条件コンテキストキーとともに CreateEditor アクションを使用して、TagKeyString を持つキーがノートブック作成時に適用されるよう要求することができます。

Amazon EMR アクションのリストを確認するには、「IAM ユーザーガイド」の「Amazon EMR で定義されるアクション」を参照してください。