

# S3 디렉터리 버킷에서 태그 사용
<a name="directory-buckets-tagging"></a>

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

**참고**  
디렉터리 버킷에서 태그를 사용하는 데 표준 S3 API 요청 속도 외에는 추가 요금이 부과되지 않습니다. 자세한 내용은 [Amazon S3 요금](https://aws.amazon.com/s3/pricing/)을 참조하세요.

## 디렉터리 버킷과 함께 태그를 사용하는 일반적인 방법
<a name="common-ways-to-use-tags-directory-bucket"></a>

다음을 위해 S3 디렉터리 버킷에 태그를 사용합니다.

1. **비용 할당** - AWS 결제 및 비용 관리에서 버킷 태그별로 스토리지 비용을 추적합니다. 자세한 내용은 [비용 할당에 태그 사용](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-cost-allocation)을 참조하세요.

1. **속성 기반 액세스 제어(ABAC)** - 액세스 권한의 규모를 조정하고 태그를 기반으로 S3 디렉터리 버킷에 대한 액세스 권한을 부여합니다. 자세한 내용은 [Using tags for ABAC](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-abac)를 참조하세요.

**참고**  
비용 할당과 액세스 제어에 동일한 태그를 사용할 수 있습니다.

### S3 디렉터리 버킷의 ABAC
<a name="abac-for-directory-buckets"></a>

Amazon S3 디렉터리 버킷은 태그를 사용한 속성 기반 액세스 제어(ABAC)를 지원합니다. AWS 조직, IAM 및 S3 디렉터리 버킷 정책에서 태그 기반 조건 키를 사용합니다. 엔터프라이즈의 경우 Amazon S3의 ABAC는 여러 AWS 계정에 대한 권한 부여를 지원합니다.

IAM 정책에서 다음 [전역 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys)를 사용하여 버킷의 태그를 기반으로 S3 디렉터리 버킷에 대한 액세스를 제어할 수 있습니다.
+ `aws:ResourceTag/key-name`
  + 이 키를 사용하여 정책에서 지정한 태그 키-값 쌍을 리소스에 연결된 키-값 쌍과 비교합니다. 예를 들어 리소스에 값이 `Dept`인 태그 키 `Marketing`와 연결된 경우에만 리소스에 대한 액세스가 필요할 수 있습니다. 자세한 내용은 [AWS 리소스에 대한 액세스 제어](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)를 참조하십시오.
+ `aws:RequestTag/key-name`
  + 이 키를 사용하여 요청에서 전달된 태그 키 값 페어를 정책에서 지정한 태그 페어와 비교합니다. 예를 들어, 요청에 태그 키 `Dept`가 포함되어 있으며 값이 `Accounting`인지 확인할 수 있습니다. 자세한 내용은 [AWS 요청 중 액세스 제어](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-requests)를 참조하세요. 이 조건 키를 사용하여 `TagResource` 및 `CreateBucket` API 작업 중에 전달할 수 있는 태그 키-값 페어를 제한할 수 있습니다.
+ `aws:TagKeys`
  + 이 키를 사용하여 요청의 태그 키를 정책에서 지정한 키와 비교합니다. 정책을 사용하여 태그를 통해 액세스를 제어할 때 `aws:TagKeys` 조건 키를 사용하여 어떤 태그 키가 허용되는지 정의하는 것이 좋습니다. 예시 정책과 자세한 내용은 [태그 키를 기반으로 액세스 제어](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-tag-keys)를 참조하세요. 태그가 있는 S3 디렉터리 버킷을 생성할 수 있습니다. `CreateBucket` API 작업 중에 태그 지정을 허용하려면 `s3express:TagResource` 및 `s3express:CreateBucket` 작업을 모두 포함하는 정책을 생성해야 합니다. 그런 다음 `aws:TagKeys` 조건 키를 사용하여 `CreateBucket` 요청 내 특정 태그 사용을 강제 적용할 수 있습니다.
+ `s3express:BucketTag/tag-key`
  + 이 조건 키를 사용하여 태그를 사용하는 디렉터리 버킷의 특정 데이터에 권한을 부여합니다. 액세스 포인트를 사용하여 디렉터리 버킷에 액세스할 때 이 조건 키는 액세스 포인트 및 디렉터리 버킷에 대해 권한을 부여할 때 디렉터리 버킷의 태그를 참조하는 반면, `aws:ResourceTag/tag-key`는 권한이 부여된 리소스의 태그만 참조합니다.

### 디렉터리 버킷에 대한 ABAC 정책 예제
<a name="example-directory-buckets-abac-policies"></a>

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

#### 1.1 - 특정 태그가 있는 버킷을 생성하거나 수정하는 IAM 정책
<a name="example-user-policy-request-tag"></a>

이 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 - 태그를 사용하여 버킷에 대한 작업을 제한하는 버킷 정책
<a name="example-user-policy-resource-tag"></a>

이 버킷 정책에서 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 정책
<a name="example-user-policy-tag-keys"></a>

이 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:{{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 조건 키 사용
<a name="example-policy-bucket-tag"></a>

이 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"
        }
      }
    }
  ]
}
```

## 디렉터리 버킷의 태그 관리
<a name="working-with-tags"></a>

Amazon S3 콘솔, AWS Command Line Interface(CLI), AWS SDK를 사용하거나 S3 API [TagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html), [UntagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html) 및 [ListTagsForResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListTagsForResource.html)를 사용하여 S3 디렉터리 버킷의 태그를 추가하거나 관리할 수 있습니다. 자세한 내용은 다음을 참조하세요.

**Topics**
+ [디렉터리 버킷과 함께 태그를 사용하는 일반적인 방법](#common-ways-to-use-tags-directory-bucket)
+ [디렉터리 버킷의 태그 관리](#working-with-tags)
+ [태그가 있는 디렉터리 버킷 생성](directory-bucket-create-tag.md)
+ [디렉터리 버킷에 태그 추가](directory-bucket-tag-add.md)
+ [디렉터리 버킷 태그 보기](directory-bucket-tag-view.md)
+ [디렉터리 버킷에서 객체 삭제](directory-bucket-tag-delete.md)