S3 Vectors 中的数据保护和加密 - Amazon Simple Storage Service

S3 Vectors 中的数据保护和加密

注意

适用于 Amazon Simple Storage Service 的 Amazon S3 Vectors 为预览版,可能会发生变化。

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 加密,旨在以最小的运营开销提供强大的安全性,同时为组织提供坚实的加密功能,并消除管理加密密钥的复杂性。

使用 SSE-S3,Amazon 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 密钥策略

要将客户自主管理型 KMS 密钥与 S3 Vectors 结合使用,必须更新密钥策略以包括 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.aws-region.amazonaws.com" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": ["aws:s3vectors:arn", "aws:s3vectors:resource-id"] } } } ] }
  • 所需的 KMS 权限:

    • S3 Vectors 服务主体权限:

      • kms:Decrypt:客户自主管理型密钥的 S3 Vectors 服务主体 (indexing.s3vectors.amazonaws.com) 在后台操作中维护和优化索引所需

    • IAM 主体权限:

  • 跨账户访问注意事项:使用 SSE-KMS 实现跨账户访问模式时,必须确保 KMS 密钥策略支持其它账户中的相应主体进行访问。密钥 ARN 格式在跨账户场景中变得尤为重要,因为无论从何种账户上下文中访问密钥,这一格式都能提供对密钥的明确引用。