

# AWS Glue Data Quality에 대한 IAM 권한 구성
<a name="data-quality-authorization"></a>

이 주제에서는 IAM 관리자가 AWS Glue Data Quality에 대한 AWS Identity and Access Management(IAM) 정책에서 사용할 수 있는 작업과 리소스를 이해하는 데 도움이 되는 정보를 제공합니다. 또한 AWS Glue 데이터 카탈로그와 함께 AWS Glue Data Quality를 사용하는 데 필요한 최소 권한이 포함된 샘플 IAM 정책도 포함되어 있습니다.

AWS Glue의 보안에 대한 자세한 내용은 [AWS Glue의 보안](security.md)을(를) 참조하세요.

## AWS Glue Data Quality에 대한 IAM 권한
<a name="data-quality-authorization-permissions"></a>

다음 테이블에는 특정 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/\$1 | 
| glue:UpdateDataQualityRuleset | 데이터 품질 규칙 세트를 업데이트할 수 있는 권한을 부여합니다. | ::dataQualityRuleset/<name> | 
| glue:GetDataQualityResult |  데이터 품질 작업 실행 결과를 검색할 수 있는 권한을 부여합니다. 이 IAM 작업은 다음 API에 대한 권한도 제공합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/data-quality-authorization.html)  | ::dataQualityRuleset/<name> | 
| glue:ListDataQualityResults | 모든 데이터 품질 작업 실행 결과를 검색할 수 있는 권한을 부여합니다. | ::dataQualityRuleset/\$1 | 
| glue:CancelDataQualityRuleRecommendationRun | 진행 중인 데이터 품질 권장 작업 실행을 중지할 수 있는 권한을 부여합니다. | ::dataQualityRuleset/\$1 | 
| glue:GetDataQualityRuleRecommendationRun | 데이터 품질 권장 작업 실행을 검색할 수 있는 권한을 부여합니다. | ::dataQualityRuleset/\$1 | 
| glue:ListDataQualityRuleRecommendationRuns | 모든 데이터 품질 권장 작업 실행을 검색할 수 있는 권한을 부여합니다. | ::dataQualityRuleset/\$1 | 
| glue:StartDataQualityRuleRecommendationRun | 데이터 품질 권장 작업 실행을 시작할 수 있는 권한을 부여합니다. | ::dataQualityRuleset/\$1 | 
| glue:CancelDataQualityRulesetEvaluationRun | 진행 중인 데이터 품질 작업 실행을 중지할 수 있는 권한을 부여합니다. | ::dataQualityRuleset/\$1 | 
| glue:GetDataQualityRulesetEvaluationRun | 데이터 품질 작업 실행을 검색할 수 있는 권한을 부여합니다. | ::dataQualityRuleset/\$1 | 
| glue:ListDataQualityRulesetEvaluationRuns | 모든 데이터 품질 작업 실행을 검색할 수 있는 권한을 부여합니다. | ::dataQualityRuleset/\$1 | 
| glue:StartDataQualityRulesetEvaluationRun | 데이터 품질 작업 실행을 시작할 수 있는 권한을 부여합니다. | ::dataQualityRuleset/<name> | 
| glue:PublishDataQuality | 데이터 품질 결과를 게시할 수 있는 권한을 부여합니다. | ::dataQualityRuleset/<name> | 
| glue:GetDataQualityModel | 데이터 품질 모델을 검색할 수 있는 권한을 부여합니다. | ::dataQualityRuleset/<name>, ::job/<name>  | 
| glue:GetDataQualityModelResult | 데이터 품질 모델 결과를 검색할 수 있는 권한을 부여합니다. | ::dataQualityRuleset/<name>, ::job/<name>  | 
| glue:PutDataQualityStatisticAnnotation |  통계에 주석을 추가할 수 있는 권한을 부여합니다. 이 IAM 작업은 다음 API에 대한 권한도 제공합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/data-quality-authorization.html)  | ::dataQualityRuleset/<name>, ::job/<name>  | 
| glue:PutDataQualityProfileAnnotation | 프로필의 모든 통계에 주석을 달 수 있는 권한을 부여합니다. | ::dataQualityRuleset/<name>, ::job/<name>  | 

## 평가 실행을 예약하는 데 필요한 IAM 설정
<a name="data-quality-iam-setup-evaluation-runs"></a>

### IAM 권한
<a name="data-quality-iam-setup-evaluation-runs-permissions"></a>

예약된 데이터 품질 평가를 실행하려면 권한 정책에 `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 신뢰할 수 있는 엔터티
<a name="data-quality-iam-setup-evaluation-runs-trusted-entities"></a>

예약된 `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 정책
<a name="data-quality-authorization-example-policy"></a>

AWS Glue Data Quality를 대한 IAM 역할에는 다음과 같은 유형의 권한이 필요합니다.
+ AWS Glue Data Quality 작업에 대한 권한을 통해 권장 데이터 품질 규칙을 가져오고 AWS Glue 데이터 카탈로그의 테이블에 대해 데이터 품질 작업을 실행할 수 있습니다. 이 섹션의 예제 IAM 정책에는AWS Glue Data Quality 작업에 필요한 최소 권한이 포함되어 있습니다.
+ 데이터 카탈로그 테이블 및 기본 데이터에 대한 액세스 권한을 부여하는 권한입니다. 이러한 권한은 사용 사례에 따라 다릅니다. 예를 들어 Amazon S3에서 분류하는 데이터의 경우 권한에 Amazon S3에 대한 액세스가 포함되어야 합니다.
**참고**  
이 섹션에 설명된 권한과 함께 Amazon S3 권한을 구성해야 합니다.

### 권장 데이터 품질 규칙에 필요한 최소 권한
<a name="example-policy-get-dq-rule-recommendations"></a>

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

------
#### [ 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": "*"
    }
  ]
}
```

------

### 데이터 품질 작업을 실행하기 위한 최소한의 권한
<a name="example-policy-run-dq-task"></a>

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

다음 정책 설명은 사용 사례에 따라 선택 사항입니다.
+ `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 작업을 실행하기 위한 최소 권한
<a name="example-policy-run-dq-etl-job"></a>

 이 예제 정책에는 데이터 품질 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}"
      ]
    }
	]
}
```

------