

# S3 범용 버킷과 함께 태그 사용
<a name="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-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)를 참조하세요.
**참고**  
범용 버킷의 경우 ABAC는 기본적으로 활성화되어 있지 않습니다. 범용 버킷에 대해 ABAC를 활성화하려면 [범용 버킷에서 ABAC 활성화](buckets-tagging-enable-abac.md) 섹션을 참조하세요. 액세스 포인트 및 디렉터리 버킷과 같은 Amazon S3 리소스의 경우 ABAC가 기본적으로 활성화됩니다. 비용 할당과 액세스 제어에 동일한 태그를 사용할 수 있습니다.

### S3 범용 버킷용 ABAC
<a name="abac-for-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`
  + 이 조건 키를 사용하여 정책에서 지정한 태그 키-값 쌍을 리소스에 연결된 키-값 쌍과 비교합니다. S3는 버킷에서 ABAC를 활성화한 후에만이 조건 키를 평가합니다. 예를 들어 리소스에 값이 `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:BucketTag/tag-key`
  + 이 조건 키를 사용하여 태그를 사용하는 버킷의 특정 데이터에 권한을 부여합니다. 이 조건 키는 버킷에서 ABAC가 활성화된 후에만 적용됩니다. 액세스 포인트를 사용하여 버킷에 액세스할 때 `aws:ResourceTag/tag-key` 조건 키는 액세스 포인트 및 버킷에 대해 권한을 부여할 때 디렉터리 버킷의 태그를 참조합니다. `s3:BucketTag/tag-key`는 권한이 부여된 버킷의 태그만 참조합니다.

**참고**  
태그가 있는 버킷을 생성할 때 aws:ResourceTag 및 s3:BucketTag 조건 키를 사용하여 버킷에 액세스하기 위한 태그 기반 조건은 버킷에서 ABAC를 활성화한 후에만 적용됩니다. 자세한 내용은 [범용 버킷에서 ABAC 활성화](buckets-tagging-enable-abac.md)를 참조하세요.

### 버킷에 대한 ABAC 정책 예제
<a name="example-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": [
        "s3:CreateBucket",
        "s3:TagResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/project": [
            "Trinity"
          ]
        }
      }
    }
  ]
}
```

#### 1.2 - 작업을 제한하는 버킷 정책
<a name="example-user-policy-resource-tag"></a>

이 버킷 정책에서 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 정책
<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": [
        "s3:TagResource",
        "s3:CreateBucket"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws:TagKeys": [
            "project",
            "environment",
            "owner",
            "cost-center"
          ]
        }
      }
    }
  ]
}
```

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

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

## 범용 버킷의 태그 관리
<a name="managing-tags-general-buckets"></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**