

# AWS Glue と IAM の連携方法
<a name="security_iam_service-with-iam"></a>

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






**AWS Glue で使用できる IAM の機能**  

| IAM 機能 | AWS Glue のサポート | 
| --- | --- | 
| [アイデンティティベースのポリシー](#security_iam_service-with-iam-id-based-policies) |  あり | 
| [リソースベースのポリシー](#security_iam_service-with-iam-resource-based-policies) |  部分的 | 
| [ポリシーアクション](#security_iam_service-with-iam-id-based-policies-actions) |  あり | 
| [ポリシーリソース](#security_iam_service-with-iam-id-based-policies-resources) |  はい | 
| [ポリシー条件キー (サービス固有)](#security_iam_service-with-iam-id-based-policies-conditionkeys) |  はい | 
| [ACL](#security_iam_service-with-iam-acls) |  なし  | 
| [ABAC (ポリシー内のタグ)](#security_iam_service-with-iam-tags) |  部分的 | 
| [一時認証情報](#security_iam_service-with-iam-roles-tempcreds) |  あり | 
| [プリンシパル権限](#security_iam_service-with-iam-principal-permissions) |  いいえ  | 
| [サービスロール](#security_iam_service-with-iam-roles-service) |  あり | 
| [サービスリンクロール](#security_iam_service-with-iam-roles-service-linked) |  いいえ  | 

AWS Glue とその他 AWS サービスが IAM 機能と連携する方法について大まかに理解するには、*IAM ユーザーガイド*の「[IAM と連携する AWS のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

## AWS Glue のアイデンティティベースのポリシー
<a name="security_iam_service-with-iam-id-based-policies"></a>

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

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

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。JSON ポリシーで使用できるすべての要素について学ぶには、「*IAM ユーザーガイド*」の「[IAM JSON ポリシーの要素のリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)」を参照してください。

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

### AWS Glue のアイデンティティベースポリシーの例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



AWS Glue のアイデンティティベースのポリシーの例を見るには、「[AWS Glue のアイデンティティベースポリシーの例](security_iam_id-based-policy-examples.md)」を参照してください。

## AWS Glue 内のリソースベースのポリシー
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**リソースベースのポリシーのサポート:** 一部

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

クロスアカウントアクセスを有効にするには、全体のアカウント、または別のアカウントの IAM エンティティを、リソースベースのポリシーのプリンシパルとして指定します。詳細については、IAM ユーザーガイド**の[IAM でのクロスアカウントリソースアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)を参照してください。

**注記**  
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 のリソースベースのポリシーの例](security_iam_resource-based-policy-examples.md)」を参照してください。

## AWS Glue のポリシーアクション
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

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

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

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



AWS Glue アクションのリストを確認するには、「*サービス認可リファレンス*」の「[AWS Glue で定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html#awsglue-actions-as-permissions)」を参照してください。

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

```
glue
```

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

```
"Action": [
      "glue:{{action1}}",
      "glue:{{action2}}"
         ]
```





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

```
"Action": "glue:Get*"
```

ポリシーの例を表示するには、「[AWS Glue のアクセスコントロールポリシーの例](glue-policy-examples.md)」を参照してください。

## AWS Glue のポリシーリソース
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

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

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

`Resource` JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、[Amazon リソースネーム (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) を使用してリソースを指定します。リソースレベルのアクセス許可をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (\*) を使用します。

```
"Resource": "*"
```

ARN を使用して AWS Glue リソースへのアクセスをコントロールする方法の詳細については、[AWS Glue リソース ARN の指定](glue-specifying-resource-arns.md) を参照してください。

AWS Glue リソースのタイプとその ARN のリストを確認するには、「*サービス認可リファレンス*」の「[AWS Glue で定義されるリソース](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html#awsglue-resources-for-iam-policies)」を参照してください。各リソースの ARN を指定するときにどのアクションを使用できるのかについての詳細は、「[AWS Glue で定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html#awsglue-actions-as-permissions)」を参照してください。



## AWS Glue のポリシー条件キー
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

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

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

`Condition` 要素は、定義された基準に基づいてステートメントが実行される時期を指定します。イコールや未満などの[条件演算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、*IAM ユーザーガイド*の[AWS グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)を参照してください。

AWS Glue の条件キーのリストを確認するには、「*サービス認可リファレンス*」の「[AWS Glue の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html#awsglue-policy-keys)」を参照してください。条件キーと一緒に使用できるアクションおよびリソースの詳細については、「[AWS Glue で定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html#awsglue-actions-as-permissions)」を参照してください。

ポリシーの例を表示するには、「[条件キーまたはコンテキストキーを使用して設定を制御する](security_iam_id-based-policy-examples.md#glue-identity-based-policy-condition-keys)」を参照してください。

## AWS Glue のACL
<a name="security_iam_service-with-iam-acls"></a>

**ACL のサポート:** なし 

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

## AWS Glue を使用した ABAC
<a name="security_iam_service-with-iam-tags"></a>

**ABAC (ポリシー内のタグ) のサポート:** 一部

属性ベースのアクセスコントロール (ABAC) は、タグと呼ばれる属性に基づいてアクセス許可を定義する認可戦略です。IAM エンティティと AWS リソースにタグを付けることで、プリンシパルのタグがリソースタグと一致するときに操作を許可する ABAC ポリシーを設計できます。

タグに基づいてアクセスを管理するには、`aws:ResourceTag/{{key-name}}`、`aws:RequestTag/{{key-name}}`、または `aws:TagKeys` の条件キーを使用して、ポリシーの[条件要素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)でタグ情報を提供します。

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

ABAC の詳細については、「*IAM ユーザーガイド*」の「[ABAC 認可でアクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)」を参照してください。ABAC をセットアップする手順を説明するチュートリアルについては、「*IAM ユーザーガイド*」の「[属性ベースのアクセスコントロール (ABAC) を使用する](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)」を参照してください。

**重要**  
条件コンテキストキーは、クローラー、ジョブ、トリガー、開発エンドポイントに対する AWS Glue API アクションにのみ適用されます。影響を受ける API オペレーションの詳細については、「[AWS Glue の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html#awsglue-policy-keys)」を参照してください。  
AWS Glue データカタログ API オペレーションは、現在、`aws:referer` および `aws:UserAgent` のグローバルな条件コンテキストキーをサポートしていません。

リソースのタグに基づいてリソースへのアクセスを制限するためのアイデンティティベースポリシーの例を表示するには、「[タグを使用してアクセスを許可する](security_iam_id-based-policy-examples.md#tags-control-access-example-triggers-allow)」を参照してください。

## AWS Glue で認証情報を一時的に使用する
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

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

一時的な認証情報は、AWSリソースへの短期的なアクセスを提供し、フェデレーションの使用時またはロールの切り替え時に自動的に作成されます。AWS では、長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成することをお勧めします。詳細については、「*IAM ユーザーガイド*」の「[IAM の一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)」および「[AWS のサービス と IAM との連携](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

## サービス間での AWS Glue のプリンシパルのアクセス許可
<a name="security_iam_service-with-iam-principal-permissions"></a>

**転送アクセスセッション (FAS) のサポート:** なし 

 転送アクセスセッション (FAS) は、AWS のサービスを呼び出すプリンシパルの権限と、リクエスト元の AWS のサービスを合わせて使用し、ダウンストリームのサービスに対してリクエストを行います。FAS リクエストを行う際のポリシーの詳細については、「[転送アクセスセッション](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)」を参照してください。

## AWS Glue のサービスロール
<a name="security_iam_service-with-iam-roles-service"></a>

**サービスロールのサポート:** あり

 サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)です。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、IAM ユーザーガイド**の [AWS のサービス に許可を委任するロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)を参照してください。

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

AWS Glue サービスロールの作成方法に関する詳細な手順は、「[ステップ 1: AWS Glue サービスの IAM ポリシーを作成する](create-service-policy.md) 」および「[ステップ 2: AWS Glue 用の IAM ロールを作成する](create-an-iam-role.md) 」を参照してください。

## AWS Glue のサービスリンクロール
<a name="security_iam_service-with-iam-roles-service-linked"></a>

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

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

サービスにリンクされたロールの作成または管理の詳細については、「[IAM と提携する AWS のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。表の「**サービスリンクロール**」列に `Yes` と記載されたサービスを見つけます。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、**[はい]** リンクを選択します。