AWS Glue と IAM の連携方法 - AWS Glue

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

AWS Glue と IAM の連携方法

IAM を使用して AWS Glue へのアクセスを管理するときは、事前に、AWS Glue で使用できる IAM の機能について理解しておきます。

AWS Glue とその他 AWS サービスが IAM 機能と連携する方法について大まかに理解するには、IAM ユーザーガイドの「IAM と連携する AWS のサービス」を参照してください。

AWS Glue のアイデンティティベースのポリシー

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

あり

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

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、アクションを許可または拒否する条件を指定できます。プリンシパルは、それが添付されているユーザーまたはロールに適用されるため、アイデンティティベースのポリシーでは指定できません。JSON ポリシーで使用できるすべての要素について学ぶには、IAM ユーザーガイドIAM JSON ポリシーの要素のリファレンスを参照してください。

AWS Glue では、すべての AWS Glue の操作についてアイデンティティベースのポリシー ( IAM ポリシー) がサポートされています。ポリシーをアタッチすることで、AWS Glue Data Catalog 内のテーブルなどの AWS Glue リソースを作成し、そのリソースにアクセスして変更するためのアクセス許可を付与できます。

AWS Glue のアイデンティティベースポリシーの例

AWS Glue のアイデンティティベースのポリシーの例を見るには、「AWS Glue のアイデンティティベースポリシーの例」を参照してください。

AWS Glue 内のリソースベースのポリシー

リソースベースのポリシーのサポート

部分的

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

クロスアカウントアクセスを有効にするには、全体のアカウント、または別のアカウントの IAM エンティティを、リソースベースのポリシーのプリンシパルとして指定します。リソースベースのポリシーにクロスアカウントのプリンシパルを追加しても、信頼関係は半分しか確立されない点に注意してください。プリンシパルとリソースが異なる AWS アカウントにある場合、信頼できるアカウントの IAM 管理者は、リソースにアクセスするための許可をプリンシパルエンティティ (ユーザーまたはロール) に付与する必要もあります。IAM 管理者は、アイデンティティベースのポリシーをエンティティに添付することで許可を付与します。ただし、リソースベースのポリシーで、同じアカウントのプリンシパルへのアクセス権が付与されている場合は、ID ベースのポリシーをさらに付与する必要はありません。詳細については、 IAM ユーザーガイド の「IAM ロールとリソースベースのポリシーとの相違点」を参照してください。

注記

AWS Glue リソースポリシーは、Data Catalog リソースのアクセス許可を管理する場合にのみ使用できます。ジョブ、トリガー、開発エンドポイント、クローラ、または分類子など、他の AWS Glue リソースにアタッチすることはできません。

リソースポリシーは 1 カタログにつき 1 つのみ許可されます。サイズの上限は 10 KB です。

AWS Glue では、リソースポリシーはカタログにアタッチされます。カタログとは、前述したあらゆる種類の Data Catalog リソースに対応した仮想コンテナです。各 AWS アカウントは、AWS アカウント ID と同じカタログ ID を持つ単一のカタログを AWS リージョンに所有しています。カタログを削除したり変更したりすることはできません。

リソースポリシーは、カタログへのすべての API コールで評価されます。この場合、呼び出し元のプリンシパルはポリシードキュメントの "Principal" ブロックに含まれているものとします。

AWS Glue のリソースベースのポリシーの例は、「AWS Glue のリソースベースのポリシーの例」を参照してください。

AWS Glue のポリシーアクション

ポリシーアクションに対するサポート

あり

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

JSON ポリシーの Action要素には、ポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。ポリシーアクションの名前は通常、関連する AWSAPI オペレーションと同じです。一致する API オペレーションのない 許可のみのアクション など、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは、依存アクション と呼ばれます。

このアクションは、関連付けられたオペレーションを実行するための許可を付与するポリシーで使用されます。

AWS Glue アクションのリストは、サービス認証リファレンスの「AWS Glue で定義されるアクション」でご確認いただけます。

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

glue

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

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

ワイルドカード (*) を使用して複数のアクションを指定することができます。例えば、Get という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。

"Action": "glue:Get*"

ポリシーの例を表示するには、「AWS Glue のアクセスコントロールポリシーの例」を参照してください。

AWS Glue のポリシーリソース

ポリシーリソースに対するサポート

あり

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

Resource JSON ポリシー要素は、オブジェクトあるいはアクションが適用されるオブジェクトを指定します。ステートメントには、Resource または NotResource要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの許可 と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。

オペレーションのリスト化など、リソースレベルの許可をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。

"Resource": "*"

ARN を使用して AWS Glue リソースへのアクセスをコントロールする方法の詳細については、AWS Glue リソース ARN の指定 を参照してください。

AWS Glue のリソースタイプとその ARN のリストについては、「サービス認証リファレンス」の「AWS Glue で定義されるリソースタイプ」を参照してください。各リソースの ARN を指定するときにどのアクションを使用できるのかについての詳細は、「AWS Glue で定義されるアクション」を参照してください。

AWS Glue のポリシー条件キー

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

はい

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

Condition 要素 (または Condition ブロック) を使用すると、ステートメントが有効な条件を指定できます。Condition 要素はオプションです。イコールや未満などの 条件演算子 を使用して条件式を作成することで、ポリシーの条件とリクエスト内の値を一致させることができます。

