View a markdown version of this page

S3 Tables SSE-KMS 암호화에 대한 권한 요구 사항 - Amazon Simple Storage Service

S3 Tables SSE-KMS 암호화에 대한 권한 요구 사항

S3 테이블 버킷의 테이블에 대해 AWS Key Management Service(AWS KMS) 키(SSE-KMS)를 통한 서버 측 암호화를 사용하는 경우 계정의 다양한 ID에 권한을 부여해야 합니다. 최소한 액세스 ID와 S3 Tables 유지 관리 위탁자가 키에 대한 액세스 권한을 가져야 하며 사용 사례에 따라 다른 권한도 필요합니다.

필수 권한

KMS 키로 암호화된 테이블에 액세스하려면 해당 키에 대한 다음 권한이 필요합니다.

  • kms:GenerateDataKey

  • kms:Decrypt

중요

테이블에서 SSE-KMS를 사용하려면 Amazon S3 Tables 유지 관리 서비스 위탁자(maintenance.s3tables.amazonaws.com)에게 키에 대한 kms:GenerateDataKeykms:Decrypt 권한이 필요합니다.

추가 권한

사용 사례에 따라 다음과 같은 추가 권한이 필요합니다.

  • AWS 분석 서비스 및 직접 액세스 권한 - AWS 분석 서비스 또는 S3 테이블에 직접 액세스하는 타사 엔진을 통해 SSE-KMS 암호화된 테이블로 작업하는 경우 사용하는 IAM 역할에 KMS 키를 사용할 수 있는 권한이 필요합니다.

  • Lake Formation이 활성화된 권한 - 액세스 제어를 위해 AWS Lake Formation에 옵트인한 경우 Lake Formation 서비스 역할에 KMS 키를 사용할 수 있는 권한이 필요합니다.

  • S3 Metadata 테이블에 대한 권한 - S3 Metadata 테이블에 SSE-KMS 암호화를 사용하는 경우 S3 Metadata 서비스 위탁자(metadata.s3.amazonaws.com)에게 KMS 키에 대한 액세스 권한을 제공해야 합니다. 이렇게 하면 S3 Metadata가 암호화된 테이블을 업데이트하여 최신 데이터 변경 사항을 반영할 수 있습니다.

참고

교차 계정 KMS 키의 경우 IAM 역할에 키 액세스 권한과 키 정책 내 명시적 권한 부여가 모두 필요합니다. KMS 키의 교차 계정 권한에 대한 자세한 내용은 AWS Key Management Service 서비스 개발자 안내서외부 AWS 계정에서 KMS 키를 사용하도록 허용을 참조하세요.

S3 Tables 유지 관리 서비스 위탁자에게 KMS 키 권한 부여

이 권한은 SSE-KMS로 암호화된 테이블을 생성하고 암호화된 테이블에서 압축, 스냅샷 관리 및 참조되지 않은 파일 제거와 같은 자동 테이블 유지 관리를 수행할 수 있도록 하는 데 필요합니다.

참고

SSE-KMS로 암호화된 테이블을 생성하도록 요청할 때마다 S3 Tables는 maintenance.s3tables.amazonaws.com 위탁자에게 KMS 키에 대한 액세스 권한이 있는지 확인합니다. 이 확인을 수행하기 위해 테이블 버킷에 0바이트 객체가 일시적으로 생성되며, 이 객체는 참조되지 않은 파일 제거 유지 관리 작업에 의해 자동으로 제거됩니다. 암호화를 위해 지정한 KMS 키에 유지 관리 액세스 권한이 없는 경우 createTable 작업이 실패합니다.

