

# S3 테이블에서 태그 사용
<a name="table-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"></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-tables"></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-condition-key-resource-tag"></a>

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

이 조건 키는 Amazon S3 콘솔, AWS 명령줄 인터페이스(CLI), S3 API 또는 AWS SDK를 사용하여 수행되는 테이블 작업에 적용됩니다.

정책 예제는 [1.1 - 태그를 사용하여 테이블에 대한 작업을 제한하는 테이블 정책](#example-policy-table-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-condition-key-request-tag"></a>

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

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

정책 예제는 [1.2 - 특정 태그가 있는 테이블을 생성하거나 수정하는 IAM 정책](#example-policy-table-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-condition-key-tag-keys"></a>

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

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

정책 예제는 [1.3 - 태그 지정 거버넌스를 유지 관리하는 기존 리소스의 태그 수정을 제어하는 IAM 정책](#example-policy-table-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-tag-condition-key"></a>

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

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

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

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

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

##### 1.1 - 태그를 사용하여 테이블에 대한 작업을 제한하는 테이블 정책
<a name="example-policy-table-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/my_example_tab;e",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/project": "${aws:PrincipalTag/project}"
        }
      }
    }
  ]
}
```

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

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

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

##### 1.3 - 태그 지정 거버넌스를 유지 관리하는 기존 리소스의 태그 수정을 제어하는 IAM 정책
<a name="example-policy-table-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/my_example_table",
      "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-tables"></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-working-with-tags"></a>

Amazon S3 콘솔, AWS 명령줄 인터페이스(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-table)
+ [테이블 태그 관리](#table-working-with-tags)
+ [태그로 테이블 생성](table-create-tag.md)
+ [테이블에 태그 추가](table-tag-add.md)
+ [테이블 태그 보기](table-tag-view.md)
+ [테이블에서 태그 삭제](table-tag-delete.md)