

# S3 테이블 버킷에서 태그 사용
<a name="table-bucket-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-table-bucket"></a>

다음을 위해 S3 테이블 버킷에 태그를 사용합니다.

**속성 기반 액세스 제어(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-table-buckets"></a>

Amazon S3 테이블 버킷은 태그를 사용한 속성 기반 액세스 제어(ABAC)를 지원합니다. AWS 조직, AWS Identity and Access Management(IAM) 및 S3 테이블 버킷 정책에서 태그 기반 조건 키를 사용합니다. Amazon S3의 ABAC는 여러 AWS 계정에 대한 권한 부여를 지원합니다.

IAM 정책에서 `s3tables:TableBucketTag/tag-key` 조건 키나 [AWS 전역 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys)인 `aws:ResourceTag/key-name`, `aws:RequestTag/key-name` 또는 `aws:TagKeys`를 사용하여 테이블 버킷의 태그를 기반으로 S3 테이블 버킷에 대한 액세스를 제어할 수 있습니다.

#### aws:ResourceTag/key-name
<a name="table-bucket-condition-key-resource-tag"></a>

이 조건 키를 사용하여 정책에서 지정한 태그 키-값 쌍을 리소스에 연결된 키-값 쌍과 비교합니다. 예를 들어 테이블 버킷에 값이 `Marketing`인 태그 키 `Department`가 있는 경우에만 테이블 버킷에 대한 액세스가 필요할 수 있습니다.

이 조건 키는 `CreateBucket` API 요청을 제외하고 Amazon S3 콘솔, AWS 명령줄 인터페이스(CLI), S3 API 또는 AWS SDK를 사용하여 수행되는 모든 테이블 버킷 작업에 적용됩니다.

정책 예제는 [1.1 - 태그를 사용하여 테이블 버킷 내부의 테이블에 대한 작업을 제한하는 테이블 버킷 정책](#example-policy-table-bucket-resource-tag)을 참조하세요.

추가 예제 정책 및 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [AWS 리소스에 대한 액세스 제어](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)를 참조하세요.

**참고**  
테이블에서 수행되는 작업의 경우 이 조건 키는 테이블이 포함된 테이블 버킷에 적용된 태그가 아니라 테이블에 적용된 태그에 적용됩니다. 테이블 작업을 수행할 때 ABAC 정책이 테이블 버킷의 태그에 대해 작업하도록 하려면 대신 `s3tables:TableBucketTag/tag-key`를 사용합니다.

#### aws:RequestTag/key-name
<a name="table-bucket-condition-key-request-tag"></a>

이 조건 키를 사용하여 요청에서 전달된 태그 키 값 페어를 정책에서 지정한 태그 페어와 비교합니다. 예를 들어, 테이블 버킷에 대한 태그 지정 요청에 태그 키 `Department`가 포함되어 있으며 값이 `Accounting`인지 확인할 수 있습니다.

이 조건 키는 태그 키가 `TagResource` 또는 `CreateTableBucket` API 작업 요청에 전달되거나 Amazon S3 콘솔, AWS 명령줄 인터페이스(CLI) 또는 AWS SDK를 사용하여 태그로 테이블 버킷에 태그를 지정하거나 생성할 때 적용됩니다.

정책 예제는 [1.2 - 특정 태그가 있는 테이블 버킷을 생성하거나 수정하는 IAM 정책](#example-policy-table-bucket-request-tag)을 참조하세요.

추가 예제 정책 및 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [AWS 요청 중 액세스 제어](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-requests)를 참조하세요.

#### aws:TagKeys
<a name="table-bucket-condition-key-tag-keys"></a>

이 조건 키를 사용해 요청의 태그 키를 정책에서 지정한 키와 비교하여 액세스가 허용된 태그 키가 무엇인지 정의합니다. 예를 들어 `CreateTableBucket` 작업 중에 태그 지정을 허용하려면 `s3tables:TagResource` 및 `s3tables:CreateTableBucket` 작업을 모두 허용하는 정책을 생성해야 합니다. 그런 다음 `aws:TagKeys` 조건 키를 사용하여 `CreateTableBucket` 요청 내 특정 태그 사용을 강제 적용할 수 있습니다.

이 조건 키는 태그 키가 `TagResource`, `UntagResource` 또는 `CreateTableBucket` API 작업에서 전달되거나 Amazon S3 콘솔, AWS 명령줄 인터페이스(CLI) 또는 AWS SDK를 사용하여 태그가 있는 테이블 버킷을 태그 지정, 태그 해제 또는 생성할 때 적용됩니다.

정책 예제는 [1.3 - 태그 지정 거버넌스를 유지 관리하는 기존 리소스의 태그 수정을 제어하는 IAM 정책](#example-policy-table-bucket-tag-keys)을 참조하세요.

추가 예제 정책과 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [태그 키를 기반으로 액세스 제어](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-tag-keys) 섹션을 참조하세요.

#### s3tables:TableBucketTag/tag-key
<a name="table-bucket-condition-key"></a>

이 조건 키를 사용하여 태그를 사용하는 테이블 버킷의 특정 데이터에 권한을 부여합니다. 이 조건 키는 대부분의 경우 모든 S3 테이블 작업에 대해 테이블 버킷에 할당된 태그에서 작동합니다. 태그가 있는 테이블을 생성하더라도 이 조건 키는 해당 테이블이 포함된 테이블 버킷에 적용된 태그에 적용됩니다. 예외는 다음과 같습니다.
+ 태그가 있는 테이블 버킷을 생성할 때 이 조건 키는 요청의 태그에 대해 작동합니다.

정책 예제는 [1.4 - s3tables:TableBucketTag 조건 키 사용](#example-policy-table-bucket-tag)을 참조하세요.

#### 테이블 버킷에 대한 ABAC 정책 예제
<a name="example-table-buckets-abac-policies"></a>

Amazon S3 테이블 버킷에 대한 다음 예시 ABAC 정책을 참조하세요.

**참고**  
Lake Formation을 사용하여 Amazon S3 Tables에 대한 액세스를 관리하고 보안 주체 태그를 기반으로 IAM 사용자 및 IAM 역할을 제한하는 IAM 또는 S3 Tables 리소스 기반 정책이 있는 경우, Lake Formation이 Amazon S3 데이터에 액세스하는 데 사용하는 것과 동일한 보안 주체 태그를 IAM 역할에 연결하고(예: LakeFormationDataAccessRole) 이 역할에 필요한 권한을 부여해야 합니다. 이는 태그 기반 액세스 제어 정책이 S3 Tables 분석 통합과 올바르게 작동하는 데 필요합니다.

##### 1.1 - 태그를 사용하여 테이블 버킷 내부의 테이블에 대한 작업을 제한하는 테이블 버킷 정책
<a name="example-policy-table-bucket-resource-tag"></a>

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

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowGetTable",
      "Effect": "Allow",
      "Principal": {
        "AWS": "111122223333"
      },
      "Action": "s3tables:GetTable",
      "Resource": "arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/project": "${aws:PrincipalTag/project}"
        }
      }
    }
  ]
}
```

##### 1.2 - 특정 태그가 있는 테이블 버킷을 생성하거나 수정하는 IAM 정책
<a name="example-policy-table-bucket-request-tag"></a>

**참고**  
AWS Lake Formation을 사용하여 Amazon S3 Tables에 대한 액세스를 관리하고 Amazon S3 Tables와 함께 ABAC를 사용하는 경우 Lake Formation이 필요한 액세스 권한을 수임하는 IAM 역할도 부여해야 합니다. Lake Formation에 대한 IAM 역할 설정에 대한 자세한 내용은 *AWS Lake Formation 개발자 안내서*의 [Amazon S3 Tables 카탈로그를 Data Catalog 및 Lake Formation과 통합하기 위한 사전 조건](https://docs.aws.amazon.com/lake-formation/latest/dg/s3tables-catalog-prerequisites.html)을 참조하세요.

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

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CreateTableBucketWithTags",
      "Effect": "Allow",
      "Action": [
        "s3tables:CreateTableBucket",
        "s3tables:TagResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/project": [
            "Trinity"
          ]
        }
      }
    }
  ]
}
```

