

# 在 S3 Vectors 中设置加密
<a name="s3-vectors-sectting-encryption"></a>

本主题介绍如何为 S3 向量存储桶和索引设置加密配置。

在开始之前，请确保您具有以下各项：
+ 用于查看存储桶和索引属性的适当权限。

## 使用 S3 控制台
<a name="viewing-encryption-settings-in-the-console"></a>

**配置向量存储桶的加密**

1. 通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.amazonaws.cn/s3/)。

1. 在导航窗格中，选择**向量存储桶**。

1. 选择**创建向量存储桶**。

1. 对于**存储桶名称**，请输入存储桶的名称。

   存储桶名称必须满足以下要求：
   + 对于此 Amazon 区域在您的账户中是唯一的
   + 长度介于 3 到 63 个字符之间。
   + 只能由小写字母、数字和连字符（-）组成

1. 对于**加密**，选择
   + **指定加密类型**：选择特定的加密方法：
     + **使用 Amazon S3 托管式密钥进行服务器端加密（SSE-S3）**：利用 SSE-S3，Amazon S3 可以自动处理加密密钥的生成、轮换和管理。
     + **具有 Amazon Key Management Service 密钥的服务器端加密（SSE-KMS）**：与 SSE-S3 类似，但在 Amazon KMS 中使用客户自主管理型密钥（CMK），使您能够更好地控制自己的密钥。有关客户自主管理型密钥的更多信息，请参阅《Amazon Key Management Service Developer Guide》**中的 [Customer managed keys](https://docs.amazonaws.cn/kms/latest/developerguide/concepts.html#customer-cmk)。

       如果您选择此选项，则在 **Amazon KMS 密钥**下，选择以下选项之一：
       + **从您的 Amazon KMS 密钥中进行选择**：从下拉列表中选择现有的 KMS 密钥
       + **输入 Amazon KMS 密钥 ARN**：输入 KMS 密钥的 Amazon 资源名称（ARN）
       + **创建 KMS 密钥**：在 Amazon KMS 控制台中创建新的客户自主管理型密钥。有关更多信息，请参阅《Amazon Key Management Service Developer Guide》**中的 [Creating symmetric customer managed keys](https://docs.amazonaws.cn/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)。
**注意**  
以下要求适用于 KMS 密钥：  
Amazon KMS 密钥 ID 不得为空
KMS 密钥必须位于创建此存储桶的同一区域中
Amazon KMS 密钥 ARN 必须以“arn:aws:kms:”开头
**重要**  
创建向量存储桶后，无法更改加密设置。

1. 如果您选择**输入 Amazon KMS 密钥 ARN**，请在提供的文本字段中输入 ARN。

1. 如果您选择**创建 KMS 密钥**，则控制台将在新的选项卡中打开 Amazon KMS 控制台。有关创建 KMS 密钥的说明，请参阅《Amazon Key Management Service Developer Guide》**中的 [Creating symmetric customer managed keys](https://docs.amazonaws.cn/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)。

1. 选择**创建向量存储桶**。
**重要**  
使用 KMS 加密时，请确保需要访问存储桶中对象的 IAM 主体对所选 KMS 密钥拥有必要的 KMS 权限（kms:Decrypt）。

**配置向量索引的加密**

1. 通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.amazonaws.cn/s3/)。

1. 在导航窗格中，选择**向量存储桶**。

1. 在向量存储桶列表中，选择想要在其中创建向量索引的存储桶的名称。

1. 选择**创建向量索引**。

1. 对于**向量索引名称**，输入向量索引的名称。

   向量索引名称在向量存储桶内必须是唯一的。索引名称长度必须介于 3 到 63 个字符之间。有效字符为小写字母（a-z）、数字（0-9）、连字符（-）和点（.）。有关向量索引命名要求的更多信息，请参阅[向量存储桶命名规则](s3-vectors-buckets-naming.md)。

1. 对于**维度**，输入每个向量中的值数量。
**注意**  
**维度**的值决定了每个向量将包含多少个数值。
添加到此索引的所有向量都必须正好具有这个数量的值。
维度必须介于 1 到 4096 之间。
维度越大，需要的存储空间就越多。
根据嵌入模型的输出维度进行选择。
有关维度要求的更多信息，请参阅[限制和局限性](s3-vectors-limitations.md)。

1. 对于**距离指标**，选择以下选项之一：
   + **余弦**：测量向量之间角度的余弦值。最适合归一化向量以及方向比幅度更重要时
   + **欧几里得**：测量向量之间的直线距离。当方向和幅度都很重要时最适合。

1. （可选）在**不可筛选的元数据**下，配置将存储但不用于筛选的元数据键：

   要添加不可筛选的元数据键：

   1. 选择**添加密钥**。

   1. 输入键名称（1-63 个字符，在此向量索引中是唯一的）。

   1. 重复此操作以添加其它键（最多 10 个键）。
**注意**  
在创建向量索引后插入向量数据时，可以将可筛选的元数据作为键值对附加到每个向量。默认情况下，附加到向量的所有元数据键都是可筛选的，并且可以在相似性查询中用作筛选条件。只有在创建向量索引期间指定为不可筛选的元数据键才被排除在筛选之外。有关每个向量的元数据大小限制（包括总元数据约束和可筛选元数据约束）的更多信息，请参阅[限制和局限性](s3-vectors-limitations.md)。

1. 对于**加密**，选择**指定加密类型**，然后选择以下选项之一：
   + **使用用于加密的存储桶设置**：Amazon S3 应用向量存储桶加密设置来加密向量索引中的向量数据。
   + **覆盖用于加密的存储桶设置**：为向量索引指定特定的加密类型：
     + **使用 Amazon S3 托管式密钥进行服务器端加密（SSE-S3）**：利用 SSE-S3，Amazon S3 可以自动处理加密密钥的生成、轮换和管理。
     + **具有 Amazon Key Management Service 密钥的服务器端加密（SSE-KMS）**：与 SSE-S3 类似，但在 Amazon KMS 中使用客户自主管理型密钥（CMK），使您能够更好地控制自己的密钥。有关客户自主管理型密钥的更多信息，请参阅《Amazon Key Management Service Developer Guide》**中的 [Customer managed keys](https://docs.amazonaws.cn/kms/latest/developerguide/concepts.html#customer-cmk)。

       如果您选择此选项，则在 **Amazon KMS 密钥**下，选择以下选项之一：
       + **从您的 Amazon KMS 密钥中进行选择**：从下拉列表中选择现有的 KMS 密钥
       + **输入 Amazon KMS 密钥 ARN**：输入 KMS 密钥的 Amazon 资源名称（ARN）
       + **创建 KMS 密钥**：在 Amazon KMS 控制台中创建新的客户自主管理型密钥。有关更多信息，请参阅《Amazon Key Management Service Developer Guide》**中的 [Creating symmetric customer managed keys](https://docs.amazonaws.cn/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)。
**注意**  
以下要求适用于 KMS 密钥：  
Amazon KMS 密钥 ID 不得为空。
KMS 密钥必须位于创建此存储桶的同一区域中。
Amazon KMS 密钥 ARN 必须以“arn:aws:kms:”开头
**重要**  
创建向量索引后，无法更改加密设置。
如果您选择**输入 Amazon KMS 密钥 ARN**，请在提供的文本字段中输入 ARN。
如果您选择**创建 KMS 密钥**，则控制台将在新的选项卡中打开 Amazon KMS 控制台。有关创建 KMS 密钥的说明，请参阅《Amazon Key Management Service Developer Guide》**中的 *Creating symmetric customer managed keys*。
**重要**  
使用 KMS 加密时，请确保需要访问存储桶中对象的 IAM 主体对所选 KMS 密钥拥有必要的 KMS 权限（kms:Decrypt）。

1. 在**标签（可选）**下，您可以采用键值对的形式添加标签，以便使用 Amazon 账单与成本管理来帮助跟踪和整理向量索引成本。输入 **Key (键)** 和 **Value (值)**。要添加另一个标签，请选择 **Add Tag (添加标签)**。您可以为一个向量索引输入最多 50 个标签。有关更多信息，请参阅 [将标签与 S3 向量存储桶结合使用](s3-vectors-tags.md)。

1. 请仔细检查配置。
**注意**  
这些设置在创建后无法更改。

1. 选择**创建向量索引**。

## 使用 Amazon CLI
<a name="using-the-aws-cli"></a>

以下示例说明如何使用 Amazon CLI 创建采用 SSE-S3 加密配置的向量存储桶。要使用此示例，请将{{用户输入占位符}} 替换为您自己的信息。

```
aws s3vectors create-vector-bucket \
        --vector-bucket-name "{{amzn-s3-demo-vector-bucket}}" \
        --encryption-configuration '{"sseType": "AES256"}'
```

下面的示例演示如何创建一个向量存储桶，该存储桶使用具有客户自主管理型密钥的 SSE-KMS 加密配置。要使用此示例，请将{{用户输入占位符}} 替换为您自己的信息。

```
aws s3vectors create-vector-bucket \
        --vector-bucket-name "{{amzn-s3-demo-vector-bucket}}" \
        --encryption-configuration '{"sseType": "aws:kms", "kmsKeyArn": "arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{1234abcd-12ab-34cd-56ef-1234567890ab}}"}'
```

以下示例说明如何通过 Amazon CLI 使用 SSE-S3 加密配置创建向量索引。要使用此示例，请将{{用户输入占位符}} 替换为您自己的信息。

```
aws s3vectors create-index \
        --vector-bucket-name {{"amzn-s3-demo-vector-bucket"}} \
        --index-name {{"amzn-s3-demo-vector-index"}} \
        --encryption-configuration '{"sseType": "AES256"}'
```

以下示例说明如何创建一个向量索引，该索引使用具有客户自主管理型密钥的 SSE-KMS 加密配置。要使用此示例，请将{{用户输入占位符}} 替换为您自己的信息。

```
aws s3vectors create-index \
        --vector-bucket-name {{"amzn-s3-demo-vector-bucket"}} \
        --index-name {{"amzn-s3-demo-vector-index"}} \
        --encryption-configuration '{"sseType": "aws:kms", "kmsKeyArn": {{"arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890abc"}}}'
```

以下示例说明如何使用向量存储桶的加密设置创建向量索引。要使用此示例，请将{{用户输入占位符}} 替换为您自己的信息。

```
aws s3vectors create-index \
        --vector-bucket-name {{"amzn-s3-demo-vector-bucket"}} \
        --index-name {{"amzn-s3-demo-vector-index"}} \
```