SSE-KMS로 암호화된 테이블에 대한 유지 관리 액세스 권한을 부여하려면 다음 예제 키 정책을 사용할 수 있습니다. 이 정책에서는 maintenance.s3tables.amazonaws.com 서비스 위탁자에게 특정 테이블 버킷의 테이블 암호화 및 복호화에 특정 KMS 키를 사용할 수 있는 권한이 부여되어 있습니다. 이 정책을 사용하려면 사용자 입력 자리 표시자를 실제 정보로 바꿉니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnableKeyUsage", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn":"<table-or-table-bucket-arn>/*" } } } ] }

IAM 위탁자에게 통합 AWS 분석 서비스에서 암호화된 테이블에 대한 작업을 수행할 수 있는 권한 부여

AWS 분석 서비스에서 S3 테이블을 사용하려면 테이블 버킷을 통합해야 합니다. 이 통합을 통해 AWS 분석 서비스가 테이블 데이터를 자동으로 검색하고 액세스할 수 있습니다. 통합에 대한 자세한 내용은 AWS 분석 서비스와 Amazon S3 Tables 통합 섹션을 참조하세요.

AWS 분석 서비스 또는 S3 테이블에 직접 액세스하는 타사 및 오픈 소스 엔진을 통해 SSE-KMS 암호화된 테이블로 작업하는 경우 사용하는 IAM 역할에는 암호화 작업에 AWS KMS 키를 사용할 수 있는 권한이 필요합니다.

역할에 연결된 IAM 정책 또는 KMS 키 정책을 통해 KMS 키 액세스 권한을 부여할 수 있습니다.

IAM policy

KMS 키 액세스를 허용하려면 쿼리에 사용하는 IAM 역할에 이 인라인 정책을 연결합니다. KMS 키 ARN을 본인의 ARN으로 바꿉니다.

{ "Version":"2012-10-17",, "Statement": [ { "Sid": "AllowKMSKeyUsage", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }
KMS key policy

또는 지정된 IAM 역할이 키를 사용할 수 있도록 이 명령을 KMS 키 정책에 추가하세요. 역할 ARN을 쿼리에 사용하는 IAM 역할로 바꿉니다.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<catalog-account-id>:role/<role-name>" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", ], "Resource": "*" }

Lake Formation이 활성화된 경우 암호화된 테이블을 사용할 수 있도록 IAM 위탁자에게 권한을 부여합니다.

S3 Tables 통합에 대한 액세스 제어를 위해 AWS Lake Formation에 옵트인한 경우 Lake Formation 서비스 역할에는 암호화 작업에 AWS KMS 키를 사용할 수 있는 권한이 필요합니다. Lake Formation은 이 역할을 사용하여 테이블에 액세스하는 위탁자를 대신하여 자격 증명을 제공합니다.

다음 KMS 키 정책 예시는 Lake Formation 서비스 역할에 사용자 계정의 특정 KMS 키를 암호화 작업에 사용할 수 있는 권한을 부여합니다. 자리 표시자 값을 해당 값으로 바꿉니다.

{ "Sid": "AllowTableRoleAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/service-role/S3TablesRoleForLakeFormation" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "<kms-key-arn>" }

S3 Metadata 서비스 위탁자에게 KMS 키를 사용할 수 있는 권한 부여

Amazon S3가 SSE-KMS로 암호화된 메타데이터 테이블을 업데이트하고 해당 메타데이터 테이블에 대한 유지 관리를 수행하도록 허용하려면 다음 예제 키 정책을 사용할 수 있습니다. 이 정책에서는 metadata.s3.amazonaws.com.rproxy.govskope.camaintenance.s3tables.amazonaws.com 서비스 위탁자가 특정 키를 사용하여 특정 테이블 버킷의 테이블을 암호화하고 복호화하도록 허용합니다. 이 정책을 사용하려면 사용자 입력 자리 표시자를 실제 정보로 바꿉니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnableKeyUsage", "Effect": "Allow", "Principal": { "Service": [ "maintenance.s3tables.amazonaws.com", "metadata.s3.amazonaws.com" ] }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn":"<table-or-table-bucket-arn>/*" } } } ] }