

# 向量存储桶
<a name="s3-vectors-buckets"></a>

向量存储桶是一种 Amazon S3 存储桶类型，专为存储和查询向量数据而设计。向量存储桶使用专用 API 来高效地管理向量数据，并可降低上传、存储和查询向量嵌入的成本。向量存储桶为将向量数据整理到索引中提供了基础，使您能够跨大型数据集执行相似性搜索，同时受益于 Amazon S3 的可用性、耐久性、可扩展性和成本效益。

向量存储桶针对长期向量存储进行了优化，搜索时间达到亚秒级。可以对向量数据执行相似性查询，也可以选择附加元数据来根据日期、类别或用户偏好等特定条件筛选查询。

每个向量存储桶都有一个唯一的 Amazon 资源名称（ARN）和附加到它的资源策略。向量存储桶的 ARN 遵循以下格式：

```
arn:aws:s3vectors:Region:OwnerAccountID:bucket/bucket-name
```

在向量存储桶中，可以创建向量索引来存储和查询数据。每个向量存储桶都存在于一个特定的 AWS 区域内，而您可以在向量存储桶内创建多个向量索引。向量存储桶支持安全和访问权限控制机制，包括 IAM 基于身份的策略和存储桶策略。可以使用存储桶策略来授予或限制对向量存储桶中特定索引的访问权限。

向量存储桶的主要特征：
+ 专为向量存储和相似性搜索操作而构建。
+ 强一致性写入确保可以立即访问向量数据。
+ 随着数据集扩展，自动优化向量数据以获得最佳性价比。

有关每个存储桶的向量索引限制和其它限制的更多信息，请参阅[限制和局限性](s3-vectors-limitations.md)。

**Topics**
+ [

# 向量存储桶命名规则
](s3-vectors-buckets-naming.md)
+ [

# 创建向量存储桶
](s3-vectors-buckets-create.md)
+ [

# 列出向量存储桶
](s3-vectors-buckets-list.md)
+ [

# 查看向量存储桶属性
](s3-vectors-buckets-details.md)
+ [

# 删除空的向量存储桶
](s3-vectors-buckets-delete.md)
+ [

# 管理向量存储桶策略
](s3-vectors-bucket-policy.md)
+ [

# 将标签与 S3 向量存储桶结合使用
](s3-vectors-tags.md)

# 向量存储桶命名规则
<a name="s3-vectors-buckets-naming"></a>

向量存储桶名称必须遵循特定的命名约定，以确保在 AWS 区域内的唯一性。Amazon S3 强制执行以下存储桶命名要求，如果不遵守这些规则，则无法创建向量存储桶。此外，还有一些最佳实践，尽管并未强制执行，但有助于防止在以编程方式或通过控制台使用向量存储桶时发生冲突。

## 向量存储桶命名要求
<a name="vector-bucket-naming-requirements"></a>

创建向量存储桶时，必须遵循以下要求：
+ 在每个 AWS 区域的同一个 AWS 账户中，向量存储桶名称必须是唯一的。
+ 向量存储桶名称长度必须介于 3 到 63 个字符之间。
+ 向量存储桶名称只能由小写字母（a-z）、数字（0-9）和连字符（-）组成。
+ 向量存储桶名称必须以字母或数字开头和结尾。

## 命名的最佳实践
<a name="vector-bucket-naming-best-practices"></a>

我们建议在命名向量存储桶时遵循以下最佳实践：
+ 使用反映向量数据用途的描述性名称（例如，product-recommendations、document-embeddings）。
+ 避免在存储桶名称中使用敏感信息，因为它们可能出现在日志和 URL 中。
+ 使名称保持简洁但有意义，以更便于管理和识别。

这些命名约定确保可通过 AWS 管理控制台、Amazon S3 REST API、AWS CLI 和 AWS SDK 可靠地访问向量存储桶。

# 创建向量存储桶
<a name="s3-vectors-buckets-create"></a>

可以使用 S3 控制台或 AWS CLI 创建向量存储桶。向量存储桶中存储的所有数据始终进行静态加密。默认情况下，向量存储桶使用 SSE-S3 来加密向量数据。可以选择将存储桶配置为改而使用具有 AWS Key Management Service（AWS KMS）密钥的服务器端加密（SSE-KMS）。创建向量存储桶后，无法更改存储桶加密设置，因此，根据安全要求和合规性需要选择适当的加密方法非常重要。有关向量存储桶中安全性的更多信息，请参阅 [S3 Vectors 中的数据保护和加密](s3-vectors-data-encryption.md)。

