S3 범용 버킷과 함께 태그 사용
AWS 태그는 리소스, 이 경우 Amazon S3 범용 버킷에 대한 메타데이터를 포함하는 키-값 페어입니다. S3 버킷을 생성할 때 태그를 지정하거나 기존 버킷에서 태그를 관리할 수 있습니다. 태그에 대한 일반적인 정보는 비용 할당 또는 속성 기반 액세스 제어(ABAC)를 위한 태그 지정 섹션을 참조하세요.
참고
버킷에서 태그를 사용하는 데 표준 S3 API 요청 속도 외에는 추가 요금이 부과되지 않습니다. 자세한 내용은 Amazon S3 요금
버킷과 함께 태그를 사용하는 일반적인 방법
다음을 위해 S3 버킷에 태그를 사용합니다.
-
비용 할당 - AWS Billing and Cost Management에서 버킷 태그별로 스토리지 비용을 추적합니다. 자세한 내용은 비용 할당에 태그 사용을 참조하세요.
-
속성 기반 액세스 제어(ABAC) - 액세스 권한의 규모를 조정하고 태그를 기반으로 S3 버킷에 대한 액세스 권한을 부여합니다. 자세한 내용은 Using tags for ABAC를 참조하세요.
참고
범용 버킷의 경우 ABAC는 기본적으로 활성화되어 있지 않습니다. 범용 버킷에 대해 ABAC를 활성화하려면 범용 버킷에서 ABAC 활성화 섹션을 참조하세요. 액세스 포인트 및 디렉터리 버킷과 같은 Amazon S3 리소스의 경우 ABAC가 기본적으로 활성화됩니다. 비용 할당과 액세스 제어에 동일한 태그를 사용할 수 있습니다.
S3 범용 버킷용 ABAC
Amazon S3 범용 버킷은 태그를 사용한 속성 기반 액세스 제어(ABAC)를 지원합니다. AWS 조직, IAM 및 S3 버킷 정책에서 태그 기반 조건 키를 사용합니다. 엔터프라이즈의 경우 Amazon S3의 ABAC는 여러 AWS 계정에 대한 권한 부여를 지원합니다.
IAM 정책에서 다음 전역 조건 키를 사용하여 버킷의 태그를 기반으로 S3 버킷에 대한 액세스를 제어할 수 있습니다.
-
aws:ResourceTag/key-name-
이 조건 키를 사용하여 정책에서 지정한 태그 키-값 쌍을 리소스에 연결된 키-값 쌍과 비교합니다. S3는 버킷에서 ABAC를 활성화한 후에만이 조건 키를 평가합니다. 예를 들어 리소스에 값이
Dept인 태그 키Marketing와 연결된 경우에만 리소스에 대한 액세스가 필요할 수 있습니다. 자세한 내용은 AWS 리소스에 대한 액세스 제어를 참조하십시오.
-
-
aws:RequestTag/key-name-
이 조건 키를 사용하여 요청에서 전달된 태그 키 값 페어를 정책에서 지정한 태그 페어와 비교합니다. 예를 들어, 요청에 태그 키
Dept가 포함되어 있으며 값이Accounting인지 확인할 수 있습니다. 자세한 내용은 AWS 요청 중 액세스 제어를 참조하세요. 이 조건 키를 사용하여TagResource및CreateBucketAPI 작업 중에 전달할 수 있는 태그 키-값 페어를 제한할 수 있습니다.
-
-
aws:TagKeys-
이 조건 키를 사용하여 요청의 태그 키를 정책에서 지정한 키와 비교합니다. 정책을 사용하여 태그를 통해 액세스를 제어할 때
aws:TagKeys조건 키를 사용하여 어떤 태그 키가 허용되는지 정의하는 것이 좋습니다. 예시 정책과 자세한 내용은 태그 키를 기반으로 액세스 제어를 참조하세요.
-
-
s3:BucketTag/tag-key-
이 조건 키를 사용하여 태그를 사용하는 버킷의 특정 데이터에 권한을 부여합니다. 이 조건 키는 버킷에서 ABAC가 활성화된 후에만 적용됩니다. 액세스 포인트를 사용하여 버킷에 액세스할 때
aws:ResourceTag/tag-key조건 키는 액세스 포인트 및 버킷에 대해 권한을 부여할 때 디렉터리 버킷의 태그를 참조합니다.s3:BucketTag/tag-key는 권한이 부여된 버킷의 태그만 참조합니다.
-
참고
태그가 있는 버킷을 생성할 때 aws:ResourceTag 및 s3:BucketTag 조건 키를 사용하여 버킷에 액세스하기 위한 태그 기반 조건은 버킷에서 ABAC를 활성화한 후에만 적용됩니다. 자세한 내용은 범용 버킷에서 ABAC 활성화를 참조하세요.
버킷에 대한 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": [ "s3:CreateBucket", "s3:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/project": [ "Trinity" ] } } } ] }
1.2 - 작업을 제한하는 버킷 정책
이 버킷 정책에서 IAM 위탁자(사용자 및 역할)는 버킷의 project 태그의 값이 위탁자의 project 태그의 값과 일치하는 경우에만 버킷에 대한 s3:ListBucket, s3:GetObject, s3:PutObject 작업을 정의합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyObjectOperations", "Effect": "Deny", "Principal": "*", "Action": ["s3:ListBucket", "s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:::aws-s3-demo/*", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }
1.3 - 기존 리소스의 태그를 수정하는 IAM 정책
이 IAM 정책에서 IAM 위탁자(사용자 또는 역할)는 버킷의 project 태그 값이 위탁자의 project 태그 값과 일치하는 경우에만 버킷의 태그를 수정할 수 있습니다. 이러한 버킷에는 aws:TagKeys 조건 키에 지정된 태그 네 개, 즉 project, environment, owner 및 cost-center만 허용됩니다. 이렇게 하면 태그 거버넌스를 강제 적용하고, 무단 태그 수정을 방지하고, 버킷 간에 태그 지정 스키마를 일관되게 유지할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceTaggingRulesOnModification", "Effect": "Allow", "Action": [ "s3:TagResource", "s3:CreateBucket" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "project", "environment", "owner", "cost-center" ] } } } ] }
1.4 - s3:BucketTag 조건 키 사용
이 IAM 정책에서 조건문은 버킷에 태그 키 Environment 및 태그 값 Production이 있는 경우에만 aws-s3-demo 버킷의 데이터에 대한 액세스를 허용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessViaSpecificBucket", "Effect": "Allow", "Action": "*", "Resource": ["arn:aws:s3:::aws-s3-demo","arn:aws:s3:::aws-s3-demo/*"], "Condition": { "StringEquals": { "s3:BucketTag/Environment": "Production" } } } ] }
범용 버킷의 태그 관리
Amazon S3 콘솔, AWS 명령줄 인터페이스(CLI), AWS SDK를 사용하거나 S3 API TagResource, UntagResource 및 ListTagsForResource를 사용하여 S3 버킷의 태그를 추가하거나 관리할 수 있습니다. 자세한 내용은 다음을 참조하세요.