S3 테이블에서 태그 사용 - Amazon Simple Storage Service

S3 테이블에서 태그 사용

AWS 태그는 리소스, 이 경우 Amazon S3 테이블에 대한 메타데이터를 포함하는 키-값 페어입니다. S3 테이블을 생성할 때 태그를 지정하거나 기존 테이블에서 태그를 관리할 수 있습니다. 태그에 대한 일반적인 정보는 비용 할당 또는 속성 기반 액세스 제어(ABAC)를 위한 태그 지정 섹션을 참조하세요.

참고

테이블에서 태그를 사용하는 데 표준 S3 API 요청 속도 외에는 추가 요금이 부과되지 않습니다. 자세한 내용은 Amazon S3 요금을 참조하십시오.

테이블과 함께 태그를 사용하는 일반적인 방법

다음을 위해 S3 테이블에 태그를 사용합니다.

  1. 비용 할당 - AWS 결제 및 비용 관리에서 테이블 태그별로 스토리지 비용을 추적합니다. 자세한 내용은 비용 할당에 태그 사용을 참조하세요.

  2. 속성 기반 액세스 제어(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:TagResources3tables: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, ownercost-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, UntagResourceListTagsForResource를 사용하여 S3 테이블의 태그를 추가하거나 관리할 수 있습니다. 자세한 내용은 다음을 참조하세요.