객체 태깅

객체 태깅 (Tagging your objects)

객체 태깅(object tagging)을 사용하면 스토리지를 분류할 수 있어요. 각 태그는 키-값(key-value) 쌍으로 구성돼요.

출처: 문서

본문

값 하나가 256자를 넘기는 구조화된 데이터를 저장해야 하거나, 객체 하나에 10개가 넘는 메타데이터 항목을 연결해야 하거나, 머신러닝 추론 결과나 AI 생성 라벨 같은 풍부한 콘텐츠를 붙여야 한다면 객체에 주석 달기(Annotating your objects)를 참고해 주세요.

객체를 업로드할 때 새 객체에 태그를 추가할 수도 있고, 기존 객체에 태그를 추가할 수도 있어요.

  • 객체 하나에 최대 10개 태그를 연결할 수 있어요. 객체에 연결되는 태그는 태그 키가 서로 달라야 해요.
  • 태그 키는 최대 128자(유니코드), 태그 값은 최대 256자(유니코드)까지 사용할 수 있어요. Amazon S3 객체 태그는 내부적으로 UTF-16으로 표현되는데, UTF-16에서는 각 문자가 1개 또는 2개의 문자 위치를 차지한다는 점을 기억해 두세요.
  • 키와 값은 대소문자를 구분해요.

태그 제한에 대해 더 자세한 내용은 AWS Billing and Cost Management 사용자 가이드의 사용자 정의 태그 제한과 Amazon EC2 사용자 가이드의 태그 제한을 참고해 주세요.

예시 (Examples)

태깅 예시 몇 가지를 살펴볼게요.

PHI 정보 예시

객체가 보호된 건강 정보(PHI) 데이터를 담고 있다고 해 볼게요. 다음과 같은 키-값 쌍으로 객체에 태그를 달 수 있어요.

PHI=True

또는 이렇게도 가능해요.

Classification=PHI

프로젝트 파일 예시

S3 버킷에 프로젝트 파일을 저장한다고 가정해 볼게요. Project라는 키와 값을 사용해 객체에 태그를 달 수 있어요.

Project=Blue

여러 태그 예시

객체에 여러 태그를 추가할 수도 있어요.

Project=x
Classification=confidential

키 이름 접두사와 태그

객체 키 이름 접두사(key name prefix)로도 스토리지를 분류할 수 있어요. 다만 접두사 기반 분류는 1차원적이에요. 다음 객체 키 이름을 살펴볼게요.

photos/photo1.jpg
project/projectx/document.pdf
project/projecty/document2.pdf

이 키 이름들은 photos/, project/projectx/, project/projecty/라는 접두사를 가져요. 이 접두사는 1차원 분류만 가능하게 해요. 즉, 특정 접두사 아래의 모든 것이 하나의 카테고리가 되는 거예요. 예를 들어 project/projectx 접두사는 프로젝트 x와 관련된 모든 문서를 식별해 줘요.

태깅을 사용하면 여기에 또 하나의 차원이 추가돼요. project x 카테고리에 photo1을 넣고 싶다면, 객체에 그에 맞는 태그를 달면 되는 거예요.

태깅의 추가 이점

데이터 분류 외에도 태깅은 다음과 같은 이점을 제공해요.

  • 객체 태그는 세밀한(fine-grained) 권한 접근 제어를 가능하게 해요. 예를 들어 특정 태그가 붙은 읽기 전용 객체에만 사용자가 접근할 수 있게 권한을 부여할 수 있어요.
  • 객체 태그는 세밀한 객체 수명주기(lifecycle) 관리를 가능하게 해요. 수명주기 규칙에서 키 이름 접두사 외에 태그 기반 필터를 지정할 수 있어요.
  • Amazon S3 분석(analytics)을 사용할 때 객체 태그, 키 이름 접두사, 둘 다를 기준으로 분석 대상 객체를 묶도록 필터를 구성할 수 있어요.
  • Amazon CloudWatch 지표도 특정 태그 필터 기준으로 정보를 표시하도록 커스터마이즈할 수 있어요. 자세한 내용은 다음 절에서 설명할게요.

중요 태그로 기밀 데이터를 담은 객체를 표시하는 것은 괜찮아요. 예를 들어 개인 식별 정보(PII)나 보호된 건강 정보(PHI) 같은 데이터를 표시할 수 있어요. 다만 태그 자체에는 기밀 정보가 담기지 않아야 해요.

단일 요청으로 여러 Amazon S3 객체에 태그 세트 추가하기

단일 요청으로 여러 Amazon S3 객체에 태그 세트를 추가하려면 S3 Batch Operations를 사용할 수 있어요. S3 Batch Operations에 작업 대상 객체 목록을 제공하면, S3 Batch Operations가 지정된 작업을 수행하기 위해 해당 API 작업을 호출해요. 단일 Batch Operations 작업은 엑사바이트 규모의 데이터를 담은 수십억 개의 객체에 지정된 작업을 수행할 수 있어요.

