AWS Glue Data Quality の IAM アクセス許可の設定
このトピックでは、IAM 管理者が AWS Glue Data Quality 向けの AWS Identity and Access Management (IAM) ポリシーで使用できるアクションとリソースの理解に役立つ情報を説明します。また、AWS Glue データカタログで AWS Glue Data Quality を使用するために必要な最小限の権限を含むサンプル IAM ポリシーも含まれています。
AWS Glue のセキュリティに関する追加情報については、「「AWS Glue」 のセキュリティ」を参照してください。
AWS Glue Data Quality の IAM アクセス許可
次の表は、AWS Glue Data Quality で特定のオペレーションを実行する際にユーザーに必要になるアクセス許可を一覧化したものです。AWS Glue Data Quality の権限を詳細に設定するときは、IAM ポリシーステートメントの Action 要素でこれらのアクションを指定します。
| [アクション] | 説明 | リソースタイプ |
|---|---|---|
glue:CreateDataQualityRuleset |
品質評価のルールセットを、1 つ作成するためのアクセス許可を付与します。 | ::dataQualityRuleset/<name> |
glue:DeleteDataQualityRuleset |
品質評価のルールセットを、1 つ削除するためのアクセス許可を付与します。 | ::dataQualityRuleset/<name> |
glue:GetDataQualityRuleset |
品質評価のルールセットを、1 つ取得するためのアクセス許可を付与します。 | ::dataQualityRuleset/<name> |
glue:ListDataQualityRulesets |
品質評価のルールセットを、すべて削除するためのアクセス許可を付与します。 | ::dataQualityRuleset/* |
glue:UpdateDataQualityRuleset |
品質評価のルールセットを、1 つ更新するためのアクセス許可を付与します。 | ::dataQualityRuleset/<name> |
glue:GetDataQualityResult |
品質評価タスクの実行結果を、1 つ取得するためのアクセス許可を付与します。この IAM アクションは、次の APIS への許可も付与します。
|
::dataQualityRuleset/<name> |
glue:ListDataQualityResults |
品質評価タスクの実行結果を、すべて取得するためのアクセス許可を付与します。 | ::dataQualityRuleset/* |
glue:CancelDataQualityRuleRecommendationRun |
実行中の品質評価推奨タスクを、1 つ停止するためのアクセス許可を付与します。 | ::dataQualityRuleset/* |
glue:GetDataQualityRuleRecommendationRun |
実行済みの品質評価推奨タスクを、1 つ取得するためのアクセス許可を付与します。 | ::dataQualityRuleset/* |
glue:ListDataQualityRuleRecommendationRuns |
実行中の品質評価推奨タスクを、すべて取得するためのアクセス許可を付与します。 | ::dataQualityRuleset/* |
glue:StartDataQualityRuleRecommendationRun |
品質評価推奨タスクを、1 つ実行開始するためのアクセス許可を付与します。 | ::dataQualityRuleset/* |
glue:CancelDataQualityRulesetEvaluationRun |
実行中の品質評価タスクを、1 つ停止するためのアクセス許可を付与します。 | ::dataQualityRuleset/* |
glue:GetDataQualityRulesetEvaluationRun |
実行済みの品質評価タスクを、1 つ取得するためのアクセス許可を付与します。 | ::dataQualityRuleset/* |
glue:ListDataQualityRulesetEvaluationRuns |
実行済みの品質評価タスクを、すべて取得するためのアクセス許可を付与します。 | ::dataQualityRuleset/* |
glue:StartDataQualityRulesetEvaluationRun |
品質評価タスクを、1 つ実行開始するためのアクセス許可を付与します。 | ::dataQualityRuleset/<name> |
glue:PublishDataQuality |
データ品質の結果を公開する許可を付与します。 | ::dataQualityRuleset/<name> |
glue:GetDataQualityModel |
データ品質モデルを取得する許可を付与します。 | ::dataQualityRuleset/<name>,
::job/<name>
|
glue:GetDataQualityModelResult |
データ品質モデルの結果を取得する許可を付与します。 | ::dataQualityRuleset/<name>,
::job/<name>
|
glue:PutDataQualityStatisticAnnotation |
統計に注釈を追加する許可を付与します。この IAM アクションは、次の APIS への許可も付与します。
|
::dataQualityRuleset/<name>,
::job/<name>
|
glue:PutDataQualityProfileAnnotation |
プロファイルのすべての統計に注釈を付ける許可を付与します。 | ::dataQualityRuleset/<name>,
::job/<name>
|
評価実行のスケジューリングに必要な IAM の設定
IAM アクセス許可
スケジュール済みの Data Quality 評価実行を実行するには、権限ポリシーに IAM:PassRole アクションを追加します。
| [アクション] | 説明 | リソースタイプ |
|---|---|---|
iam:PassRole |
承認済みのロールをユーザーが渡すことを許可するアクセス許可を、IAM に付与します。 | StartDataQualityRulesetEvaluationRun の呼び出しに使用されたロールの ARN |
これらのアクセス許可がないと、次のエラーが発生します。
"errorCode": "AccessDenied" "errorMessage": "User: arn:aws:sts::account_id:assumed-role/AWSGlueServiceRole is not authorized to perform: iam:PassRole on resource: arn:aws:iam::account_id:role/service-role/AWSGlueServiceRole because no identity-based policy allows the iam:PassRole action"
IAM の信頼されたエンティティ
スケジュール済みの StartDataQualityEvaluationRun を作成して実行するには、AWS Glue と AWS EventBridge スケジューラサービスが、信頼されたエンティティに登録されている必要があります。
IAM ポリシーの例
AWS Glue Data Quality の IAM ロールには、次のタイプのアクセス許可が必要です。
-
AWS Glue Data Quality オペレーションのアクセス許可。これにより、推奨されるデータ品質ルールを取得したり、AWS Glue データカタログ内のテーブルに対してデータ品質タスクを実行したりできます。このセクションの IAM ポリシーの例には、AWS Glue Data Quality オペレーションに必要な最低限のアクセス許可が含まれています。
-
データカタログテーブルとその基盤となるデータへのアクセス許可。これらのアクセス許可は、ユースケースによって異なります。例えば、Amazon S3 でカタログ化するデータの場合、アクセス許可には Amazon S3 へのアクセスを含める必要があります。
注記
そのため、このセクションで説明するアクセス許可に加えて、Amazon S3 のアクセス許可を設定する必要があります。
推奨データ品質ルールの取得に最低限必要なアクセス許可
このサンプルポリシーには、推奨データ品質ルールを生成するために必要なアクセス許可が含まれています。
高度なデータ品質ルールの推奨事項を取得するための最小限のアクセス許可
推奨事項ロールの iam:PassRole アクセス許可がある必要があります。ロールには Amazon Bedrock アクセス許可は必要ありません。
信頼ポリシー
この信頼ポリシーを使用して、AWS Glue がソーステーブルの推奨事項ロールを引き受けることを許可します。
aws:SourceArn を完全なソーステーブル ARN に設定します。aws:SourceAccount には、その ARN のアカウント ID を使用します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnEquals": { "aws:SourceArn": "arn:aws:glue:us-east-1:111122223333:table/database-name/table-name" } } } ] }
アクセス許可ポリシー
最初の ADVANCED 実行時に、AWS Glue はアカウントに次のリソースを作成します:
-
ルールの推奨事項のクエリを実行する
glue-dataquality-samplingAthena ワークグループ。 -
クエリ結果を保存する
aws-glue-dataquality-sampling-Amazon S3 バケット。account-id-region
後続の実行では、AWS Glue は既存のワークグループとバケットを再利用します。詳細については、「高度なデータ品質ルールの推奨事項に関するデータ保護」を参照してください。
次のアクセス許可ポリシーを推奨事項ロールにアタッチします。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCatalogRead", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetPartitions", "glue:GetTable" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:catalog", "arn:aws:glue:us-east-1:111122223333:database/database-name", "arn:aws:glue:us-east-1:111122223333:table/database-name/table-name" ] }, { "Sid": "AllowDataQualityRecommendationResults", "Effect": "Allow", "Action": "glue:PublishDataQuality", "Resource": "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*" }, { "Sid": "AllowDataAccess", "Effect": "Allow", "Action": [ "athena:CreateWorkGroup", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution" ], "Resource": "arn:aws:athena:us-east-1:111122223333:workgroup/glue-dataquality-sampling" }, { "Sid": "AllowSourceRead", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::source-bucket", "arn:aws:s3:::source-bucket/*" ] }, { "Sid": "AllowSamplingBucket", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:PutLifecycleConfiguration", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::aws-glue-dataquality-sampling-111122223333-us-east-1", "arn:aws:s3:::aws-glue-dataquality-sampling-111122223333-us-east-1/athena-results/*" ] } ] }
注記
バケットが存在する場合は、このポリシーから s3:CreateBucket を削除できます。バケットを削除すると、AWS Glue にはこのアクセス許可が再度必要になります。このポリシーの他のすべてのアクセス許可は、後続の実行にも引き続き必要です。
追加のアクセス許可
このリストの条件が適用される場合は、関連するアクセス許可を推奨事項ロールに追加します。
-
Lake Formation がテーブルアクセスを制御する場合は、
lakeformation:GetDataAccessを追加します。データベースではDESCRIBEを、テーブルではDESCRIBEおよびSELECTをロールに付与します。 -
データ品質セキュリティ設定を指定する場合は、
glue:GetSecurityConfigurationアクセス許可を追加します。 -
CreatedRulesetNameを指定する場合は、glue:CreateDataQualityRulesetアクセス許可を追加します。 -
カスタマーマネージドキーでデータ品質セキュリティ設定を指定する場合は、そのキーに次のステートメントを追加します。
{ "Sid": "AllowDataQualityEncryption", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncrypt*" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id" }推奨事項ロールには、クエリ結果の暗号化と AWS Glue Data Quality アセットの暗号化にこれらのアクションが必要です。キーポリシーでは、ロールに対してこれらのアクションも許可する必要があります。詳細については、「キーポリシー」を参照してください。
-
ソースオブジェクトが SSE-KMS を使用している場合は、次のステートメントを追加します。
{ "Sid": "AllowSourceDataDecryption", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-east-1:111122223333:key/source-key-id" }ソースキーポリシーでは、推奨事項ロールにソースオブジェクトの復号も許可する必要があります。
品質評価タスクを実行するために最低限必要なアクセス許可
このサンプルポリシーには、データ品質評価タスクを実行するために必要なアクセス許可が含まれています。
以下のポリシーステートメントはオプションで、ユースケースに応じて設定します。
-
AllowCloudWatchPutMetricDataToPublishTaskMetrics- にデータ品質の実行メトリクスを発行する場合は必須です。Amazon CloudWatch -
AllowS3PutObjectToWriteTaskResults- Amazon S3 にデータ品質の実行結果を書き込む場合は必須です。
データ品質 ETL ジョブを実行するために最低限必要なアクセス許可
このサンプルポリシーには、データ品質 ETL ジョブを実行するために必要なアクセス許可が含まれています。