AWS Glue とインターフェース VPC エンドポイント (AWS PrivateLink) - AWS Glue

AWS Glue とインターフェース VPC エンドポイント (AWS PrivateLink)

VPC と AWS Glue とのプライベート接続を確立するには、インターフェイス VPC エンドポイントを作成します。インターフェイスエンドポイントは、インターネットゲートウェイ、NAT デバイス、VPN 接続、AWS Direct Connect 接続のいずれも必要とせずに AWS Glue API にプライベートにアクセスできるテクノロジーである AWS PrivateLink を利用しています。VPC のインスタンスは、パブリック IP アドレスがなくても AWS Glue API と通信できます。VPC と AWS Glue 間のトラフィックは、Amazon ネットワークを離れません。

各インターフェースエンドポイントは、サブネット内の 1 つ以上の Elastic Network Interface によって表されます。

詳細については、「Amazon VPC ユーザーガイド」の「インターフェース VPC エンドポイント (AWS PrivateLink)」を参照してください。

AWS Glue VPC エンドポイントに関する考慮事項

AWS Glue のインターフェイスVPC エンドポイントを設定する前に、Amazon VPC ユーザーガイドインターフェイスエンドポイントのプロパティと制限を確認してください。

AWS Glue は、VPC からのすべての API アクションの呼び出しをサポートしています。

AWS Glue 用のインターフェイス VPC エンドポイントの作成

AWS Glue サービス用の VPC エンドポイントは、Amazon VPC コンソールまたは AWS Command Line Interface (AWS CLI) を使用して作成できます。詳細については、「Amazon VPC ユーザーガイド」の「インターフェイスエンドポイントの作成」を参照してください。

AWS Glue 用の VPC エンドポイントは、以下のサービス名を使用して作成します。

  • com.amazonaws.regionglue

エンドポイントのプライベート DNS を有効にすると、リージョンのデフォルト DNS 名 (AWS Glue など) を使用して、glue.us-east-1.amazonaws.com への API リクエストを実行できます。

詳細については、「Amazon VPC ユーザーガイド」の「インターフェイスエンドポイントを介したサービスへのアクセス」を参照してください。

AWS Glue 用の VPC エンドポイントポリシーの作成

VPC エンドポイントには、AWS Glue へのアクセスを制御するエンドポイントポリシーをアタッチできます。このポリシーでは、以下の情報を指定します。

  • アクションを実行できるプリンシパル。

  • 実行可能なアクション。

  • このアクションを実行できるリソース。

詳細については、「Amazon VPC ユーザーガイド」の「VPC エンドポイントでサービスへのアクセスを制御する」を参照してください。

例: AWS Glue の VPC エンドポイントポリシージョブの作成と更新を許可する

以下は、AWS Glue 用のエンドポイントポリシーの例です。エンドポイントにアタッチされると、このポリシーは、すべてのリソースですべてのプリンシパルに、リストされている AWS Glue アクションへのアクセス権を付与します。

{ "Statement":[ { "Principal":"*", "Effect":"Allow", "Action":[ "glue:CreateJob", "glue:UpdateJob", "iam:PassRole" ], "Resource":"*" } ] }
例: VPC エンドポイントポリシーでデータカタログアクセスを読み取り専用で許可する場合

以下は、AWS Glue 用のエンドポイントポリシーの例です。エンドポイントにアタッチされると、このポリシーは、すべてのリソースですべてのプリンシパルに、リストされている AWS Glue アクションへのアクセス権を付与します。

{ "Statement": [ { "Principal": "*", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases", "glue:GetTable", "glue:GetTables", "glue:GetTableVersion", "glue:GetTableVersions", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "glue:SearchTables" ], "Resource": "*" } ] }