S3 테이블에서 태그 사용
AWS 태그는 리소스, 이 경우 Amazon S3 테이블에 대한 메타데이터를 포함하는 키-값 페어입니다. S3 테이블을 생성할 때 태그를 지정하거나 기존 테이블에서 태그를 관리할 수 있습니다. 태그에 대한 일반적인 정보는 비용 할당 또는 속성 기반 액세스 제어(ABAC)를 위한 태그 지정 섹션을 참조하세요.
참고
테이블에서 태그를 사용하는 데 표준 S3 API 요청 속도 외에는 추가 요금이 부과되지 않습니다. 자세한 내용은 Amazon S3 요금
테이블과 함께 태그를 사용하는 일반적인 방법
다음을 위해 S3 테이블에 태그를 사용합니다.
-
비용 할당 - AWS 결제 및 비용 관리에서 테이블 태그별로 스토리지 비용을 추적합니다. 자세한 내용은 비용 할당에 태그 사용을 참조하세요.
-
속성 기반 액세스 제어(ABAC) - 액세스 권한의 규모를 조정하고 태그를 기반으로 S3 테이블에 대한 액세스 권한을 부여합니다. 자세한 내용은 Using tags for ABAC를 참조하세요.
참고
비용 할당과 액세스 제어에 동일한 태그를 사용할 수 있습니다.
S3 테이블용 ABAC
Amazon S3 테이블은 태그를 사용한 속성 기반 액세스 제어(ABAC)를 지원합니다. AWS 조직, AWS Identity and Access Management(IAM) 및 S3 테이블 정책에서 태그 기반 조건 키를 사용합니다. Amazon S3의 ABAC는 여러 AWS 계정에 대한 권한 부여를 지원합니다.
IAM 정책에서 s3tables:TableBucketTag/tag-key 조건 키나 AWS 전역 조건 키인 aws:ResourceTag/key-name, aws:RequestTag/key-name 또는 aws:TagKeys를 사용하여 테이블의 태그를 기반으로 S3 테이블에 대한 액세스를 제어할 수 있습니다.
aws:ResourceTag/key-name
이 조건 키를 사용하여 정책에서 지정한 태그 키-값 쌍을 리소스에 연결된 키-값 쌍과 비교합니다. 예를 들어 테이블에 값이 Marketing인 태그 키 Department가 있는 경우에만 테이블에 대한 액세스가 필요할 수 있습니다.
이 조건 키는 Amazon S3 콘솔, AWS 명령줄 인터페이스(CLI), S3 API 또는 AWS SDK를 사용하여 수행되는 테이블 작업에 적용됩니다.
정책 예제는 1.1 - 태그를 사용하여 테이블에 대한 작업을 제한하는 테이블 정책을 참조하세요.
추가 예제 정책 및 자세한 내용은 AWS Identity and Access Management 사용 설명서의 AWS 리소스에 대한 액세스 제어를 참조하세요.
참고
테이블에서 수행되는 작업의 경우 이 조건 키는 테이블이 포함된 테이블 버킷에 적용된 태그가 아니라 테이블에 적용된 태그에 적용됩니다. 테이블 작업을 수행할 때 ABAC 정책이 테이블 버킷의 태그에 대해 작업하도록 하려면 대신 s3tables:TableBucketTag/tag-key를 사용합니다.
aws:RequestTag/key-name
이 조건 키를 사용하여 요청에서 전달된 태그 키 값 페어를 정책에서 지정한 태그 페어와 비교합니다. 예를 들어, 테이블에 대한 태그 지정 요청에 태그 키 Department가 포함되어 있으며 값이 Accounting인지 확인할 수 있습니다.
이 조건 키는 태그 키가 TagResource 또는 CreateTable API 작업 요청에 전달되거나 Amazon S3 콘솔, AWS 명령줄 인터페이스(CLI) 또는 AWS SDK를 사용하여 태그로 테이블에 태그를 지정하거나 생성할 때 적용됩니다.
정책 예제는 1.2 - 특정 태그가 있는 테이블을 생성하거나 수정하는 IAM 정책을 참조하세요.
추가 예제 정책 및 자세한 내용은 AWS Identity and Access Management 사용 설명서의 AWS 요청 중 액세스 제어를 참조하세요.
aws:TagKeys
이 조건 키를 사용해 요청의 태그 키를 정책에서 지정한 키와 비교하여 액세스가 허용된 태그 키가 무엇인지 정의합니다. 예를 들어 CreateTable 작업 중에 태그 지정을 허용하려면 s3tables:TagResource 및 s3tables:CreateTable 작업을 모두 허용하는 정책을 생성해야 합니다. 그런 다음 aws:TagKeys 조건 키를 사용하여 CreateTable 요청 내 특정 태그 사용을 강제 적용할 수 있습니다.
이 조건 키는 태그 키가 TagResource, UntagResource 또는 CreateTable API 작업에서 전달되거나 AWS 명령줄 인터페이스(CLI) 또는 AWS SDK를 사용하여 태그가 있는 테이블을 태그 지정, 태그 해제 또는 생성할 때 적용됩니다.
정책 예제는 1.3 - 태그 지정 거버넌스를 유지 관리하는 기존 리소스의 태그 수정을 제어하는 IAM 정책을 참조하세요.
추가 예제 정책과 자세한 내용은 AWS Identity and Access Management 사용 설명서의 태그 키를 기반으로 액세스 제어 섹션을 참조하세요.
s3tables:TableBucketTag/tag-key
이 조건 키를 사용하여 태그를 사용하는 테이블 버킷의 특정 데이터에 권한을 부여합니다. 이 조건 키는 대부분의 경우 모든 S3 테이블 작업에 대해 테이블 버킷에 할당된 태그에서 작동합니다. 태그가 있는 테이블을 생성하더라도 이 조건 키는 해당 테이블이 포함된 테이블 버킷에 적용된 태그에 적용됩니다. 예외는 다음과 같습니다.
태그가 있는 테이블 버킷을 생성할 때 이 조건 키는 요청의 태그에 대해 작동합니다.
정책 예제는 1.4 - s3tables:TableBucketTag 조건 키 사용을 참조하세요.
테이블에 대한 ABAC 정책 예제
Amazon S3 테이블에 대한 다음 예시 ABAC 정책을 참조하세요.
참고
보안 주체 태그를 기반으로 IAM 사용자 및 IAM 역할을 제한하는 IAM 또는 S3 Tables 리소스 기반 정책이 있는 경우, Lake Formation이 Amazon S3 데이터에 액세스하는 데 사용하는 것과 동일한 보안 주체 태그를 IAM 역할에 연결하고(예: LakeFormationDataAccessRole) 이 역할에 필요한 권한을 부여해야 합니다. 이는 태그 기반 액세스 제어 정책이 S3 Tables 분석 통합과 올바르게 작동하는 데 필요합니다.
1.1 - 태그를 사용하여 테이블에 대한 작업을 제한하는 테이블 정책
이 테이블 정책에서 지정된 IAM 위탁자(사용자 및 역할)는 테이블의 project 태그의 값이 위탁자의 project 태그의 값과 일치하는 경우에만 GetTable 작업을 수행할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGetTable", "Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": "s3tables:GetTable", "Resource": "arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/my_example_tab;e", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }
1.2 - 특정 태그가 있는 테이블을 생성하거나 수정하는 IAM 정책
이 IAM 정책에서 이 정책을 사용하는 사용자 또는 역할은 테이블 생성 요청의 태그 키 project 및 태그 값 Trinity로 테이블에 태그를 지정하는 경우에만 S3 테이블을 생성할 수 있습니다. TagResource 요청에 태그 키-값 페어 project:Trinity가 포함되어 있는 한 기존 S3 테이블에 태그를 추가하거나 수정할 수도 있습니다. 이 정책은 테이블 또는 해당 객체에 대한 읽기, 쓰기 또는 삭제 권한을 부여하지 않습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateTableWithTags", "Effect": "Allow", "Action": [ "s3tables:CreateTable", "s3tables:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/project": [ "Trinity" ] } } } ] }
1.3 - 태그 지정 거버넌스를 유지 관리하는 기존 리소스의 태그 수정을 제어하는 IAM 정책
이 IAM 정책에서 IAM 위탁자(사용자 또는 역할)는 테이블의 project 태그 값이 위탁자의 project 태그 값과 일치하는 경우에만 테이블의 태그를 수정할 수 있습니다. 이러한 테이블에는 aws:TagKeys 조건 키에 지정된 태그 네 개, 즉 project, environment, owner 및 cost-center만 허용됩니다. 이렇게 하면 태그 거버넌스를 강제 적용하고, 무단 태그 수정을 방지하고, 테이블 간에 태그 지정 스키마를 일관되게 유지할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceTaggingRulesOnModification", "Effect": "Allow", "Action": [ "s3tables:TagResource", "s3tables:UntagResource" ], "Resource": "arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/my_example_table", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "project", "environment", "owner", "cost-center" ] } } } ] }
1.4 - s3tables:TableBucketTag 조건 키 사용
이 IAM 정책에서 조건문은 테이블 버킷에 태그 키 Environment 및 태그 값 Production이 있는 경우에만 테이블 버킷의 데이터에 대한 액세스를 허용합니다. s3tables:TableBucketTag/<tag-key>는 태그에 따라 테이블 버킷에 대한 액세스를 제어하는 것 외에도 상위 테이블 버킷의 태그를 기반으로 테이블에 대한 액세스를 제어할 수 있기 때문에 aws:ResourceTag/<tag-key> 조건 키와 다릅니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToSpecificTables", "Effect": "Allow", "Action": "*", "Resource": "arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/*", "Condition": { "StringEquals": { "s3tables:TableBucketTag/Environment": "Production" } } } ] }
테이블 태그 관리
Amazon S3 콘솔, AWS 명령줄 인터페이스(CLI), AWS SDK를 사용하거나 S3 API TagResource, UntagResource 및 ListTagsForResource를 사용하여 S3 테이블의 태그를 추가하거나 관리할 수 있습니다. 자세한 내용은 다음을 참조하세요.