

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# S3 Vectors 中的資料保護和加密
<a name="s3-vectors-data-encryption"></a>

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) 整合，以提供靈活的加密金鑰管理選項，讓您選擇客戶受管金鑰以進行許可控制和稽核。

在向量儲存貯體中建立向量索引時，您可以選擇覆寫向量儲存貯體層級加密設定，並在向量索引層級提供加密組態 (SSE-S3 或 KMS)。如果向量索引建立時未指定特定加密，索引會從其所屬的向量儲存貯體繼承加密組態。

## 設定 Amazon S3 向量儲存貯體和索引的伺服器端加密行為
<a name="s3-vectors-setting-encryption"></a>

S3 Vectors 中的加密組態是基本安全設定，可指定您建立向量儲存貯體的時機。此設計可確保儲存貯體中儲存的所有向量資料，會從建立的那一刻開始加密。根據預設，加密組態會套用至儲存貯體中的所有向量、向量索引和中繼資料，為向量儲存貯體中的整個向量資料集提供一致的保護。您也可以選擇覆寫向量儲存貯體層級加密設定，並在向量索引層級提供專用加密組態 (SSE-S3 或 AWS KMS)。

**重要**  
向量儲存貯體的加密設定，在建立向量儲存貯體後便無法變更。在建立儲存貯體的過程中，您必須仔細考量您的加密要求，包括合規要求、金鑰管理偏好設定，以及與現有安全基礎設施整合。

當您在向量儲存貯體層級設定 SSE-S3 或 SSE-KMS 加密類型時，預設會套用至儲存貯體中的所有向量索引和向量。加密組態不僅適用於向量資料本身，也適用於所有相關聯的中繼資料。

您也可以選擇覆寫向量儲存貯體層級加密設定，並在向量索引層級提供專用加密組態 (SSE-S3 或 KMS)。在建立向量索引之後，無法變更向量索引的加密設定。

### 使用 SSE-S3 加密
<a name="s3-vectors-sse-s3-encryption"></a>

使用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密為向量儲存貯體提供簡單且有效的加密解決方案，其中 AWS 管理加密程序的所有層面。此加密方法使用 `AES-256` 加密，旨在以最低的操作負荷提供強大的安全性，為組織提供強大的加密功能，而不需要管理加密金鑰的複雜性。

透過 SSE-S3，Amazon S3 會自動處理加密金鑰的產生、輪換和管理。SSE-S3 提供強大的安全性，無需額外的組態，也沒有持續的管理要求。加密和解密程序由服務自動處理，而且使用 SSE-S3 加密不會產生超出標準 S3 Vectors 定價的額外費用。

### 使用 SSE-KMS 加密
<a name="s3-vectors-sse-kms-encryption"></a>

使用 AWS Key Management Service 金鑰 (SSE-KMS) 的伺服器端加密可增強對加密金鑰的控制，並啟用金鑰用量的詳細稽核記錄。此加密方法非常適用於具有嚴格合規要求的組織、需要實作自訂金鑰輪換政策的組織，或者需要詳細資料存取之稽核軌跡的環境。

SSE-KMS 可讓您使用客戶自管金鑰 (CMK) 為向量資料加密。客戶自管金鑰提供最高層級的控制，可讓您定義金鑰政策、啟用或停用金鑰，以及透過 AWS CloudTrail 監控金鑰使用情況。此控制層級使 SSE-KMS 特別適用於具有特定資料治理要求的受管制產業或組織。

搭配客戶自管金鑰使用 SSE-KMS 時，您可以完全控制誰可以使用金鑰來加密和解密資料。您可以建立詳細的金鑰政策，指定哪些使用者、角色或服務可以存取金鑰。

#### SSE-KMS 的重要考量事項
<a name="s3-vectors-sse-kms-considerations"></a>
+ **KMS 金鑰格式要求：**S3 Vectors 要求您使用完整的 Amazon Resource Name (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.{{{{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 主體許可
    + `kms:Decrypt` – 所有向量級操作 ([PutVectors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_PutVectors.html)、[GetVectors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_GetVectors.html)、[QueryVectors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_QueryVectors.html)、[DeleteVectors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_DeleteVectors.html)、[ListVectors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_ListVectors.html)) 都需要許可
    + `kms:GenerateDataKey` – 使用客戶自管金鑰建立向量儲存貯體時需要許可
+ **跨帳戶存取權考量：**使用 SSE-KMS 實作跨帳戶存取模式時，必須確保 KMS 金鑰政策允許來自其他帳戶中適當主體的存取。金鑰 ARN 格式在跨帳戶案例中變得特別重要，因為該格式能提供明確的金鑰參考，無論其存取的帳戶內容為何。