디렉터리 버킷용 S3 액세스 포인트에 태그 사용하기
디렉터리 버킷용 S3 액세스 포인트에 태그 사용하기
AWS 태그는 리소스에 대한 메타데이터를 담는 키-값 쌍이에요. 여기서는 디렉터리 버킷용 Amazon S3 액세스 포인트를 대상으로 설명할게요. 액세스 포인트를 만들 때 태그를 달 수도 있고, 이미 만들어진 액세스 포인트의 태그를 관리할 수도 있어요. 태그에 대한 일반적인 내용은 비용 할당용 태그 지정 또는 속성 기반 접근 제어(ABAC) 문서를 참고하세요.
디렉터리 버킷용 액세스 포인트에 태그를 사용해도 표준 S3 API 요금 외에 추가 비용은 발생하지 않아요. 자세한 내용은 Amazon S3 요금 페이지를 확인하세요.
본문
디렉터리 버킷용 액세스 포인트 태그의 일반적인 사용
속성 기반 접근 제어(ABAC)를 사용하면 액세스 권한을 확장하고, 태그를 기준으로 디렉터리 버킷용 액세스 포인트에 대한 접근을 부여할 수 있어요. Amazon S3에서의 ABAC에 대한 자세한 내용은 태그를 사용한 ABAC 문서를 참고하세요.
S3 액세스 포인트의 ABAC
Amazon S3 액세스 포인트는 태그를 사용한 속성 기반 접근 제어(ABAC)를 지원해요. AWS Organizations, IAM, 액세스 포인트 정책에서 태그 기반 조건 키를 사용할 수 있어요. 기업 환경에서 Amazon S3의 ABAC는 여러 AWS 계정에 걸친 권한 부여를 지원해요.
IAM 정책에서 다음 전역 조건 키를 사용하면 버킷의 태그를 기준으로 디렉터리 버킷용 액세스 포인트에 대한 접근을 제어할 수 있어요.
aws:ResourceTag/key-name— 이 키는 정책에 지정한 태그 키-값 쌍을 리소스에 연결된 쌍과 비교해요. 예를 들어 리소스에Dept라는 태그 키가Marketing이라는 값으로 연결된 경우에만 접근을 허용하도록 할 수 있어요. 자세한 내용은 AWS 리소스에 대한 접근 제어 문서를 참고하세요.aws:RequestTag/key-name— 이 키는 요청에 전달된 태그 키-값 쌍을 정책에 지정한 태그 쌍과 비교해요. 예를 들어 요청에Dept태그 키가 포함되고 그 값이Accounting인지 확인할 수 있어요. 자세한 내용은 AWS 요청 중 접근 제어 문서를 참고하세요. 이 조건 키는TagResource와CreateAccessPointAPI 작업에서 전달할 수 있는 태그 키-값 쌍을 제한하는 데 사용할 수 있어요.aws:TagKeys— 이 키는 요청의 태그 키를 정책에 지정한 키와 비교해요. 태그로 접근을 제어하는 정책을 사용할 때는aws:TagKeys조건 키로 허용할 태그 키를 정의하는 것을 권장해요. 예제 정책과 자세한 내용은 태그 키 기반 접근 제어 문서를 참고하세요. 디렉터리 버킷용 액세스 포인트를 태그와 함께 만들 수 있어요.CreateAccessPointAPI 작업 중 태그 지정을 허용하려면s3express:TagResource와s3express:CreateAccessPoint작업을 모두 포함하는 정책을 만들어야 해요. 그런 다음aws:TagKeys조건 키를 사용해CreateAccessPoint요청에서 특정 태그만 사용하도록 강제할 수 있어요.s3express:AccessPointTag/tag-key— 이 조건 키는 태그를 사용해 액세스 포인트로 특정 데이터에 대한 권한을 부여할 때 사용해요. IAM 정책에서aws:ResourceTag/tag-key를 사용하면 액세스 포인트와 그 액세스 포인트가 가리키는 버킷 모두 같은 태그를 가져야 해요. 권한 부여 시 두 리소스가 모두 고려되기 때문이에요. 오직 액세스 포인트 태그로만 데이터 접근을 제어하고 싶다면s3express:AccessPointTag/tag-key조건 키를 사용할 수 있어요.
디렉터리 버킷용 액세스 포인트 ABAC 정책 예시
디렉터리 버킷용 액세스 포인트에 대한 ABAC 정책 예시를 소개할게요.
1.1 - 특정 태그로 액세스 포인트를 만들거나 수정하는 IAM 정책
이 IAM 정책에서, 이 정책을 가진 사용자나 역할은 액세스 포인트 생성 요청에서 project 태그 키와 Trinity 태그 값을 태그로 달아야만 액세스 포인트를 만들 수 있어요. 또한 TagResource 요청이 project:Trinity 태그 키-값 쌍을 포함하는 한, 기존 디렉터리 버킷용 액세스 포인트에 태그를 추가하거나 수정할 수 있어요.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CreateAccessPointWithTags",
"Effect": "Allow",
"Action": [
"s3express:CreateAccessPoint",
"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:region:111122223333:access-point/my-access-point",
"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": [
"s3express:TagResource"
],
"Resource": "arn:aws::s3express:region:111122223333:accesspoint/my-access-point",
"Condition": {
"StringEquals": {
"aws:ResourceTag/project": "${aws:PrincipalTag/project}"
},
"ForAllValues:StringEquals": {
"aws:TagKeys": [
"project",
"environment",
"owner",
"cost-center"
]
}
}
}
]
}
1.4 - s3express:AccessPointTag 조건 키 사용하기
이 IAM 정책에서 조건문은 버킷 접근에 사용되는 액세스 포인트가 Environment 태그 키와 Production 태그 값을 가질 때만 버킷 데이터에 대한 접근을 허용해요.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAccessToSpecificAccessPoint",
"Effect": "Allow",
"Action": "*",
"Resource": "arn:aws::s3express:region:111122223333:accesspoint/my-access-point",
"Condition": {
"StringEquals": {
"s3express:AccessPointTag/Environment": "Production"
}
}
}
]
}
디렉터리 버킷용 액세스 포인트 태그 작업하기
디렉터리 버킷용 액세스 포인트의 태그는 Amazon S3 콘솔, AWS Command Line Interface(CLI), AWS SDK, 또는 S3 API(TagResource, UntagResource, ListTagsForResource)로 추가하거나 관리할 수 있어요. 자세한 내용은 다음을 참고하세요.
- 태그를 사용해 디렉터리 버킷용 액세스 포인트 만들기
- 디렉터리 버킷용 액세스 포인트에 태그 추가하기
- 디렉터리 버킷용 액세스 포인트의 태그 보기
- 디렉터리 버킷용 액세스 포인트에서 태그 삭제하기
더 알아보기 (Learn more)
- 디렉터리 버킷용 액세스 포인트 태그 추가하기
- 디렉터리 버킷용 액세스 포인트 태그 보기
- 디렉터리 버킷용 액세스 포인트 태그 삭제하기
- 디렉터리 버킷용 액세스 포인트를 태그와 함께 만들기