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 조직, IAM 및 S3 디렉터리 버킷 정책에서 태그 기반 조건 키를 사용합니다. 엔터프라이즈의 경우 Amazon S3의 ABAC는 여러 AWS 계정에 대한 권한 부여를 지원합니다.

IAM 정책에서 다음 전역 조건 키를 사용하여 버킷의 태그를 기반으로 S3 디렉터리 버킷에 대한 액세스를 제어할 수 있습니다.

  • aws:ResourceTag/key-name

    • 이 키를 사용하여 정책에서 지정한 태그 키-값 쌍을 리소스에 연결된 키-값 쌍과 비교합니다. 예를 들어 리소스에 값이 Marketing인 태그 키 Dept와 연결된 경우에만 리소스에 대한 액세스가 필요할 수 있습니다. 자세한 내용은 AWS 리소스에 대한 액세스 제어를 참조하십시오.

  • aws:RequestTag/key-name

    • 이 키를 사용하여 요청에서 전달된 태그 키 값 페어를 정책에서 지정한 태그 페어와 비교합니다. 예를 들어, 요청에 태그 키 Dept가 포함되어 있으며 값이 Accounting인지 확인할 수 있습니다. 자세한 내용은 AWS 요청 중 액세스 제어를 참조하세요. 이 조건 키를 사용하여 TagResourceCreateBucket API 작업 중에 전달할 수 있는 태그 키-값 페어를 제한할 수 있습니다.

  • aws:TagKeys

    • 이 키를 사용하여 요청의 태그 키를 정책에서 지정한 키와 비교합니다. 정책을 사용하여 태그를 통해 액세스를 제어할 때 aws:TagKeys 조건 키를 사용하여 어떤 태그 키가 허용되는지 정의하는 것이 좋습니다. 예시 정책과 자세한 내용은 태그 키를 기반으로 액세스 제어를 참조하세요. 태그가 있는 S3 디렉터리 버킷을 생성할 수 있습니다. CreateBucket API 작업 중에 태그 지정을 허용하려면 s3express:TagResources3express:CreateBucket 작업을 모두 포함하는 정책을 생성해야 합니다. 그런 다음 aws:TagKeys 조건 키를 사용하여 CreateBucket 요청 내 특정 태그 사용을 강제 적용할 수 있습니다.

  • s3express:BucketTag/tag-key

    • 이 조건 키를 사용하여 태그를 사용하는 디렉터리 버킷의 특정 데이터에 권한을 부여합니다. 액세스 포인트를 사용하여 디렉터리 버킷에 액세스할 때 이 조건 키는 액세스 포인트 및 디렉터리 버킷에 대해 권한을 부여할 때 디렉터리 버킷의 태그를 참조하는 반면, aws:ResourceTag/tag-key는 권한이 부여된 리소스의 태그만 참조합니다.

디렉터리 버킷에 대한 ABAC 정책 예제

Amazon S3 디렉터리 버킷에 대한 다음 예시 ABAC 정책을 참조하세요.

1.1 - 특정 태그가 있는 버킷을 생성하거나 수정하는 IAM 정책

이 IAM 정책에서 이 정책을 사용하는 사용자 또는 역할은 버킷 생성 요청의 태그 키 project 및 태그 값 Trinity로 버킷에 태그를 지정하는 경우에만 S3 디렉터리 버킷을 생성할 수 있습니다. TagResource 요청에 태그 키-값 페어 project:Trinity가 포함되어 있는 한 기존 S3 디렉터리 버킷에 태그를 추가하거나 수정할 수도 있습니다. 이 정책은 버킷 또는 해당 객체에 대한 읽기, 쓰기 또는 삭제 권한을 부여하지 않습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateBucketWithTags", "Effect": "Allow", "Action": [ "s3express:CreateBucket", "s3express:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/project": [ "Trinity" ] } } } ] }

1.2 - 태그를 사용하여 버킷에 대한 작업을 제한하는 버킷 정책

이 버킷 정책에서 IAM 위탁자(사용자 및 역할)는 버킷의 project 태그의 값이 위탁자의 project 태그의 값과 일치하는 경우에만 버킷에 대한 CreateSession 작업을 사용하여 작업을 수행할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowObjectOperations", "Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": "s3express:CreateSession", "Resource": "arn:aws::s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }

1.3 - 태그 지정 거버넌스를 유지 관리하는 기존 리소스의 태그를 수정하는 IAM 정책

이 IAM 정책에서 IAM 위탁자(사용자 또는 역할)는 버킷의 project 태그 값이 위탁자의 project 태그 값과 일치하는 경우에만 버킷의 태그를 수정할 수 있습니다. 이러한 디렉터리 버킷에는 aws:TagKeys 조건 키에 지정된 태그 네 개, 즉 project, environment, ownercost-center만 허용됩니다. 이렇게 하면 태그 거버넌스를 강제 적용하고, 무단 태그 수정을 방지하고, 버킷 간에 태그 지정 스키마를 일관되게 유지할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceTaggingRulesOnModification", "Effect": "Allow", "Action": [ "s3express:TagResource" ], "Resource": "arn:aws::s3express:us-west-2:111122223333:bucket/*", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "project", "environment", "owner", "cost-center" ] } } } ] }

1.4 - s3express:BucketTag 조건 키 사용

이 IAM 정책에서 조건문은 버킷에 태그 키 Environment 및 태그 값 Production이 있는 경우에만 버킷의 데이터에 대한 액세스를 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToSpecificAccessPoint", "Effect": "Allow", "Action": "*", "Resource": "arn:aws::s3express:us-west-2:111122223333:accesspoint/*", "Condition": { "StringEquals": { "s3express:BucketTag/Environment": "Production" } } } ] }

디렉터리 버킷의 태그 관리

Amazon S3 콘솔, AWS Command Line Interface(CLI), AWS SDK를 사용하거나 S3 API TagResource, UntagResourceListTagsForResource를 사용하여 S3 디렉터리 버킷의 태그를 추가하거나 관리할 수 있습니다. 자세한 내용은 다음을 참조하세요.