S3 Vectors 리소스 기반 정책 예시

S3 Vectors 리소스 기반 정책 예시 (S3 Vectors resource-based policy examples)

리소스 기반 정책(resource-based policy)은 리소스에 연결돼요. 벡터 버킷에 대해 리소스 기반 정책을 만들 수 있어요. S3 Vectors의 리소스 기반 정책은 표준 AWS 정책 형식(JSON)을 사용하며, 벡터 버킷에 직접 연결해 버킷과 그 내용물에 대한 접근을 제어해요.

사용자, 그룹, 역할에 연결되는 ID 기반 정책과 달리, 리소스 기반 정책은 리소스 자체(벡터 버킷)에 연결되며 다른 AWS 계정의 보안 주체(principal)에게 권한을 부여할 수 있어요. 따라서 조직 경계를 넘어 벡터 데이터를 공유하거나, 접근하는 특정 리소스에 기반한 세분화된 접근 제어를 구현해야 하는 시나리오에 이상적이에요.

리소스 기반 정책은 ID 기반 정책과 함께 평가되며, 유효 권한은 적용 가능한 모든 정책의 합집합(union)으로 결정돼요. 즉, 리소스 기반 정책이 명시적으로 권한을 부여하지 않는 한, 보안 주체는 작업을 수행하려면 ID 기반 정책(사용자/역할에 연결)과 리소스 기반 정책(버킷에 연결) 양쪽 모두에서 권한을 필요로 해요.

출처: 문서

본문

예시 1: 교차 계정 접근 정책 (Example 1: Cross-account access policy)

이 정책은 다른 AWS 계정의 사용자에게 특정 권한을 부여하는 방법을 보여줘요.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "CrossAccountBucketAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam:123456789012:role/Admin"
            },
            "Action": [
                "s3vectors:CreateIndex",
                "s3vectors:ListIndexes",
                "s3vectors:QueryVectors",
                "s3vectors:PutVectors",
                "s3vectors:DeleteIndex"
            ],
            "Resource": [
                "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket/*",
                "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket"
            ]
        }
    ]
}

예시 2: 벡터 인덱스 수준 작업 거부 (Example 2: Deny vector index level actions)

이 정책은 IAM 역할에 대해 특정 벡터 인덱스 수준 작업을 거부하는 방법을 보여줘요.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyIndexLevelActions",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam:123456789012:role/External-Role-Name"
            },
            "Action": [
                "s3vectors:QueryVectors",
                "s3vectors:PutVectors",
                "s3vectors:DeleteIndex",
                "s3vectors:GetVectors",
                "s3vectors:GetIndex",
                "s3vectors:DeleteVectors",
                "s3vectors:CreateIndex",
                "s3vectors:ListVectors"
            ],
            "Resource": "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket/*"
        }
    ]
}

예시 3: 벡터 인덱스 및 버킷 수준 모두에서 수정 작업 거부 (Example 3: Deny modification operations at both vector index and bucket levels)

이 정책은 여러 리소스를 지정해 벡터 인덱스 수준과 버킷 수준 작업 모두에 대한 수정 요청을 거부하는 방법을 보여줘요.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyModificationActionsAtBucketandIndexLevels",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam:123456789012:role/External-Role-Name"
            },
            "Action": [
                "s3vectors:CreateVectorBucket",
                "s3vectors:DeleteVectorBucket",
                "s3vectors:PutVectorBucketPolicy",
                "s3vectors:DeleteVectorBucketPolicy",
                "s3vectors:CreateIndex",
                "s3vectors:DeleteIndex",
                "s3vectors:PutVectors",
                "s3vectors:DeleteVectors"
            ],
            "Resource": [
                "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket",
                "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket/*"
            ]
        }
    ]
}

더 알아보기 (Learn more)