## 使用 S3 控制台
<a name="create-vector-bucket-console"></a>

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

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

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

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

   存储桶名称必须遵循命名规则：
   + 存储桶名称长度必须介于 3 到 63 个字符之间。
   + 存储桶名称只能包含小写字母、数字和连字符。
   + 存储桶名称在您的 AWS 账户中对于 AWS 区域必须是唯一的。

   有关向量存储桶命名规则的更多信息，请参阅[向量存储桶命名规则](s3-vectors-buckets-naming.md)。
**重要**  
创建向量存储桶后，不能更改向量存储桶名称。

1. 对于**加密**，选择下列选项之一：
   + **不指定加密类型**：Amazon S3 自动应用具有 Amazon S3 托管式密钥的服务器端加密（SSE-S3），作为新向量的基本加密级别。选择此选项可实现最简单的设置，而无需其它配置。
   + **指定加密类型**：选择特定的加密方法：
     + **具有 Amazon S3 托管式密钥的服务器端加密（SSE-S3）**：显式选择使用 SSE-S3。Amazon S3 在将向量数据写入存储时会加密这些数据，并在您访问这些数据时进行解密。AWS 自动管理所有加密密钥。
     + **具有 AWS Key Management Service 密钥的服务器端加密（SSE-KMS）**：使用 AWS KMS 中的客户自主管理型密钥（CMK），这使您能够更好地控制加密密钥、密钥轮换和访问策略。

       如果选择 SSE-KMS，则有其它选项：
       + **从您的 AWS KMS 密钥中进行选择**：从您的账户中选择现有的客户自主管理型密钥。
       + **输入 AWS KMS 密钥 ARN**：指定 KMS 密钥的完整 ARN（必需的格式）。
       + **创建 KMS 密钥**：打开 AWS KMS 控制台，以创建新的客户自主管理型密钥。

       KMS 密钥要求：
       + KMS 密钥必须与向量存储桶位于同一区域中。
       + 必须指定完整的 KMS 密钥 ARN（不支持密钥 ID 和别名）。
       + 必须向 S3 Vectors 服务主体 (`indexing.s3vectors.amazonaws.com`) 授予使用密钥的 `kms:Decrypt` 权限。有关示例 AWS KMS 密钥策略的更多信息，请参阅 [S3 Vectors 中的数据保护和加密](s3-vectors-data-encryption.md)。

       有关加密选项和 KMS 密钥设置的详细信息，请参阅[使用 SSE-KMS 加密](s3-vectors-data-encryption.md#s3-vectors-sse-kms-encryption)。
**重要**  
创建向量存储桶后，无法更改加密设置。请根据长期安全性和合规性要求谨慎选择。

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

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

创建后，您将看到一条确认消息。新的向量存储桶将出现在向量存储桶列表中，并已准备好在存储桶中创建向量索引。

## 使用 AWS CLI
<a name="create-vector-bucket-CLI"></a>

可以使用以下命令创建使用 SSE-S3 加密的向量存储桶。要使用此示例，请将*用户输入占位符* 替换为您自己的信息。

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

创建使用 SSE-KMS 加密（使用客户自主管理型 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"}'
```

## 使用 AWS SDK
<a name="create-vector-bucket-SDK"></a>

------
#### [ SDK for Python ]

```
import boto3

# Create a S3 Vectors client in the AWS Region of your choice. 
s3vectors = boto3.client("s3vectors", region_name="us-west-2")

#Create a vector bucket
s3vectors.create_vector_bucket(vectorBucketName="media-embeddings")
```

------

# 列出向量存储桶
<a name="s3-vectors-buckets-list"></a>

您可以使用 Amazon S3 控制台、AWS CLI 或 AWS SDK 查看所有向量存储桶。列出操作支持基于前缀的筛选，当您的账户中有许多向量存储桶时，有助于您找到特定的存储桶。有关 `ListVectorBuckets`、前缀限制和响应限制的更多信息，请参阅《Amazon S3 API Reference》**中的 [ListVectorBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_ListVectorBuckets.html)。

## 前缀搜索功能
<a name="s3-vectors-buckets-list-prefix-search"></a>

前缀搜索支持您列出以特定前缀开头的存储桶，从而能够更轻松地整理和查找相关的向量存储桶。当您使用将相关存储桶分组在一起的命名约定时，这特别有用：
+ **基于环境**：`production-vectors-`、`staging-vectors-`、`dev-vectors-`
+ **基于使用案例**：`ml-model-vectors-`、`document-search-`、`image-similarity-`
+ **基于团队**：`data-science-vectors-`、`ml-platform-vectors-`

## 使用 S3 控制台
<a name="s3-vectors-buckets-list-console"></a>

列出向量存储桶

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

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

   控制台会显示所有向量存储桶的列表，包括以下信息：
   + **名称**：向量存储桶的唯一名称
   + **创建日期**：创建存储桶的时间
   + **Amazon 资源名称（ARN）**：用于编程访问的完整 ARN

要筛选列表：
+ 要根据存储桶名称的开头查找存储桶，请在存储桶列表上方的搜索框中输入向量存储桶名称或前缀。
+ 使用前缀来查找相关存储桶的分组（例如，键入“prod-”可查找所有生产存储桶）

  当您键入时，列表会实时更新

## 使用 AWS CLI
<a name="list-vector-bucket-CLI"></a>

```
aws s3vectors list-vector-buckets
```

## 使用 AWS SDK
<a name="s3-vectors-buckets-list-sdk"></a>

------
#### [ SDK for Python ]

```
import boto3

# Create a S3 Vectors client in the AWS Region of your choice. 
s3vectors = boto3.client("s3vectors", region_name="us-west-2")

#List vector buckets
response = s3vectors.list_vector_buckets()
buckets = response["vectorBuckets"]
print(buckets)
```

------

# 查看向量存储桶属性
<a name="s3-vectors-buckets-details"></a>

您可以使用 Amazon S3 REST API、AWS SDK、S3 控制台或 AWS 命令行界面（AWS CLI）查看有关向量存储桶的详细信息，包括其属性、加密设置和创建详细信息。有关 `GetVectorBucket` 的更多信息，请参阅《Amazon S3 API 参考》**中的 [GetVectorBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_GetVectorBucket.html)。

## 使用 S3 控制台
<a name="console-procedure"></a>

1. 登录到控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

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

1. 控制台会显示所有向量存储桶的列表。根据存储桶名称的开头查找存储桶，在存储桶列表上方的搜索框中输入向量存储桶名称或前缀。找到向量存储桶后，您可以在**属性**选项卡中查看其详细信息，包括加密设置、标签和创建详细信息。

## 使用 AWS CLI
<a name="cli-procedure"></a>

```
aws s3vectors get-vector-bucket --vector-bucket-name "amzn-s3-demo-vector-bucket"
```

# 删除空的向量存储桶
<a name="s3-vectors-buckets-delete"></a>

如果不再需要向量存储桶，可以将其删除。要删除向量存储桶，必须首先删除该存储桶中的所有向量索引。删除向量索引时，将删除其中的所有向量数据。使用 Amazon S3 REST API、AWS SDK、S3 控制台或 AWS 命令行界面（AWS CLI）删除向量存储桶。

在删除向量存储桶之前，必须：
+ 删除存储桶中的所有向量索引。
+ 确保没有正在对存储桶或其索引执行任何操作。

**重要**  
存储桶删除是永久性的，无法撤消。
与存储桶关联的所有数据和配置都将永久丢失。
删除存储桶后，存储桶名称将变得可供重用。
删除存储桶后，任何引用该存储桶的应用程序或脚本都会收到错误。

## 使用 S3 控制台
<a name="console-procedure"></a>

1. 登录到控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

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

1. 控制台会显示所有向量存储桶的列表。根据存储桶名称的开头查找存储桶，在存储桶列表上方的搜索框中输入向量存储桶名称或前缀。找到并选择向量存储桶后，选择**删除**选项。

1. 为了确认此删除操作，键入 **delete** 并选择**删除向量存储桶**。

## 使用 AWS CLI
<a name="delete-vector-bucket-CLI"></a>

首先，检查存储桶中是否不存在任何向量索引。有关如何验证存储桶是否为空的更多信息，请参阅[列出向量索引](s3-vectors-index-list.md)。

如果索引存在，则必须从每个索引中删除所有向量，然后删除索引。有关如何验证存储桶是否为空的更多信息，请参阅[列出向量](s3-vectors-list.md)、[从向量索引中删除向量](s3-vectors-delete.md)和[删除向量索引](s3-vectors-index-delete.md)。

要删除空的向量存储桶，请使用以下示例命令，并将*用户输入占位符*替换为您自己的信息。

```
aws s3vectors delete-vector-bucket \
  --vector-bucket-name "amzn-s3-demo-vector-bucket"
```

## 使用 AWS SDK
<a name="delete-vector-bucket-SDK"></a>

------
#### [ SDK for Python ]

```
import boto3

# Create a S3 Vectors client in the AWS Region of your choice. 
s3vectors = boto3.client("s3vectors", region_name="us-west-2")

#Delete a vector bucket
response = s3vectors.delete_vector_bucket(vectorBucketName="media-embeddings")
```

------

# 管理向量存储桶策略
<a name="s3-vectors-bucket-policy"></a>

向量存储桶策略是基于资源的策略，可以将其直接附加到向量存储桶，以控制对存储桶及其内容的访问权限。您可以使用 Amazon S3 REST API、AWS SDK、S3 控制台或 AWS 命令行界面（AWS CLI）来添加、查看、编辑和删除向量存储桶策略。向量存储桶的存储桶策略可以向其它 AWS 账户中的主体授予权限，以使它们适用于跨账户访问场景。

## 策略管理操作
<a name="policy-management-operations"></a>
+ [PutVectorBucketPolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_PutVectorBucketPolicy.html)：添加或更新存储桶策略。
+ [GetVectorBucketPolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_GetVectorBucketPolicy.html)：检索当前存储桶策略。
+ [DeleteVectorBucketPolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_DeleteVectorBucketPolicy.html)：移除存储桶策略。

## 添加向量存储桶策略
<a name="vector-bucket-policies-cli"></a>

### 使用 S3 控制台
<a name="console-procedure"></a>

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

1. 在左侧导航窗格中，选择 **Amazon S3**。

1. 选择**向量存储桶**，并选择您要向其添加策略的向量存储桶名称。

1. 选择**权限**选项卡。

1. 在**向量存储桶策略**下，选择**编辑**。

1. 在策略编辑器中，输入策略 JSON。

1. （可选）选择**策略示例**以查看可以根据需要调整的示例策略。

1. 输入您的策略后，选择**保存更改**。

### 使用 AWS CLI
<a name="vector-bucket-policy-add-CLI"></a>

要添加或更新存储桶策略，请使用以下示例命令，并将*用户输入占位符*替换为您自己的信息。

```
aws s3vectors put-vector-bucket-policy \
  --vector-bucket-name "amzn-s3-demo-vector-bucket" \
  --policy '{"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::111122223333:root"},"Action":"s3vectors:*","Resource":"arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket"}]}'
```

## 查看向量存储桶策略
<a name="vector-bucket-policy-get"></a>

### 使用 S3 控制台
<a name="console-procedure"></a>

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

1. 在左侧导航窗格中，选择 **Amazon S3**。

1. 选择**向量存储桶**，并选择您要查看其策略的向量存储桶名称。

1. 选择**权限**选项卡。

### 使用 AWS CLI
<a name="vector-bucket-policy-get-CLI"></a>

要检索存储桶策略，请使用以下示例命令，并将*用户输入占位符*替换为您自己的信息。

```
aws s3vectors get-vector-bucket-policy \
  --vector-bucket-name "amzn-s3-demo-vector-bucket"
```

## 删除向量存储桶策略
<a name="vector-bucket-policy-delete"></a>

### 使用 S3 控制台
<a name="console-procedure"></a>

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

1. 在左侧导航窗格中，选择 **Amazon S3**。

1. 选择**向量存储桶**，并选择您要删除其策略的向量存储桶名称。

1. 选择**权限**选项卡。

1. 在**向量存储桶策略**下，选择**删除**。

### 使用 AWS CLI
<a name="vector-bucket-policy-delete-CLI"></a>

要删除存储桶策略，请使用以下示例命令，并将*用户输入占位符*替换为您自己的信息。

```
aws s3vectors delete-vector-bucket-policy \
  --vector-bucket-name "amzn-s3-demo-vector-bucket"
```

有关创建和管理存储桶策略的详细信息，包括策略示例和最佳实践，请参阅 [S3 Vectors 基于资源的策略示例](s3-vectors-resource-based-policies.md)。

# 将标签与 S3 向量存储桶结合使用
<a name="s3-vectors-tags"></a>

AWS 标签是用于保存有关资源（在本例中为 Amazon S3 向量存储桶）的元数据的键值对。您可以在创建 S3 向量存储桶时为其添加标签，也可以管理现有向量存储桶上的标签。有关标签的一般信息，请参阅[添加标签以进行成本分配或基于属性的访问权限控制（ABAC）](tagging.md)。

**注意**  
在向量存储桶上使用标签时，除了标准 S3 API 请求费率之外，没有任何其他费用。有关更多信息，请参阅 [Amazon S3 定价](https://aws.amazon.com/s3/pricing/)。

## 将标签与向量存储桶结合使用的常用方法
<a name="common-ways-tags-vector-buckets"></a>

使用 S3 向量存储桶上的标签可执行以下操作：
+ **基于属性的访问权限控制（ABAC）**：根据 S3 向量存储桶的标签扩展访问权限并授予对这些存储桶的访问权限。有关更多信息，请参阅 [使用标签进行基于属性的访问权限控制（ABAC）](tagging.md#using-tags-for-abac)。

### 适用于 S3 向量存储桶的 ABAC
<a name="abac-vector-buckets"></a>

Amazon S3 向量存储桶支持使用标签进行基于属性的访问权限控制（ABAC）。请在您的 AWS Organizations、IAM 和 S3 向量存储桶策略中使用基于标签的条件键。对于企业，Amazon S3 中的 ABAC 支持跨多个 AWS 账户进行授权。

在 IAM 策略中，您可以使用以下全局条件键，根据向量存储桶的标签来控制对 S3 向量存储桶的访问：

`aws:ResourceTag/key-name`  
使用此键可将您在策略中指定的标签键/值对与附加到资源的键/值对进行比较。例如，您可能会要求只有在资源具有附加的标签键 `Dept` 和值 `Marketing` 时才允许访问该资源。有关更多信息，请参阅[控制对 AWS 资源的访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)。

`aws:RequestTag/key-name`  
使用此键可将请求中传递的标签键/值对与您在策略中指定的标签对进行比较。例如，您可以检查请求是否包含标签键 `Dept` 并具有 `Accounting` 值。有关更多信息，请参阅[在 AWS 请求期间控制访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-requests)。您可以使用此条件键来限制可以在 `TagResource` 和 `CreateVectorBucket` API 操作期间传递哪些标签键值对。

`aws:TagKeys`  
使用此键可将请求中的标签键与您在策略中指定的键进行比较。我们建议当使用策略来通过标签控制访问时，请使用 `aws:TagKeys` 条件键来定义允许的标签键。有关示例策略和更多信息，请参阅[根据标签键控制访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-tag-keys)。您可以使用标签创建 S3 向量存储桶。要在 `CreateVectorBucket` API 操作期间支持添加标签，您必须创建同时包含 `s3vectors:TagResource` 和 `s3vectors:CreateVectorBucket` 操作的策略。然后，您可以使用 `aws:TagKeys` 条件键来强制在 `CreateVectorBucket` 请求中使用特定的标签。

`s3vectors:VectorBucketTag/tag-key`  
使用此条件键，可通过标签授予对向量存储桶中特定数据的权限。此条件键作用于针对所有 S3 Vectors 操作分配给向量存储桶的标签。即使在您创建带有标签的索引时，此条件键也会对应用于包含该索引的向量存储桶的标签起作用。例如，您可能会要求仅在存储桶具有附加的标签键 `Dept` 和值 `Marketing` 时才允许访问该存储桶。访问索引时，此条件将引用与包含该索引的向量存储桶关联的标签，而 `aws:ResourceTag/tag-key` 将引用索引本身的标签。

### 向量存储桶的 ABAC 策略示例
<a name="example-abac-policies-vector-buckets"></a>

请参阅以下适用于 Amazon S3 向量存储桶的 ABAC 策略示例。

#### 1.1：用于创建或修改具有特定标签的向量存储桶的 IAM 策略
<a name="iam-policy-create-modify-buckets-tags"></a>

在此 IAM 策略中，具有此策略的用户或角色仅在以下情况下才能创建 S3 向量存储桶：在向量存储桶创建请求中使用标签键 `project` 和标签值 `Trinity` 为向量存储桶添加标签。他们还可以在现有 S3 向量存储桶上添加或修改标签，前提是 `TagResource` 请求包含标签键值对 `project:Trinity`。此策略不会授予对向量存储桶或其对象的读取、写入或删除权限。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "CreateVectorBucketWithTags",
      "Effect": "Allow",
      "Action": [
        "s3vectors:CreateVectorBucket",
        "s3vectors:TagResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/project": [
            "Trinity"
          ]
        }
      }
    }
  ]
}
```

#### 1.2：用于通过标签限制对向量存储桶的操作的向量存储桶策略
<a name="bucket-policy-restrict-operations-tags"></a>

在此向量存储桶策略中，IAM 主体（用户和角色）只有在向量存储桶的 `project` 标签的值与主体的 `project` 标签的值匹配时，才会使用 `PutVectorBucketPolicy` 操作对向量存储桶执行操作。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowObjectOperations",
      "Effect": "Allow",
      "Principal": {
        "AWS": "111122223333"
      },
      "Action": "s3vectors:PutVectorBucketPolicy",
      "Resource": "arn:aws::s3vectors:us-west-2:111122223333:bucket/amzn-s3-demo-vector-bucket",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/project": "${aws:PrincipalTag/project}"
        }
      }
    }
  ]
}
```

#### 1.3：用于修改现有资源上的标签以维护标签治理的 IAM 策略
<a name="iam-policy-modify-tags-governance"></a>

在此 IAM 策略中，IAM 主体（用户或角色）只有在向量存储桶的 `project` 标签的值与主体的 `project` 标签的值匹配时，才会修改向量存储桶上的标签。对于这些向量存储桶，只允许使用在 `aws:TagKeys` 条件键中指定的四个标签 `project`、`environment`、`owner` 和 `cost-center`。这有助于强制执行标签治理，防止未经授权修改标签，并使标签架构在您的向量存储桶之间保持一致。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "EnforceTaggingRulesOnModification",
      "Effect": "Allow",
      "Action": [
        "s3vectors:TagResource"
      ],
      "Resource": "arn:aws::s3vectors:us-west-2:111122223333:bucket/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/project": "${aws:PrincipalTag/project}"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": [
            "project",
            "environment",
            "owner",
            "cost-center"
          ]
        }
      }
    }
  ]
}
```