S3 Batch Operations 기능은 진행 상황을 추적하고, 알림을 보내며, 모든 작업의 상세 완료 보고서를 저장해 완전 관리형·감사 가능·서버리스 환경을 제공해요. S3 Batch Operations는 Amazon S3 콘솔, AWS CLI, AWS SDK 또는 REST API를 통해 사용할 수 있어요. 자세한 내용은 S3 Batch Operations 기본을 참고하세요.

객체 태그에 대한 자세한 내용은 객체 태그 관리를 참고해 주세요.

객체 태깅 관련 API 작업

Amazon S3는 객체 태깅을 전용으로 지원하는 다음 API 작업을 제공해요.

객체 API 작업

  • PUT Object tagging – 객체의 태그를 교체해요. 요청 본문에 태그를 지정해요. 이 API를 사용한 객체 태그 관리에는 두 가지 서로 다른 시나리오가 있어요.

    • 태그가 없는 객체 – 이 API를 사용해 객체에 태그 세트를 추가할 수 있어요(객체에 기존 태그가 없는 경우).
    • 기존 태그 세트가 있는 객체 – 기존 태그 세트를 수정하려면 먼저 기존 태그 세트를 검색하고, 클라이언트 쪽에서 수정한 다음, 이 API를 사용해 태그 세트를 교체해야 해요.

    참고 빈 태그 세트로 이 요청을 보내면 Amazon S3는 객체의 기존 태그 세트를 삭제해요. 이 방법을 쓰면 Tier 1 요청(PUT) 요금이 부과돼요. 자세한 내용은 Amazon S3 요금을 참고하세요. 같은 결과를 요금 없이 얻으려면 DELETE Object tagging 요청을 사용하는 게 좋아요.

  • GET Object tagging – 객체와 연결된 태그 세트를 반환해요. Amazon S3는 응답 본문에 객체 태그를 반환해요.

  • DELETE Object tagging – 객체와 연결된 태그 세트를 삭제해요.

태깅을 지원하는 기타 API 작업

  • PUT Object 및 Initiate Multipart Upload – 객체 생성 시 태그를 지정할 수 있어요. x-amz-tagging 요청 헤더로 태그를 지정해요.
  • GET Object – 태그 세트 대신 센 응답 헤더 크기가 8K 바이트로 제한되기 때문에, Amazon S3는 x-amz-tag-count 헤더에 객체 태그 수를 반환해요(요청자가 태그 읽기 권한이 있을 때만). 태그를 보고 싶다면 GET Object tagging API 작업으로 별도 요청을 보내면 돼요.
  • POST Object – POST 요청에 태그를 지정할 수 있어요.

요청의 태그가 8K 바이트 HTTP 요청 헤더 크기 제한을 넘지 않는 한, PUT Object API를 사용해 태그가 있는 객체를 만들 수 있어요. 지정한 태그가 헤더 크기 제한을 넘는다면, 태그를 본문에 포함하는 POST 메서드를 사용할 수 있어요.

  • PUT Object - Copy – 요청에서 x-amz-tagging-directive를 지정해 태그를 복사할지(기본 동작) 요청에 제공된 새 태그 세트로 교체할지 Amazon S3에 지시할 수 있어요.

다음 사항을 참고해 주세요.

  • S3 객체 태깅은 강력한 일관성(strongly consistent)을 가져요. 자세한 내용은 Amazon S3 데이터 일관성 모델을 참고하세요.

추가 구성 (Additional configurations)

이 절에서는 객체 태깅이 다른 구성과 어떤 관계가 있는지 설명할게요.

객체 태깅과 수명주기 관리

버킷 수명주기 구성에서 규칙이 적용될 객체 하위 집합을 선택하는 필터를 지정할 수 있어요. 키 이름 접두사, 객체 태그, 또는 둘 다를 기준으로 필터를 지정할 수 있어요.

Amazon S3 버킷에 사진(원본과 완성본)을 저장한다고 가정해 볼게요. 다음과 같이 객체에 태그를 달 수 있어요.

phototype=raw
or
phototype=finished

원본 사진은 생성 후 얼마 지나 Amazon Glacier로 아카이빙하는 것을 고려해 볼 수 있어요. photos/ 키 이름 접두사와 phototype=raw 태그를 가진 객체 하위 집합을 식별하는 필터로 수명주기 규칙을 구성할 수 있어요.

자세한 내용은 객체 수명주기 관리를 참고하세요.

객체 태깅과 복제

버킷에 복제(Replication)를 구성했다면, Amazon S3에 태그 읽기 권한을 부여했을 때 S3가 태그도 복제해요. 자세한 내용은 실시간 복제 설정 개요를 참고하세요.

객체 태깅 이벤트 알림

객체에 태그가 추가되거나 삭제될 때 알림을 받도록 Amazon S3 이벤트 알림을 설정할 수 있어요. s3:ObjectTagging:Put 이벤트 유형은 객체에 태그가 PUT되거나 기존 태그가 업데이트될 때 알려줘요. s3:ObjectTagging:Delete 이벤트 유형은 객체에서 태그가 제거될 때 알려줘요. 자세한 내용은 이벤트 알림 활성화를 참고하세요.

더 알아보기 (Learn more)