S3 Vectors의 데이터 보호 및 암호화
참고
Amazon S3 Vectors는 Amazon Simple Storage Service의 미리 보기 릴리스이며 변경될 수 있습니다.
Amazon S3 Vectors는 벡터 데이터에 대해 99.999999999%(11개의 9)의 내구성을 제공하므로 벡터 스토리지 요구 사항에 대해 탁월한 신뢰성을 보장합니다. 이러한 내구성은 하드웨어 장애 또는 기타 중단이 발생하더라도 데이터 무결성과 가용성을 유지하도록 설계된 Amazon S3의 검증된 인프라를 기반으로 합니다.
S3 Vectors의 데이터 보호에는 저장 및 전송 중 모두에 벡터 데이터를 보호하도록 설계된 여러 계층의 보안 제어가 포함됩니다.
기본적으로 Amazon S3 Vectors 벡터 버킷의 모든 새 벡터는 Amazon S3 관리형 키(SSE-S3)를 사용한 서버 측 암호화를 사용합니다. SSE-S3 암호화로 벡터 버킷을 만들면 버킷의 모든 후속 작업은 자동으로 암호화를 사용합니다.
또한 S3 Vectors는 AWS Key Management Service(KMS)와 통합되어 유연한 암호화 키 관리 옵션을 제공하므로 권한 제어 및 감사 가능성을 위해 고객 관리형 키를 선택할 수 있습니다.
Amazon S3 벡터 버킷에 대한 서버 측 암호화 동작 설정
S3 Vectors의 암호화 구성은 벡터 버킷을 만들 때 지정할 수 있는 기본 보안 설정입니다. 이 설계는 버킷에 저장된 모든 벡터 데이터가 생성 시점부터 암호화되도록 합니다. 암호화 구성은 버킷 내의 모든 벡터, 벡터 인덱스 및 메타데이터에 적용되므로 벡터 버킷의 전체 벡터 데이터세트에서 일관된 보호를 제공합니다.
중요
벡터 버킷을 만든 후에는 벡터 버킷의 암호화 설정을 변경할 수 없습니다. 규정 준수 요구 사항, 키 관리 기본 설정, 기존 보안 인프라와의 통합을 포함하여 버킷 생성 프로세스 중에 암호화 요구 사항을 신중하게 고려해야 합니다.
SSE-S3 또는 SSE-KMS 암호화 유형은 벡터 버킷 수준에서 설정되며 버킷 내의 모든 벡터 인덱스 및 벡터에 적용됩니다. 버킷 내의 개별 인덱스에 대해 다른 암호화 설정으로 변경할 수 없습니다. 암호화 구성은 벡터 데이터 자체뿐만 아니라 연결된 모든 메타데이터에도 적용됩니다.
SSE-S3 암호화 사용
Amazon S3 관리형 키(SSE-S3)를 사용한 서버 측 암호화는 AWS가 암호화 프로세스의 모든 측면을 관리하는 벡터 버킷을 위한 간단하고 효과적인 암호화 솔루션을 제공합니다. 이 암호화 방법은 AES-256
암호화를 사용하며 운영 오버헤드를 최소화하면서 강력한 보안을 제공하도록 설계되어 암호화 키를 관리할 필요 없이 강력한 암호화를 조직에 제공합니다.
Amazon S3는 SSE-S3를 사용하여 암호화 키의 생성, 교체 및 관리를 자동으로 처리합니다. SSE-S3는 추가 구성이나 지속적인 관리 요구 사항 없이 강력한 보안을 제공합니다. 암호화 및 해독 프로세스는 서비스에서 자동으로 처리되며 표준 S3 Vectors 요금 외에 SSE-S3 암호화를 사용하는 데 따르는 추가 요금은 없습니다.
SSE-KMS 암호화 사용
AWS Key Management Service 키(SSE-KMS)를 사용한 서버 측 암호화는 암호화 키에 대한 향상된 제어를 제공하고 키 사용에 대한 세부 감사 로깅을 가능하게 합니다. 이 암호화 방법은 엄격한 규정 준수 요구 사항이 있는 조직, 사용자 지정 키 교체 정책을 구현해야 하는 조직 또는 데이터 액세스에 대한 자세한 감사 추적이 필요한 환경에 적합합니다.
SSE-KMS를 사용하면 고객 관리형 키(CMK)를 사용하여 벡터 데이터를 암호화할 수 있습니다. 고객 관리형 키는 최고 수준의 제어를 제공하므로 AWS CloudTrail을 통해 키 정책을 정의하고, 키를 활성화 또는 비활성화하고, 키 사용을 모니터링할 수 있습니다. 이러한 제어 수준을 통해 SSE-KMS는 특정 데이터 거버넌스 요구 사항이 있는 규제 대상 산업 또는 조직에 특히 적합합니다.
고객 관리형 키와 함께 SSE-KMS를 사용하는 경우 키를 사용하여 데이터를 암호화하고 해독할 수 있는 사용자를 완벽하게 제어할 수 있습니다. 키에 액세스할 수 있는 사용자, 역할 또는 서비스를 지정하는 세부 키 정책을 만들 수 있습니다.
SSE-KMS에 대한 중요 고려 사항
-
KMS 키 형식 요구 사항: S3 Vectors에서는 전체 Amazon 리소스 이름(ARN) 형식을 사용하여 KMS 키를 지정해야 합니다. 키 ID 또는 키 별칭은 지원되지 않습니다.
-
서비스 위탁자 권한: S3 Vectors에서 고객 관리형 키를 사용하는 경우, S3 Vectors 서비스 위탁자에게 KMS 키를 사용할 수 있는 권한을 명시적으로 부여해야 합니다. 이 요구 사항은 서비스가 사용자를 대신하여 데이터를 암호화하고 해독할 수 있도록 보장합니다. 액세스가 필요한 서비스 위탁자는
indexing.s3vectors.amazonaws.com
입니다.
예제: S3 Vectors에 대한 KMS 키 정책
S3 Vectors와 함께 고객 관리형 KMS 키를 사용하려면 S3 Vectors 서비스 위탁자에 대한 권한을 포함하도록 키 정책을 업데이트해야 합니다. 다음은 포괄적인 키 정책 예제입니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowS3VectorsServicePrincipal", "Effect": "Allow", "Principal": { "Service": "indexing.s3vectors.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3vectors:
:
aws-region
123456789012
:bucket/*" }, "StringEquals": { "aws:SourceAccount": "123456789012
" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": ["aws:s3vectors:arn", "aws:s3vectors:resource-id"] } } }, { "Sid": "AllowApplicationAccess", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam:123456789012
:role/VectorApplicationRole", "arn:aws:iam:123456789012
:user/DataScientist" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "s3vectors..amazonaws.com" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": ["aws:s3vectors:arn", "aws:s3vectors:resource-id"] } } } ] }
aws-region
-
필수 KMS 권한
-
S3 Vectors 서비스 위탁자 권한:
-
kms:Decrypt
- 백그라운드 작업에서 인덱스를 유지 관리하고 최적화하기 위해 고객 관리형 키의 S3 Vectors 서비스 위탁자(indexing.s3vectors.amazonaws.com
)에 의해 요구됩니다.
-
-
IAM 위탁자 권한
-
kms:Decrypt
- 모든 벡터 수준 작업(PutVectors, GetVectors, QueryVectors, DeleteVectors, ListVectors)에 필요합니다. -
kms:GenerateDataKey
- 고객 관리형 키를 사용하여 벡터 버킷을 만드는 데 필요합니다.
-
-
-
교차 계정 액세스 고려 사항: SSE-KMS를 사용하여 교차 계정 액세스 패턴을 구현할 때, KMS 키 정책이 다른 계정의 적절한 위탁자로부터 액세스를 허용하는지 확인해야 합니다. 키 ARN 형식은 액세스 중인 계정 컨텍스트에 관계없이 키에 대한 명확한 참조를 제공하므로 교차 계정 시나리오에서 특히 중요합니다.