#### 1.4：使用 `s3vectors:VectorBucketTag` 条件键
<a name="using-vectorbuckettag-condition-key"></a>

在此 IAM 策略中，仅当向量存储桶具有标签键 `Environment` 和标签值 `Production` 时，条件语句才允许访问向量存储桶和向量索引的操作。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessToTaggedBucket",
      "Effect": "Allow",
      "Action": "*",
      "Resource": "arn:aws::s3vectors:us-west-2:111122223333:bucket/*",
      "Condition": {
        "StringEquals": {
          "s3vectors:VectorBucketTag/Environment": "Production"
        }
      }
    }
  ]
}
```

# 管理用于向量存储桶的标签
<a name="managing-tags-vector-buckets"></a>

您可以使用 Amazon S3 控制台、AWS Command Line Interface（AWS CLI）、AWS SDK 或以下 S3 API 为 S3 向量存储桶添加或管理标签：[TagResource](https://docs.aws.amazon.com/)、[UntagResource](https://docs.aws.amazon.com/) 和 [ListTagsForResource](https://docs.aws.amazon.com/)。有关更多信息，请参阅：

**Topics**
+ [

# 创建带有标签的向量存储桶
](creating-vector-buckets-with-tags.md)
+ [

# 为向量存储桶添加标签
](adding-tag-vector-bucket.md)
+ [

# 查看向量存储桶标签
](viewing-vector-bucket-tags.md)
+ [

# 从向量存储桶删除标签
](deleting-tag-vector-bucket.md)

# 创建带有标签的向量存储桶
<a name="creating-vector-buckets-with-tags"></a>

您可以在创建 Amazon S3 向量存储桶时为其添加标签。在向量存储桶上使用标签时，除了标准 S3 API 请求费率之外，没有任何其他费用。有关更多信息，请参阅 [Amazon S3 定价](https://docs.aws.amazon.com/s3/pricing/)。有关为向量存储桶添加标签的更多信息，请参阅[将标签与 S3 向量存储桶结合使用](s3-vectors-tags.md)。

## 权限
<a name="bucket-tags-permissions"></a>

要创建带有标签的向量存储桶，您必须具有以下权限：
+ `s3vectors:CreateVectorBucket`
+ `s3vectors:TagResource`

## 错误故障排除
<a name="bucket-tags-troubleshooting"></a>

如果您在尝试创建带有标签的向量存储桶时遇到错误，可以执行以下操作：
+ 验证您是否具有创建向量存储桶并向其添加标签所需的[权限](#bucket-tags-permissions)。
+ 检查 IAM 用户策略，了解是否存在任何基于属性的访问权限控制（ABAC）条件。您可能需要仅使用特定的标签键和值为向量存储桶添加标签。有关更多信息，请参阅 [使用标签进行基于属性的访问权限控制（ABAC）](tagging.md#using-tags-for-abac)。

## Steps
<a name="bucket-tags-steps"></a>

您可以使用 Amazon S3 控制台、AWS Command Line Interface（AWS CLI）、Amazon S3 REST API 和 AWS SDK 来创建应用了标签的向量存储桶。

### 使用 S3 控制台
<a name="bucket-tags-console"></a>

**使用 Amazon S3 控制台创建带有标签的向量存储桶**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

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

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

1. 像往常一样创建一个向量存储桶；请参阅[创建向量存储桶](s3-vectors-buckets-create.md)。

1. 在**创建向量存储桶**页面上，**标签**是创建新向量存储桶时的一个选项。

1. 输入向量存储桶的名称。

1. 选择**添加新标签**以打开标签编辑器并输入标签键值对。标签键是必需的，但值是可选的。

1. 要添加其它标签，请再次选择**添加新标签**。最多可输入 50 个标签键值对。

1. 在您完成为新的向量存储桶指定选项后，选择**创建向量存储桶**。

### 使用 REST API
<a name="bucket-tags-api"></a>

有关 Amazon S3 REST API 支持创建带有标签的向量存储桶的相关信息，请参阅《Amazon S3 Vectors API 参考》**中的以下部分：

[CreateVectorBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_CreateVectorBucket.html)

### 使用 AWS CLI
<a name="bucket-tags-cli"></a>

要安装 AWS CLI，请参阅 *AWS Command Line Interface 用户指南*中的[安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

以下 CLI 示例说明如何使用 AWS CLI 创建带有标签的向量存储桶。要使用该命令，请将*用户输入占位符* 替换为您自己的信息。

创建向量存储桶时，必须提供配置详细信息并使用以下命名约定：`example-vector-bucket`

```
aws s3vector create-vector-bucket --vector-bucket-name acc-bucket \
  --tags Department=Accounting,Stage=Prod
