테이블 최적화 필수 조건 - AWS Glue

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

테이블 최적화 필수 조건

테이블 최적화 프로그램은 테이블에 대한 최적화 옵션을 활성화할 때 지정하는 AWS Identity and Access Management (IAM) 역할의 권한을 가정합니다. 모든 옵티마이저에 대해 단일 역할을 생성하거나 각 옵티마이저에 대해 별도의 역할을 생성할 수 있습니다. IAM역할에는 데이터 카탈로그의 데이터를 읽고 메타데이터를 업데이트할 수 있는 권한이 있어야 합니다. IAM역할을 만들고 다음 인라인 정책을 연결할 수 있습니다.

  • Lake Formation에 등록되지 않은 데이터에 대한 위치에 대한 Amazon S3 읽기/쓰기 권한을 부여하는 다음 인라인 정책을 추가하세요. 이 정책에는 데이터 카탈로그의 테이블을 업데이트하고 로그에 Amazon CloudWatch 로그를 추가하고 지표를 AWS Glue 게시할 수 있는 권한도 포함됩니다. Lake Formation에 등록되지 않은 Amazon S3의 소스 데이터에 대한 액세스는 Amazon S3의 IAM 권한 정책 및 AWS Glue 작업에 따라 결정됩니다.

    다음 인라인 정책에서는 Amazon S3 버킷 이름이 있는 bucket-name, aws-account-id, region을 데이터 카탈로그의 유효한 AWS 계정 번호, 리전, database_name을 데이터베이스 이름으로, table_name은 테이블 이름으로 대체하십시오.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::<bucket-name>/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<bucket-name>" ] }, { "Effect": "Allow", "Action": [ "glue:UpdateTable", "glue:GetTable" ], "Resource": [ "arn:aws:glue:<region>:<aws-account-id>:table/<database-name>/<table-name>", "arn:aws:glue:<region>:<aws-account-id>:database/<database-name>", "arn:aws:glue:<region>:<aws-account-id>:catalog" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>:<aws-account-id>:log-group:/aws-glue/iceberg-compaction/logs:*" } ] }
  • Lake Formation에 등록된 데이터에 대해 압축을 활성화하려면 다음 정책을 사용하십시오.

    최적화 역할에 테이블에 대한 IAM_ALLOWED_PRINCIPALS 그룹 권한이 부여되지 않은 경우, 해당 역할에는 테이블에 대한 Lake Formation ALTER, DESCRIBE, INSERTDELETE 권한이 필요합니다.

    Amazon S3 버킷의 Lake Formation 등록에 대한 자세한 내용은 데이터 레이크에 Amazon S3 위치 추가 섹션을 참조하세요.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "glue:UpdateTable", "glue:GetTable" ], "Resource": [ "arn:aws:glue:<region>:<aws-account-id>:table/<databaseName>/<tableName>", "arn:aws:glue:<region>:<aws-account-id>:database/<database-name>", "arn:aws:glue:<region>:<aws-account-id>:catalog" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>:<aws-account-id>:log-group:/aws-glue/iceberg-compaction/logs:*" } ] }
  • (선택 사항)서버 측 암호화를 사용하여 암호화된 Amazon S3 버킷의 데이터로 Iceberg 테이블을 최적화하려면 압축 역할에 Amazon S3 객체를 해독하고 암호화된 버킷에 객체를 쓰기 위한 새 데이터 키를 생성할 수 있는 권한이 필요합니다. 원하는 AWS KMS 키에 다음 정책을 추가합니다. 버킷 수준 암호화만 지원합니다.

    { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<aws-account-id>:role/<optimizer-role-name>" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }
  • (선택 사항) Lake Formation에 등록된 데이터 위치의 경우, 위치를 등록하는 데 사용되는 역할에는 Amazon S3 객체를 해독하고 암호화된 버킷에 객체를 쓰기 위한 새 데이터 키를 생성할 수 있는 권한이 필요합니다. 자세한 내용을 알아보려면 암호화된 Amazon S3 위치 등록을 참조하십시오.

  • (선택 사항) AWS KMS 키가 다른 AWS 계정에 저장되어 있는 경우 압축 역할에 다음 권한을 포함해야 합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": ["arn:aws:kms:<REGION>:<KEY_OWNER_ACCOUNT_ID>:key/<KEY_ID>" ] } ] }
  • 압축을 실행하는 데 사용하는 역할에는 해당 역할에 대한 iam:PassRole 권한이 있어야 합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<optimizer-role-name>" ] } ] }
  • AWS Glue 서비스가 압축 프로세스를 실행하는 역할을 맡도록 다음 신뢰 정책을 IAM 역할에 추가하십시오.

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