ステップ 1: AWS Glue サービスの IAM ポリシーを作成する - 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 Management Console にサインインして、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", "s3:PutBucketPublicAccessBlock" ], "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:*:*:log-group:/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/*" ] } ] }

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

    [Action] (アクション) [Resource] (リソース) 説明

    "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",

    "*"

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

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

    "*"

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

    "cloudwatch:PutMetricData"

    "*"

    ジョブの CloudWatch メトリクスの書き込みを許可します。

    "s3:CreateBucket", "s3:PutBucketPublicAccessBlock"

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

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

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

    AWS Glue による、パブリックアクセスをブロックするバケットの作成を有効化します。

    "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:*:*:log-group:/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] など)を入力します。オプションの説明を入力し、ポリシーが適切であることを確認したら、[Create policy] を選択します。