View a markdown version of this page

AWS Glue Data Quality에 대한 IAM 권한 구성 - AWS Glue

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 요소에서 이러한 작업을 지정할 수 있습니다.

AWS Glue 데이터 품질 작업
작업 설명 조건 키
glue:CreateDataQualityRuleset 데이터 품질 규칙 세트를 생성할 수 있는 권한을 부여합니다. ::dataQualityRuleset/<name>
glue:DeleteDataQualityRuleset 데이터 품질 규칙 세트를 삭제할 수 있는 권한을 부여합니다. ::dataQualityRuleset/<name>
glue:GetDataQualityRuleset 데이터 품질 규칙 세트를 검색할 수 있는 권한을 부여합니다. ::dataQualityRuleset/<name>
glue:ListDataQualityRulesets 모든 데이터 품질 규칙 세트를 검색할 수 있는 권한을 부여합니다. ::dataQualityRuleset/*
glue:UpdateDataQualityRuleset 데이터 품질 규칙 세트를 업데이트할 수 있는 권한을 부여합니다. ::dataQualityRuleset/<name>
glue:GetDataQualityResult 데이터 품질 작업 실행 결과를 검색할 수 있는 권한을 부여합니다. 이 IAM 작업은 다음 API에 대한 권한도 제공합니다.
  • BatchGetDataQualityQualityResult

  • ListDataQualityStatistics

  • ListDataQualityStatisticAnnotations

::dataQualityRuleset/<name>
glue:ListDataQualityResults 모든 데이터 품질 작업 실행 결과를 검색할 수 있는 권한을 부여합니다. ::dataQualityRuleset/*
glue:CancelDataQualityRuleRecommendationRun 진행 중인 데이터 품질 권장 작업 실행을 중지할 수 있는 권한을 부여합니다. ::dataQualityRuleset/*
glue:GetDataQualityRuleRecommendationRun 데이터 품질 권장 작업 실행을 검색할 수 있는 권한을 부여합니다. ::dataQualityRuleset/*
glue:ListDataQualityRuleRecommendationRuns 모든 데이터 품질 권장 작업 실행을 검색할 수 있는 권한을 부여합니다. ::dataQualityRuleset/*
glue:StartDataQualityRuleRecommendationRun 데이터 품질 권장 작업 실행을 시작할 수 있는 권한을 부여합니다. ::dataQualityRuleset/*
glue:CancelDataQualityRulesetEvaluationRun 진행 중인 데이터 품질 작업 실행을 중지할 수 있는 권한을 부여합니다. ::dataQualityRuleset/*
glue:GetDataQualityRulesetEvaluationRun 데이터 품질 작업 실행을 검색할 수 있는 권한을 부여합니다. ::dataQualityRuleset/*
glue:ListDataQualityRulesetEvaluationRuns 모든 데이터 품질 작업 실행을 검색할 수 있는 권한을 부여합니다. ::dataQualityRuleset/*
glue:StartDataQualityRulesetEvaluationRun 데이터 품질 작업 실행을 시작할 수 있는 권한을 부여합니다. ::dataQualityRuleset/<name>
glue:PublishDataQuality 데이터 품질 결과를 게시할 수 있는 권한을 부여합니다. ::dataQualityRuleset/<name>
glue:GetDataQualityModel 데이터 품질 모델을 검색할 수 있는 권한을 부여합니다. ::dataQualityRuleset/<name>, ::job/<name>
glue:GetDataQualityModelResult 데이터 품질 모델 결과를 검색할 수 있는 권한을 부여합니다. ::dataQualityRuleset/<name>, ::job/<name>
glue:PutDataQualityStatisticAnnotation 통계에 주석을 추가할 수 있는 권한을 부여합니다. 이 IAM 작업은 다음 API에 대한 권한도 제공합니다.
  • BatchPutDataQualityStatisticAnnotation

::dataQualityRuleset/<name>, ::job/<name>
glue:PutDataQualityProfileAnnotation 프로필의 모든 통계에 주석을 달 수 있는 권한을 부여합니다. ::dataQualityRuleset/<name>, ::job/<name>

평가 실행을 예약하는 데 필요한 IAM 설정

IAM 권한

예약된 데이터 품질 평가를 실행하려면 권한 정책에 IAM:PassRole 작업을 추가해야 합니다.

AWS EventBridge 스케줄러 필수 권한
작업 설명 조건 키
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 스케줄러 서비스가 신뢰할 수 있는 엔티티에 나열되어야 합니다.

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

예제 IAM 정책

AWS Glue Data Quality를 대한 IAM 역할에는 다음과 같은 유형의 권한이 필요합니다.

  • AWS Glue Data Quality 작업에 대한 권한을 통해 권장 데이터 품질 규칙을 가져오고 AWS Glue 데이터 카탈로그의 테이블에 대해 데이터 품질 작업을 실행할 수 있습니다. 이 섹션의 예제 IAM 정책에는AWS Glue Data Quality 작업에 필요한 최소 권한이 포함되어 있습니다.

  • 데이터 카탈로그 테이블 및 기본 데이터에 대한 액세스 권한을 부여하는 권한입니다. 이러한 권한은 사용 사례에 따라 다릅니다. 예를 들어 Amazon S3에서 분류하는 데이터의 경우 권한에 Amazon S3에 대한 액세스가 포함되어야 합니다.

    참고

    이 섹션에 설명된 권한과 함께 Amazon S3 권한을 구성해야 합니다.

권장 데이터 품질 규칙에 필요한 최소 권한

이 예제 정책에는 권장 데이터 품질 규칙을 생성하는 데 필요한 권한이 포함되어 있습니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowGlueRuleRecommendationRunActions", "Effect": "Allow", "Action": [ "glue:GetDataQualityRuleRecommendationRun", "glue:PublishDataQuality", "glue:CreateDataQualityRuleset" ], "Resource": "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*" }, { "Sid": "AllowCatalogPermissions", "Effect": "Allow", "Action": [ "glue:GetPartitions", "glue:GetTable" ], "Resource": [ "*" ] }, { "Sid": "AllowS3GetObjectToRunRuleRecommendationTask", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::aws-glue-*" }, { "Sid": "AllowPublishingCloudwatchLogs", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": "*" } ] }

고급 데이터 품질 규칙 권장 사항을 얻기 위한 최소 권한

권장 사항 역할에 대한 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-sampling Athena 작업 그룹입니다.

  • 쿼리 결과를 저장할 aws-glue-dataquality-sampling-account-id-region Amazon S3 버킷.

후속 실행의 경우 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에 기록하려는 경우 필요합니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowGlueGetDataQualityRuleset", "Effect": "Allow", "Action": [ "glue:GetDataQualityRuleset" ], "Resource": "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/YOUR-RULESET-NAME" }, { "Sid": "AllowGlueRulesetEvaluationRunActions", "Effect": "Allow", "Action": [ "glue:GetDataQualityRulesetEvaluationRun", "glue:PublishDataQuality" ], "Resource": "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*" }, { "Sid": "AllowCatalogPermissions", "Effect": "Allow", "Action": [ "glue:GetPartitions", "glue:GetTable" ], "Resource": [ "*" ] }, { "Sid": "AllowS3GetObjectForRulesetEvaluationRun", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::aws-glue-*" }, { "Sid": "AllowCloudWatchPutMetricDataToPublishTaskMetrics", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": "Glue Data Quality" } } }, { "Sid": "AllowS3PutObjectToWriteTaskResults", "Effect": "Allow", "Action": [ "s3:PutObject*" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

데이터 품질 ETL 작업을 실행하기 위한 최소 권한

이 예제 정책에는 데이터 품질 ETL 작업을 실행하는 데 필요한 권한이 포함되어 있습니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowGluePublishDataQualityResult", "Effect": "Allow", "Action": [ "glue:PublishDataQuality" ], "Resource": "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*" }, { "Sid": "AllowGlueGetDataQualityResult", "Effect": "Allow", "Action": [ "glue:GetDataQualityResult" ], "Resource": "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*" }, { "Sid": "AllowGlueDataQualityStatisticAnnotation", "Effect": "Allow", "Action": [ "glue:PutDataQualityStatisticAnnotation" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*", "arn:aws:glue:us-east-1:111122223333::job/{JobName}" ] }, { "Sid": "AllowGlueDataQualityProfileAnnotation", "Effect": "Allow", "Action": [ "glue:PutDataQualityProfileAnnotation" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:dataQualityRuleset/*", "arn:aws:glue:us-east-1:111122223333::job/{JobName}" ] } ] }