##### 1.3 - 태그 지정 거버넌스를 유지 관리하는 기존 리소스의 태그 수정을 제어하는 IAM 정책
<a name="example-policy-table-bucket-tag-keys"></a>

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

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

##### 1.4 - s3tables:TableBucketTag 조건 키 사용
<a name="example-policy-table-bucket-tag"></a>

이 IAM 정책에서 조건문은 테이블 버킷에 태그 키 `Environment` 및 태그 값 `Production`이 있는 경우에만 테이블 버킷의 데이터에 대한 액세스를 허용합니다. `s3tables:TableBucketTag/<tag-key>`는 태그에 따라 테이블 버킷에 대한 액세스를 제어하는 것 외에도 상위 테이블 버킷의 태그를 기반으로 테이블에 대한 액세스를 제어할 수 있기 때문에 `aws:ResourceTag/<tag-key>` 조건 키와 다릅니다.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessToSpecificTables",
      "Effect": "Allow",
      "Action": "*",
      "Resource": "arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/*",
      "Condition": {
        "StringEquals": {
          "s3tables:TableBucketTag/Environment": "Production"
        }
      }
    }
  ]
}
```

## 테이블 버킷의 태그 관리
<a name="table-bucket-working-with-tags"></a>

Amazon S3 콘솔, AWS 명령줄 인터페이스(CLI), AWS SDK를 사용하거나 S3 API [TagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_TagResource.html), [UntagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_UntagResource.html) 및 [ListTagsForResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_ListTagsForResource.html)를 사용하여 S3 테이블 버킷의 태그를 추가하거나 관리할 수 있습니다. 자세한 내용은 다음을 참조하세요.

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