1 つのステートメントに複数の Condition要素を指定する場合、または 1 つの Condition要素に複数のキーを指定する場合、AWS では AND論理演算子を使用してそれらを評価します。単一の条件キーに複数の値を指定する場合、AWS では OR論理演算子を使用して条件を評価します。ステートメントの許可が付与される前にすべての条件が満たされる必要があります。

条件を指定する際にプレースホルダー変数も使用できます。例えば IAM ユーザーに、IAM ユーザー名がタグ付けされている場合のみリソースにアクセスできる許可を付与することができます。詳細については、IAM ユーザーガイドIAM ポリシーの要素: 変数およびタグを参照してください。

AWS はグローバル条件キーとサービス固有の条件キーをサポートしています。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドの「AWS グローバル条件コンテキストキー」を参照してください。

AWS Glue の条件キーのリストは、サービス認証リファレンスの「AWS の条件キー」でご確認いただけます。条件キーと一緒に使用できるアクションおよびリソースの詳細については、「AWS Glue で定義されるアクション」を参照してください。

ポリシーの例を表示するには、「条件キーまたはコンテキストキーを使用して設定を制御する」を参照してください。

AWS Glue のACL

ACL のサポート

なし

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

AWS Glue を使用した ABAC

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

部分的

属性ベースのアクセス制御 (ABAC) は、属性に基づいてアクセス許可を定義する認可戦略です。AWS では、属性は タグ と呼ばれます。タグは、IAM エンティティ (ユーザーまたはロール)、および多数の AWSリソースにアタッチできます。エンティティとリソースのタグ付けは、ABAC の最初のステップです。その後、プリンシパルのタグがアクセスしようとしているリソースのタグと一致した場合に操作を許可するように ABAC ポリシーをします。

ABAC は、急速に成長している環境でポリシー管理が面倒な状況に役立ちます。

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

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

ABAC の詳細については、IAM ユーザーガイドABAC とは?を参照してください。ABAC をセットアップするステップを説明するチュートリアルについては、IAM ユーザーガイド属性に基づくアクセスコントロール (ABAC) を使用するを参照してください。

重要

条件コンテキストキーは、クローラー、ジョブ、トリガー、開発エンドポイントに対する AWS Glue API アクションにのみ適用されます。影響を受ける API オペレーションの詳細については、「AWS Glue の条件キー」を参照してください。

AWS Glue データカタログ API オペレーションは、現在、aws:referer および aws:UserAgent のグローバルな条件コンテキストキーをサポートしていません。

リソースのタグに基づいてリソースへのアクセスを制限するためのアイデンティティベースのポリシーの例を表示するには、「タグを使用してアクセスを許可する」を参照してください。

AWS Glue で認証情報を一時的に使用する

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

あり

AWS のサービス には、一時的な認証情報を使用してサインインしても機能しないものがあります。一時的な認証情報を利用できる AWS のサービスを含めた詳細情報については、IAM ユーザーガイドの「IAM と連携する AWS のサービス」を参照してください。

ユーザー名とパスワード以外の方法で AWS Management Console にサインインする場合は、一時的な認証情報を使用していることになります。例えば、会社の Single Sign-On (SSO) リンクを使用して AWS にアクセスすると、そのプロセスは自動的に一時的な認証情報を作成します。また、ユーザーとしてコンソールにサインインしてからロールを切り替える場合も、一時的な認証情報が自動的に作成されます。ロールの切り替えに関する詳細については、IAM ユーザーガイドロールへの切り替え (コンソール)を参照してください。

一時的な認証情報は、AWS CLI または AWS API を使用して手動で作成できます。作成後、一時的な認証情報を使用して AWS にアクセスできるようになります。AWS は、長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成することをお勧めします。詳細については、IAM の一時的セキュリティ認証情報を参照してください。

サービス間での AWS Glue のプリンシパルのアクセス許可

フォワード・アクセス・セッション(FAS)をサポート

いいえ

IAM ユーザーまたはロールを使用して AWS でアクションを実行するユーザーは、プリンシパルと見なされます。一部のサービスを使用する際に、アクションを実行することで、別のサービスの別のアクションがトリガーされることがあります。FAS は、を呼び出すプリンシパルの権限を使用しAWS のサービス、リクエストを行い、AWS のサービスダウンストリームのサービスに対してリクエストを行います。FAS リクエストが行われるのは、他の AWS のサービスやリソースとのやり取りを完了する必要があるリクエストをサービスが受信した場合のみです。この場合、両方のアクションを実行するための許可が必要です。FASリクエストを行う際のポリシーの詳細については、「アクセスセッションの転送」を参照してください。

AWS Glue のサービスロール

サービスロールに対するサポート

あり

サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「IAM ユーザーガイド」の「AWS のサービス にアクセス許可を委任するロールの作成」を参照してください。

警告

サービスロールのアクセス許可を変更すると、AWS Glue の機能にエラーが生じる可能性があります。AWS Glue が指示したとき以外は、サービスロールを編集しないでください。

AWS Glue サービスロールの作成方法に関する詳細な手順は、「ステップ 1: AWS Glue サービスの IAM ポリシーを作成する 」および「ステップ 2: AWS Glue 用の IAM ロールを作成する 」を参照してください。

AWS Glue のサービスリンクロール

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

いいえ

サービスにリンクされたロールは、AWS のサービスにリンクされているサービスロールの一種です。サービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールは、AWS アカウント に表示され、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

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