列統計を生成するための前提条件 - AWS Glue

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

列統計を生成するための前提条件

列統計を生成または更新するために、統計生成タスクはユーザーに代わって AWS Identity and Access Management (IAM) ロールを引き受けます。ロールに付与された許可に基づいて、列統計生成タスクは Amazon S3 データストアからデータを読み取ることができます。

注記

Lake Formation によって管理されるテーブルの統計を生成するには、統計の生成に使用される IAM ロールに完全なテーブルアクセスが必要です。 

AWS Glue では、列統計生成タスクを設定するときに、AWSGlueServiceRole AWS 管理ポリシーと指定されたデータソースに必要なインラインポリシーを含むロールを作成できます。また、ロールを作成して、以下のポリシーにリストされているアクセス許可をアタッチし、そのロールを列統計生成タスクに追加することもできます。

列統計を生成するための IAM ロールを作成するには
  1. IAM ロールを作成するには、「AWS Glue の IAM ロールを作成する」を参照してください。

  2. 既存のロールを更新するには、IAM コンソールで、列統計の生成プロセスで使用されている IAM ロールにアクセスします。

  3. [許可を追加] セクションで、[ポリシーをアタッチ] を選択します。新しく開いたブラウザウィンドウで、AWSGlueServiceRole AWS マネージドポリシーを選択します。

  4. Amazon S3 のデータの場所からデータを読み取るための許可も含める必要があります。

    [Add permissions] (アクセス許可の追加) セクションで、[Create policy] (ポリシーの作成) を選択します。新しく開いたブラウザウィンドウで、ロールで使用する新しいポリシーを作成します。

  5. [ポリシーを作成] ページで、[JSON] タブを選択します。次の JSON コードをポリシーエディタフィールドにコピーします。

    注記

    次のポリシーでは、アカウント ID を有効な AWS アカウント に置き換え、region をテーブルのリージョンに置き換え、bucket-name を Amazon S3 バケット名に置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "S3BucketAccess", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::<bucket-name>/*", "arn:aws:s3:::<bucket-name>" ] } ] }
  6. (オプション) Lake Formation の許可を使用してデータに対するアクセスを提供している場合、IAM ロールには lakeformation:GetDataAccess 許可が必要です。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationDataAccess", "Effect": "Allow", "Action": "lakeformation:GetDataAccess", "Resource": [ "*" ] } ] }

    Amazon S3 のデータの場所が Lake Formation に登録されており、テーブルに対する IAM_ALLOWED_PRINCIPALS グループ許可が、列統計生成タスクによって引き受けられる IAM ロールに付与されていない場合、そのロールには、テーブルに対する Lake Formation ALTER および DESCRIBE 許可が必要です。Amazon S3 バケットの登録に使用されるロールには、テーブルに対する Lake Formation INSERT および DELETE 許可が必要です。

    Amazon S3 のデータの場所が Lake Formation に登録されておらず、テーブルに対する IAM_ALLOWED_PRINCIPALS グループ許可が IAM ロールに付与されていない場合、そのロールには、テーブルに対する Lake Formation ALTERDESCRIBEINSERT、および DELETE 許可が必要です。

  7. (オプション) 暗号化された Amazon CloudWatch Logs を書き込む列統計生成タスクには、キーポリシーで次の許可が必要です。

    { "Version": "2012-10-17", "Statement": [{ "Sid": "CWLogsKmsPermissions", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:AssociateKmsKey" ], "Resource": [ "arn:aws:logs:<region>:111122223333:log-group:/aws-glue:*" ] }, { "Sid": "KmsPermissions", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:Encrypt" ], "Resource": [ "arn:aws:kms:<region>:111122223333:key/"arn of key used for ETL cloudwatch encryption" ], "Condition": { "StringEquals": { "kms:ViaService": ["glue.<region>.amazonaws.com"] } } } ] }
  8. 列統計の実行に使用するロールには、そのロールに対する iam:PassRole のアクセス許可が必要です。

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::111122223333:role/<columnstats-role-name>" ] }] }
  9. 列統計を生成するための IAM ロールを作成する場合、そのロールには、サービスがそのロールを引き受けることを可能にする次の信頼ポリシーも必要です。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "TrustPolicy", "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole", } ] }