AWS Glue
開発者ガイド

ステップ 1: AWS Glue サービスの IAM ポリシーを作成します。

Amazon S3 のオブジェクトにアクセスするなど、別の AWS リソース上のデータにアクセスするオペレーションの場合、AWS Glue には、ユーザーの代わりにリソースにアクセスするためのアクセス許可が必要です。AWS Identity and Access Management (IAM) を使用してアクセス権限を提供できます。

注記

AWS 管理ポリシー AWSGlueServiceRole を使用する場合は、このステップをスキップできます。

このステップでは、AWSGlueServiceRole に似たポリシーを作成します。AWSGlueServiceRole の最新バージョンは IAM コンソールにあります。

AWS Glue の IAM ポリシーを作成するには

このポリシーは、AWS Glue がこのポリシーを使用してロールを引き受ける際に必要となるアカウント内のリソースを管理する Amazon S3 アクションの一部を許可します。このポリシーで指定されているリソースの中には、Amazon S3 バケット、Amazon S3 ETL スクリプト、CloudWatch Logs、および Amazon EC2 リソース用の AWS Glue で使用されるデフォルトの名前があります。分かりやすいように、AWS Glue はデフォルトで aws-glue-* のプレフィックスが付いた Amazon S3 オブジェクトをアカウント内のバケットに書き込みます。

  1. AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/iam/)を開きます。

  2. 左のナビゲーションペインの [Policies (ポリシー)] を選択します。

  3. [Create Policy (ポリシーの作成)] を選択します。

  4. [ポリシーの作成] 画面で、JSON 編集のためのタブに移動します。次の JSON ステートメントを使用してポリシードキュメントを作成して、[ポリシーの確認] を選択します。

    注記

    Amazon S3 リソースに必要なアクセス権限を追加します。アクセスポリシーのリソースセクションを必要なリソースだけに絞り込みたい場合があるかもしれません。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:*", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketAcl", "ec2:DescribeVpcEndpoints", "ec2:DescribeRouteTables", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "iam:ListRolePolicies", "iam:GetRole", "iam:GetRolePolicy", "cloudwatch:PutMetricData" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket" ], "Resource": [ "arn:aws:s3:::aws-glue-*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::aws-glue-*/*", "arn:aws:s3:::*/*aws-glue-*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::crawler-public*", "arn:aws:s3:::aws-glue-*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:AssociateKmsKey" ], "Resource": [ "arn:aws:logs:*:*:/aws-glue/*" ] }, { "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "aws-glue-service-resource" ] } }, "Resource": [ "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:instance/*" ] } ] }

    次の表は、このポリシーによって付与されたアクセス権限を示しています。

    アクション リソース 説明

    "glue:*"

    "*"

    すべての AWS Glue API オペレーションを実行する権限を許可します。

    "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketAcl",

    "*"

    クローラ、ジョブ、開発エンドポイント、ノートブックサーバーからの Amazon S3 バケットの一覧表示を許可します。

    "ec2:DescribeVpcEndpoints", "ec2:DescribeRouteTables", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute",

    "*"

    ジョブ、クローラ、開発エンドポイントの実行時に、VPC などの Amazon EC2 ネットワーク項目の設定を許可します。

    "iam:ListRolePolicies", "iam:GetRole", "iam:GetRolePolicy"

    "*"

    クローラ、ジョブ、開発エンドポイント、ノートブックサーバーからの IAM ロールの一覧表示を許可します。

    "cloudwatch:PutMetricData"

    "*"

    ジョブの CloudWatch メトリクスを書き込むことができます。

    "s3:CreateBucket"

    "arn:aws:s3:::aws-glue-*"

    ジョブおよびノートブックサーバーからアカウントに Amazon S3 バケットを作成できます。

    命名規則: [aws-glue-] という Amazon S3 フォルダを使用します。

    "s3:GetObject", "s3:PutObject", "s3:DeleteObject"

    "arn:aws:s3:::aws-glue-*/*", "arn:aws:s3:::*/*aws-glue-*/*"

    ETL スクリプトやノートブックサーバーのロケーションなどのオブジェクトを格納する際に、Amazon S3 オブジェクトの取得、配置、および削除をアカウントに許可します。

    命名規則: 名前に aws-glue- のプレフィックスが付いている Amazon S3 バケットまたはフォルダにアクセス権限を与えます。

    "s3:GetObject"

    "arn:aws:s3:::crawler-public*", "arn:aws:s3:::aws-glue-*"

    クローラやジョブのサンプルやチュートリアルで使用されている Amazon S3 オブジェクトを取得できます。

    命名規則: Amazon S3 バケット名は [crawler-public] および [aws-glue-] で始まります。

    "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents"

    "arn:aws:logs:*:*:/aws-glue/*"

    ログを CloudWatch Logs に書き込むことができます。

    命名規則: AWS Glue は名前が [aws-glue] で始まるロググループにログを書き込みます。

    "ec2:CreateTags", "ec2:DeleteTags"

    "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:instance/*"

    開発エンドポイント用に作成された Amazon EC2 リソースのタグ付けを許可します。

    命名規則: AWS Glue は、[aws-glue-service-resource] を使用して Amazon EC2 ネットワークインターフェイス、セキュリティグループ、およびインスタンスをタグ付けします。

  5. [Review Policy (ポリシーの確認)] 画面で、[Policy Name (ポリシー名)] ([GlueServiceRolePolicy] など) を入力します。オプションの説明を入力し、ポリシーが適切であることを確認したら、[ポリシーの作成] を選択します。