S3 벡터 인덱스에 태그 사용하기

S3 벡터 인덱스에 태그 사용하기

AWS 태그를 S3 벡터 인덱스에 사용하는 방법을 설명해요. AWS 태그는 리소스, 여기서는 Amazon S3 벡터 인덱스의 메타데이터를 담는 키-값 쌍이에요.

출처: Using tags with S3 vector indexes

본문

AWS 태그는 리소스(여기서는 Amazon S3 벡터 인덱스)의 메타데이터를 담는 키-값 쌍이에요. 벡터 인덱스를 만들 때 태그를 붙이거나, 기존 벡터 인덱스의 태그를 관리할 수 있어요. 태그에 대한 일반 정보는 Tagging for cost allocation or attribute-based access control (ABAC)을 참고해 주세요.

벡터 인덱스의 태그 사용에는 표준 S3 API 요청 요금 외에 추가 비용이 들지 않아요. 자세한 내용은 Amazon S3 pricing을 참고해 주세요.

벡터 인덱스에 태그를 사용하는 일반적인 방법 (Common ways to use tags with vector indexes)

S3 벡터 인덱스에 태그를 사용하는 용도는 다음과 같아요.

  • 비용 할당 (Cost allocation) – AWS Billing and Cost Management에서 벡터 인덱스 태그로 저장 비용을 추적해요. 자세한 내용은 Using tags for cost allocation을 참고해 주세요.
  • 속성 기반 접근 제어 (ABAC) – 태그를 기반으로 접근 권한을 확장하고 S3 벡터 인덱스에 대한 접근을 부여해요. 자세한 내용은 Using tags for attribute-based access control (ABAC)을 참고해 주세요.

같은 태그를 비용 할당과 접근 제어 둘 다에 사용할 수 있어요.

S3 벡터 인덱스의 ABAC

Amazon S3 벡터 인덱스는 태그를 사용한 속성 기반 접근 제어(ABAC)를 지원해요. AWS Organizations, IAM, S3 벡터 인덱스 정책에서 태그 기반 조건 키를 사용해 주세요. 기업의 경우 Amazon S3의 ABAC는 여러 AWS 계정에 걸친 승인을 지원해요.

IAM 정책에서 다음 전역 조건 키를 사용해 벡터 인덱스의 태그를 기준으로 S3 벡터 인덱스에 대한 접근을 제어할 수 있어요.

  • aws:ResourceTag – 이 키를 사용해 정책에서 지정한 태그 키-값 쌍을 리소스에 연결된 키-값 쌍과 비교해요. 예를 들어, 리소스에 Dept 키와 Marketing 값의 태그가 연결되어 있을 때만 접근을 허용하도록 요구할 수 있어요. 자세한 내용은 Controlling access to AWS resources를 참고해 주세요.
  • aws:RequestTag – 이 키를 사용해 요청에 전달된 태그 키-값 쌍을 정책에서 지정한 태그 쌍과 비교해요. 예를 들어, 요청에 Dept 키가 포함되어 있고 그 값이 Accounting인지 확인할 수 있어요. 자세한 내용은 Controlling access during AWS requests를 참고해 주세요. 이 조건 키를 사용해 TagResource 및 CreateIndex API 작업 중에 전달할 수 있는 태그 키-값 쌍을 제한할 수 있어요.
  • aws:TagKeys – 이 키를 사용해 요청의 태그 키를 정책에서 지정한 키와 비교해요. 태그로 접근을 제어하는 정책을 사용할 때는 aws:TagKeys 조건 키로 허용할 태그 키를 정의하는 것을 권장해요. 예시 정책과 자세한 내용은 Controlling access based on tag keys를 참고해 주세요. 태그와 함께 S3 벡터 인덱스를 만들 수 있어요. CreateVectorBucket API 작업 중 태그 지정을 허용하려면 s3vectors:TagResource와 s3vectors:CreateVectorBucket 작업을 모두 포함하는 정책을 만들어야 해요. 그러면 aws:TagKeys 조건 키로 CreateVectorBucket 요청에서 특정 태그를 적용하도록 강제할 수 있어요.

벡터 인덱스용 ABAC 정책 예시 (Example ABAC policies for vector indexes)

Amazon S3 벡터 인덱스용 ABAC 정책 예시는 다음과 같아요.

1.1 – 특정 태그로 벡터 인덱스를 만들거나 수정하는 IAM 정책

이 IAM 정책에서, 이 정책이 연결된 사용자나 역할은 벡터 인덱스 생성 요청에 project 태그 키와 Trinity 태그 값으로 태그를 붙여야만 S3 벡터 인덱스를 만들 수 있어요. 또한 TagResource 요청에 project:Trinity 태그 키-값 쌍이 포함되는 한, 기존 S3 벡터 인덱스의 태그를 추가하거나 수정할 수 있어요. 이 정책은 벡터 인덱스나 그 객체에 대한 읽기·쓰기·삭제 권한을 부여하지 않아요.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "CreateVectorIndexWithTags",
      "Effect": "Allow",
      "Action": [
        "s3vectors:CreateIndex",
        "s3vectors:TagResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/project": [
            "Trinity"
          ]
        }
      }
    }
  ]
}
1.2 – 태깅 거버넌스를 유지하며 기존 리소스의 태그를 수정하는 IAM 정책

이 IAM 정책에서, IAM 프린시펄(사용자 또는 역할)은 벡터 인덱스의 project 태그 값이 프린시펄의 project 태그 값과 일치할 때만 벡터 인덱스의 태그를 수정할 수 있어요. aws:TagKeys 조건 키에 지정된 project, environment, owner, cost-center 네 개의 태그만 이 벡터 인덱스에 허용돼요. 이는 태그 거버넌스를 강제하고, 허가되지 않은 태그 수정을 막으며, 벡터 인덱스 전반에 태깅 스키마를 일관되게 유지하는 데 도움을 줘요.

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

더 알아보기 (Learn more)