```

# 为向量存储桶添加标签
<a name="adding-tag-vector-bucket"></a>

您可以为 Amazon S3 向量存储桶添加标签并修改这些标签。在向量存储桶上使用标签时，除了标准 S3 API 请求费率之外，没有任何其他费用。有关更多信息，请参阅 [Amazon S3 定价](https://docs.aws.amazon.com/s3/pricing/)。有关为向量存储桶添加标签的更多信息，请参阅[将标签与 S3 向量存储桶结合使用](s3-vectors-tags.md)。

## 权限
<a name="add-bucket-tag-permissions"></a>

要为向量存储桶添加标签，您必须具有以下权限：
+ `s3vectors:TagResource`

## 错误故障排除
<a name="add-bucket-tag-troubleshooting"></a>

如果您在尝试为向量存储桶添加标签时遇到错误，可以执行以下操作：
+ 验证您是否具有为向量存储桶添加标签所需的[权限](#add-bucket-tag-permissions)。
+ 如果您尝试添加以 AWS 保留前缀 `aws:` 开头的标签键，请更改标签键并重试。

## Steps
<a name="add-bucket-tag-steps"></a>

您可以使用 Amazon S3 控制台、AWS Command Line Interface（AWS CLI）、Amazon S3 REST API 和 AWS SDK 为向量存储桶添加标签。

### 使用 S3 控制台
<a name="add-bucket-tag-console"></a>

**使用 Amazon S3 控制台为向量存储桶添加标签**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

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

1. 选择向量存储桶名称。

1. 选择**属性**选项卡。

1. 滚动到**标签**部分，然后选择**添加新标签**。

1. 这会打开**添加标签**页面。最多可以输入 50 个标签键值对。

1. 如果您添加的新标签与现有标签具有相同的键名称，则新标签的值将覆盖现有标签的值。

1. 还可以在此页面上编辑现有标签的值。

1. 添加标签后，选择**保存更改**。

### 使用 REST API
<a name="add-bucket-tag-api"></a>

有关 Amazon S3 REST API 支持为向量存储桶添加标签的相关信息，请参阅《Amazon S3 Vectors API 参考》**中的以下部分：

[TagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_TagResource.html)

### 使用 AWS CLI
<a name="add-bucket-tag-cli"></a>

要安装 AWS CLI，请参阅 *AWS Command Line Interface 用户指南*中的[安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

以下 CLI 示例说明如何使用 AWS CLI 为向量存储桶添加标签。要使用该命令，请将*用户输入占位符* 替换为您自己的信息。

```
aws s3vectors tag-resource \
--resource-arn arn:aws:s3vectors:us-east-1:012345678900:bucket/acc-bucket \
--tags Stage=Prod,CostCenter=Marketing
```

# 查看向量存储桶标签
<a name="viewing-vector-bucket-tags"></a>

您可以查看或列出应用于 Amazon S3 向量存储桶的标签。有关为向量存储桶添加标签的更多信息，请参阅[将标签与 S3 向量存储桶结合使用](s3-vectors-tags.md)。

## 权限
<a name="view-bucket-tag-permissions"></a>

要查看应用于向量存储桶的标签，您必须具有以下权限：
+ `s3vectors:ListTagsForResource`

## 错误故障排除
<a name="view-bucket-tag-troubleshooting"></a>

如果您在尝试列出或查看向量存储桶的标签时遇到错误，可以执行以下操作：
+ 验证您是否具有查看或列出向量存储桶的标签所需的[权限](#view-bucket-tag-permissions)。

## Steps
<a name="view-bucket-tag-steps"></a>

您可以使用 Amazon S3 控制台、AWS Command Line Interface（AWS CLI）、Amazon S3 REST API 和 AWS SDK 来查看应用于向量存储桶的标签。

### 使用 S3 控制台
<a name="view-bucket-tag-console"></a>

**使用 Amazon S3 控制台查看应用于向量存储桶的标签**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

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

1. 选择向量存储桶名称。

1. 选择**属性**选项卡。

1. 滚动至**标签**部分，以查看应用于向量存储桶的所有标签。

1. 默认情况下，**标签**部分显示用户定义的标签。您可以选择 AWS 生成的标签选项卡来查看 AWS 服务应用于向量存储桶的标签。

### 使用 REST API
<a name="view-bucket-tag-api"></a>

有关 Amazon S3 REST API 支持查看应用于向量存储桶的标签的相关信息，请参阅《Amazon Simple Vectors API 参考》中的以下部分：

[ListTagsforResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_ListTagsForResource.html)

### 使用 AWS CLI
<a name="view-bucket-tag-cli"></a>

要安装 AWS CLI，请参阅 *AWS Command Line Interface 用户指南*中的[安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

以下 CLI 示例说明如何查看应用于向量存储桶的标签。要使用该命令，请将*用户输入占位符* 替换为您自己的信息。

```
aws s3vectors list-tags-for-resource \ 
--resource-arn arn:aws:s3vectors:us-east-1:012345678900:bucket/acc-bucket
```

# 从向量存储桶删除标签
<a name="deleting-tag-vector-bucket"></a>

您可以从 S3 向量存储桶删除标签。AWS 标签是用于保存有关资源（在本例中为 Amazon S3 向量存储桶）的元数据的键值对。有关为向量存储桶添加标签的更多信息，请参阅[将标签与 S3 向量存储桶结合使用](s3-vectors-tags.md)。

**注意**  
如果您删除某个标签，但后来得知该标签用于跟踪成本或用于访问权限控制，则可以将该标签重新添加到向量存储桶。

## 权限
<a name="delete-bucket-tag-permissions"></a>

要从向量存储桶删除标签，您必须具有以下权限：
+ `s3vectors:UntagResource`

## 错误故障排除
<a name="delete-bucket-tag-troubleshooting"></a>

如果在尝试从向量存储桶删除标签时遇到错误，可以执行以下操作：
+ 验证您是否具有从向量存储桶删除标签所需的[权限](#delete-bucket-tag-permissions)。

## Steps
<a name="delete-bucket-tag-steps"></a>

您可以使用 Amazon S3 控制台、AWS Command Line Interface（AWS CLI）、Amazon S3 REST API 和 AWS SDK 从向量存储桶删除标签。

### 使用 S3 控制台
<a name="delete-bucket-tag-console"></a>

**使用 Amazon S3 控制台从向量存储桶删除标签**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

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

1. 选择向量存储桶名称。

1. 选择**属性**选项卡。

1. 滚动到**标签**部分，然后选中要删除的一个或多个标签旁边的复选框。

1. 选择**删除**。

1. 将显示**删除用户定义的标签**弹出窗口，要求您确认删除所选的一个或多个标签。

1. 选择**删除**以确认。

### 使用 REST API
<a name="delete-bucket-tag-api"></a>

有关 Amazon S3 REST API 支持从向量存储桶删除标签的相关信息，请参阅《Amazon S3 Vectors API 参考》**中的以下部分：

[UntagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_UntagResource.html)

### 使用 AWS CLI
<a name="delete-bucket-tag-cli"></a>

要安装 AWS CLI，请参阅 *AWS Command Line Interface 用户指南*中的[安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

下面的 CLI 示例说明如何使用 AWS CLI 从向量存储桶删除标签。要使用该命令，请将*用户输入占位符* 替换为您自己的信息。

```
aws s3vectors untag-resource \
--resource-arn arn:aws:s3vectors:us-east-1:012345678900:bucket/acc-bucket \
--tag-keys CostCenter Department
```