S3 디렉터리 버킷에서 태그 사용
AWS 태그는 리소스, 이 경우 Amazon S3 디렉터리 버킷에 대한 메타데이터를 포함하는 키-값 페어입니다. S3 디렉터리 버킷을 생성할 때 태그를 지정하거나 기존 디렉터리 버킷에서 태그를 관리할 수 있습니다. 디렉터리 버킷에서 태그를 사용하는 데 표준 S3 API 요청 속도 외에는 추가 요금이 부과되지 않습니다. 자세한 내용은 Amazon S3 요금
태그 작동 방식
Amazon S3 디렉터리 버킷은 두 가지 유형의 태그를 지원합니다.
-
AWS가 생성한 태그: AWS는 이러한 태그를 자동으로 적용하며 사용자가 수정하거나 제거할 수 없습니다. AWS가 생성한 태그에 대한 자세한 내용은 AWS-generated tags를 참조하세요.
-
사용자 정의 태그: 이러한 태그는 사용자가 S3 디렉터리 버킷 또는 기타 리소스에 적용하고 관리합니다.
사용자 정의 태그
사용자 정의 태그는 리소스에 레이블을 지정하는 데 사용하는 태그 키-값 페어입니다. 사용자 정의 태그는 필수 키와 선택적 값으로 구성됩니다. 다음은 사용자 정의 태그의 주요 구성 요소입니다.
태그 키
태그 키는 태그의 필수 이름입니다. 예를 들어 project
는 다음 태그 키-값 페어의 태그 키입니다.
키 | 값 |
---|---|
project |
Trinity |
태그 키는 대/소문자 구분 문자열로, 유니코드 문자 1~128자를 포함해야 합니다.
태그 값
태그 값은 선택적 문자열입니다. 예를 들어 Trinity
는 이 태그 키-값 페어의 태그 값입니다.
키 | 값 |
---|---|
project |
Trinity |
태그 값은 대/소문자 구분 문자열로, 유니코드 문자 0~256자를 포함할 수 있습니다.
사용자 정의 태그에서 허용되는 문자와 기타 제한에 대한 세부 정보는 AWS 결제 및 비용 관리 사용 설명서의 User-Defined Tag Restrictions을 참조하세요.
태그 세트
각 S3 디렉터리 버킷에는 해당 버킷에 할당된 모든 태그 키와 값 페어를 포함하는 하나의 태그 세트가 있습니다. 태그 세트는 최대 50개의 사용자 정의 태그를 포함하거나 비어 있을 수 있습니다.
각 키는 태그 세트 내에서 고유해야 하지만 동일한 값을 여러 번 사용할 수 있습니다. 예를 들어 다음 두 태그 키의 값이 Trinity
로 동일할 수 있습니다.
키 | 값 |
---|---|
project |
Trinity |
cost-center |
Trinity |
버킷 내에 기존 태그와 동일한 키를 가진 태그를 추가하면 새 값이 기존 값을 덮어씁니다.
AWS은(는) 태그에 의미론적 의미를 적용하지 않습니다. 태그는 엄격히 문자열로 해석됩니다.
Amazon S3 콘솔, AWS Command Line Interface(AWS CLI) 또는 Amazon S3 API를 사용하여 태그를 추가, 나열, 수정 또는 삭제할 수 있습니다.
태그를 사용하는 일반적인 방법
다음을 위해 S3 디렉터리 버킷에 태그를 사용합니다.
-
비용 할당 - AWS 결제 및 비용 관리에서 버킷 태그별로 스토리지 비용을 추적합니다.
-
속성 기반 액세스 제어(ABAC) - 액세스 권한을 확장하고 태그를 기반으로 S3 디렉터리 버킷에 대한 액세스 권한을 부여합니다.
참고
비용 할당과 액세스 제어에 동일한 태그를 사용할 수 있습니다.
비용 할당에 태그 사용
S3 디렉터리 버킷에 태그를 적용하고 이러한 태그를 비용 할당에 활성화하여 Amazon S3 스토리지 비용을 추적합니다.
비용 추적을 시작하는 방법:
-
S3 디렉터리 버킷에 태그를 추가하거나 기존 태그를 사용합니다. 디렉터리 버킷에 사용자 정의 태그를 추가하는 방법에 대한 자세한 내용은 태그 작업 섹션을 참조하세요. 예를 들어 프로젝트 또는 프로젝트 그룹을 식별하는 태그로 버킷에 레이블을 지정할 수 있습니다.
-
AWS 결제 및 비용 관리 콘솔에서 비용 할당을 위해 태그를 활성화합니다. AWS 결제 및 비용 관리 사용 설명서에서 Activating user-defined cost allocation tags를 참조하세요. 사용자 정의 태그 또는 AWS가 생성한 태그를 활성화할 수 있습니다. 자세한 내용은 Organizing and tracking costs using AWS cost allocation tags를 참조하세요.
AWS는 활성화된 태그를 사용하여 다음과 같은 다양한 결제 및 비용 관리 도구에서 리소스 비용을 정리합니다.
-
비용 할당 보고서
활성화된 태그별로 정리된 비용에 대한 개괄적인 보기를 제공합니다. 자세한 내용은 AWS 결제 사용 설명서에서 Using the monthly cost allocation report를 참조하세요.
-
비용 및 사용량 보고서(CUR)
태그 기반 비용 분석을 포함하여 가장 상세한 AWS 비용 및 사용량 데이터 세트를 제공합니다. 자세한 내용은 AWS Data Exports 사용 설명서의 What are AWS Cost and Usage Reports?를 참조하세요.
속성 기반 액세스 제어(ABAC)에 태그 사용
속성 기반 액세스 제어(ABAC)는 속성, 즉 태그를 기반으로 권한을 정의하는 권한 부여 전략입니다. AWS Identity and Access Management(IAM) 엔터티(사용자 또는 역할) 및 Amazon S3 디렉터리 버킷과 같은 AWS 리소스에 태그를 연결할 수 있습니다. 그런 다음 액세스 제어 정책의 태그 기반 조건을 사용해 이러한 리소스에 대한 권한을 제어하여 이러한 조건이 충족될 때 작업을 허용하거나 거부합니다.
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 요청 중 액세스 제어를 참조하세요. 이 조건 키를 사용하여TagResource
및CreateBucket
API 작업 중에 전달할 수 있는 태그 키-값 페어를 제한할 수 있습니다.
-
-
aws:TagKeys
-
이 키를 사용하여 요청의 태그 키를 정책에서 지정한 키와 비교합니다. 정책을 사용하여 태그를 통해 액세스를 제어할 때
aws:TagKeys
조건 키를 사용하여 어떤 태그 키가 허용되는지 정의하는 것이 좋습니다. 예시 정책과 자세한 내용은 태그 키를 기반으로 액세스 제어를 참조하세요. 태그가 있는 S3 디렉터리 버킷을 생성할 수 있습니다.CreateBucket
API 작업 중에 태그 지정을 허용하려면s3express:TagResource
및s3express:CreateBucket
작업을 모두 포함하는 정책을 생성해야 합니다. 그런 다음aws:TagKeys
조건 키를 사용하여CreateBucket
요청 내 특정 태그 사용을 강제 적용할 수 있습니다.
-
-
s3express:BucketTag/tag-key
-
이 조건 키를 사용하여 태그를 사용하는 디렉터리 버킷의 특정 데이터에 권한을 부여합니다. 액세스 포인트를 사용하여 디렉터리 버킷에 액세스할 때 이 조건 키는 액세스 포인트 및 디렉터리 버킷에 대해 권한을 부여할 때 디렉터리 버킷의 태그를 참조하는 반면,
aws:ResourceTag/tag-key
는 권한이 부여된 리소스의 태그만 참조합니다.
-
정책 예제
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/", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }
amzn-s3-demo-bucket--usw2-az1--x-s3
1.3 - 태그 지정 거버넌스를 유지 관리하는 기존 리소스의 태그를 수정하는 IAM 정책
이 IAM 정책에서 IAM 위탁자(사용자 또는 역할)는 버킷의 project
태그 값이 위탁자의 project
태그 값과 일치하는 경우에만 버킷의 태그를 수정할 수 있습니다. 이러한 디렉터리 버킷에는 aws:TagKeys
조건 키에 지정된 태그 네 개, 즉 project
, environment
, owner
및 cost-center
만 허용됩니다. 이렇게 하면 태그 거버넌스를 강제 적용하고, 무단 태그 수정을 방지하고, 버킷 간에 태그 지정 스키마를 일관되게 유지할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceTaggingRulesOnModification", "Effect": "Allow", "Action": [ "s3express:TagResource" ], "Resource": "arn:aws:s3express:*:*: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:*:*:accesspoint/*", "Condition": { "StringEquals": { "s3express:BucketTag/Environment": "Production" } } } ] }
태그 작업
Amazon S3 콘솔, AWS Command Line Interface(CLI), AWS SDK를 사용하거나 S3 API TagResource, UntagResource 및 ListTagsForResource를 사용하여 S3 디렉터리 버킷의 태그를 추가하거나 관리할 수 있습니다. 자세한 내용은 다음을 참조하세요.