

# 向量索引
<a name="s3-vectors-indexes"></a>

**注意**  
请仔细选择向量索引配置参数。创建向量索引后，无法更新向量索引名称、维度、距离指标或不可筛选的元数据键。要更改其中任何值，必须创建新的向量索引。

向量索引是向量存储桶中的资源，用于存储和组织向量数据，以实现高效的相似性搜索操作。创建向量索引时，可以指定距离指标（`Cosine` 或 `Euclidean`）、向量应具有的维度数，以及（可选）要在相似性查询期间从筛选中排除的元数据字段的列表。

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

每个向量索引都具有唯一的 Amazon 资源名称（ARN）。向量索引的 ARN 遵循以下格式：

```
arn:aws:s3vectors:region:account-id:bucket/bucket-name/index/index-name
```

## 向量索引命名要求
<a name="s3-vectors-indexes-naming"></a>
+ 向量索引名称在向量存储桶内必须是唯一的。
+ 向量索引名称的长度必须介于 3 到 63 个字符之间。
+ 有效字符为小写字母（a-z）、数字（0-9）、连字符（-）和点（.）。
+ 向量索引名称必须以字母或数字开头和结尾。

## 维度要求
<a name="s3-vectors-indexes-dimensions"></a>

维度是向量中值的数量。添加到索引的所有向量都必须正好具有这个数量的值。
+ 维度必须是 1 和 4096 之间的整数。
+ 维度越大，需要的存储空间就越多。

## 距离指标选项
<a name="s3-vectors-indexes-distance-metrics"></a>

距离指标指定如何计算向量间的相似性。创建向量嵌入时，请选择嵌入模型的建议距离指标以获得更准确的结果。
+ **余弦**：测量向量之间角度的余弦值。最适合归一化向量以及方向比幅度更重要时。
+ **欧几里得**：测量向量之间的直线距离。当方向和幅度都很重要时最适合。

## 不可筛选的元数据键
<a name="s3-vectors-indexes-metadata"></a>

元数据键支持您在存储和检索期间将其它信息作为键值对附加到向量。默认情况下，所有元数据都是可筛选的，因此可以使用它来筛选查询结果。但是，如果要使用向量来存储信息而不将其用于筛选，则可以将特定的元数据键指定为不可筛选。

与默认元数据键不同，这些键不能用作查询筛选条件。可以检索但无法搜索、查询或筛选不可筛选的元数据键。只有在找到索引后才能访问它。

不可筛选的元数据键支持您使用想要在搜索结果中检索、但不需要进行筛选的附加上下文来丰富向量。不可筛选的元数据键的一个常见示例是，当您将文本嵌入到向量中并希望将原始文本本身作为不可筛选的元数据包含在内时。这样，就可以在不增加可筛选元数据大小限制的情况下，将源文本与向量搜索结果一起返回。其它示例包括存储创建时间戳、源 URL 或纯粹供参考的描述性信息。检索向量时可以访问不可筛选的元数据键，但是与默认的元数据键不同，这些键不能用作查询筛选条件。

不可筛选的元数据键的要求如下。
+ 不可筛选的元数据键在向量索引中必须是唯一的。
+ 不可筛选的元数据键的长度必须为 1 到 63 个字符。
+ 创建向量索引后，无法修改不可筛选的元数据键。
+ S3 Vectors 支持每个索引最多 10 个不可筛选的元数据键。

有关不可筛选的元数据键的更多信息，请参阅[不可筛选的元数据](s3-vectors-metadata-filtering.md#s3-vectors-metadata-filtering-non-filterable)。

**Topics**
+ [向量索引命名要求](#s3-vectors-indexes-naming)
+ [维度要求](#s3-vectors-indexes-dimensions)
+ [距离指标选项](#s3-vectors-indexes-distance-metrics)
+ [不可筛选的元数据键](#s3-vectors-indexes-metadata)
+ [在向量存储桶中创建向量索引](s3-vectors-create-index.md)
+ [列出向量索引](s3-vectors-index-list.md)
+ [删除向量索引](s3-vectors-index-delete.md)
+ [将标签与 S3 向量索引结合使用](vector-index-tagging.md)

# 在向量存储桶中创建向量索引
<a name="s3-vectors-create-index"></a>

**注意**  
请仔细选择向量索引配置参数。创建向量索引后，无法更新向量索引名称、维度、距离指标或不可筛选的元数据键。要更改其中任何值，必须创建新的向量索引。

向量索引是向量存储桶中的一种资源，用于存储和组织向量数据，以实现高效的相似性搜索。创建向量索引时，可以定义该索引中的所有向量必须共享的特征，例如维度、用于计算相似性的距离指标以及（可选）不可筛选的元数据键。您也可以选择在创建索引时为向量索引配置专用的加密设置和标签。有关向量索引命名要求、维度要求、距离指标选项和不可筛选的元数据键的更多信息，请参阅[限制和局限性](s3-vectors-limitations.md)。有关为向量索引设置加密配置的更多信息，请参阅 [S3 Vectors 中的数据保护和加密](s3-vectors-data-encryption.md)。有关设置标签的更多信息，请参阅[将标签与 S3 向量存储桶结合使用](s3-vectors-tags.md)。

 向量索引必须在现有的向量存储桶中创建，并且需要特定的配置参数，这些参数在创建后无法修改。

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

**创建向量索引**

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

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

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

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

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

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

1. 对于**维度**，输入每个向量中的值数量。
**注意**  
**维度**的值决定了每个向量将包含多少个数值。
添加到此索引的所有向量都必须正好具有这个数量的值。
维度必须介于 1 到 4096 之间。
维度越大，需要的存储空间就越多。
根据嵌入模型的输出维度进行选择。

   有关维度要求的更多信息，请参阅[限制和局限性](s3-vectors-limitations.md)。

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

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

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

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

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

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

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

1. 在**加密**下，选择**指定加密类型**。您可以选择**使用用于加密的存储桶设置**或覆盖向量索引的加密设置。如果您覆盖了存储桶级别的设置，则可以选择将向量索引的加密类型指定为**具有 AWS Key Management Service 密钥的服务器端加密（SSE-KMS）**或**具有 Amazon S3 托管式密钥的服务器端加密（SSE-S3）**。有关为向量索引设置加密配置的更多信息，请参阅 [S3 Vectors 中的数据保护和加密](s3-vectors-data-encryption.md)。

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

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

## 使用 AWS CLI
<a name="s3-vectors-create-index-cli"></a>

要在向量存储桶中创建向量索引，请使用以下示例命令并将 `user input placeholders` 替换为您自己的信息。

**示例 1：创建带有不可筛选的元数据键的向量索引**

```
aws s3vectors create-index \
  --vector-bucket-name "amzn-s3-demo-vector-bucket" \
  --index-name "idx" \
  --data-type "float32" \
  --dimension 1 \
  --distance-metric "cosine" \
  --metadata-configuration '{"nonFilterableMetadataKeys":["nonFilterableKey1"]}'
```

**示例 2：创建不带不可筛选的元数据键的向量索引**

```
aws s3vectors create-index \
  --vector-bucket-name "amzn-s3-demo-vector-bucket" \
  --index-name "idx2" \
  --data-type "float32" \
  --dimension 4096 \
  --distance-metric "euclidean"
```

此外，使用 `GetVectors`、`ListVectors` 或 `QueryVectors` API 操作以相同的方式检索所有元数据（包括可筛选和不可筛选）。以下 CLI 命令显示如何检索带有元数据（包括不可筛选的元数据）的向量。

请求示例：

```
aws s3vectors get-vectors \
  --vector-bucket-name "amzn-s3-demo-vector-bucket" \
  --index-name "idx" \
  --keys '["vec1", "vec3"]' \
  --return-data \
  --return-metadata \
```

响应示例：

```
{
    "vectors": [
        {
            "key": "vec1",
            "data": {
                "float32": [
                    0.10000000149011612,
                    0.20000000298023224,
                    0.30000001192092896,
                    0.4000000059604645,
                    0.5
                ]
            },
            "metadata": {
                "category": "test",
                "text": "First vector"
            }
        },
        {
            "key": "vec3",
            "data": {
                "float32": [
                    0.6000000238418579,
                    0.699999988079071,
                    0.800000011920929,
                    0.8999999761581421,
                    1.0
                ]
            },
            "metadata": {
                "text": "Third vector",
                "category": "test"
            }
        }
    ]
}
```

响应将包括与向量关联的所有元数据，无论在创建索引期间将其指定为可筛选还是不可筛选。

## 使用 AWS SDK
<a name="s3-vectors-create-index-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 index "movies" in the vector bucket "media-embeddings" without non-filterable metadata keys
s3vectors.create_index(
    vectorBucketName="media-embeddings",
    indexName="movies",
    dimension=3,
    distanceMetric="cosine",
    dataType = "float32"
)


#Create a vector index "movies" in the vector bucket "media-embeddings" with non-filterable metadata keys
s3vectors.create_index(
    vectorBucketName="media-embeddings",
    indexName="movies",
    dimension=3,
    distanceMetric="cosine",
    dataType = "float32",
    metadataConfiguration= {"nonFilterableMetadataKeys": ["nonFilterableMetadataKey1"]}
)
```

------

# 列出向量索引
<a name="s3-vectors-index-list"></a>

可以查看向量存储桶中的所有向量索引。列出操作支持基于前缀的筛选，有助于您在存储桶中有许多索引时找到特定的索引。有关 `ListIndexes`、前缀限制和响应限制的更多信息，请参阅《Amazon Simple Storage Service API Reference》中的 [ListIndexes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_ListIndexes.html)。

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

前缀搜索支持您列出以特定前缀开头的索引，从而可以更轻松地整理和查找相关的向量索引。当您使用将相关索引分组在一起的命名约定时，这特别有用：
+ **按数据类型：**`text-embeddings-`、`image-features-`、`audio-vectors-`
+ **按模型：**`model1-embeddings-`、`model2-vectors-`、`custom-model-`
+ **按使用案例：**`search-index-`、`recommendation-`、`similarity-`
+ **按环境：**`prod-vectors-`、`staging-vectors-`、`dev-vectors-`

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

**列出向量索引**

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

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

1. 在向量存储桶列表中，选择存储桶的名称，该存储桶包含您要查看的索引。

1. 控制台会显示存储桶中所有向量索引的完整列表，包括：
   + **名称**：每个索引的名称。
   + **创建日期**：创建索引的时间。
   + **Amazon 资源名称（ARN）**：每个索引的 Amazon 资源名称（ARN）。

**筛选列表**

1. 在索引列表上方的搜索框中输入索引名称或前缀。使用前缀来查找相关索引的分组。

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

### 使用 AWS CLI
<a name="s3-vectors-list-cli"></a>

使用以下示例命令，并将*用户输入占位符*替换为您自己的信息。

**列出向量存储桶中带有特定前缀的索引**

请求示例：

```
aws s3vectors list-indexes \
  --vector-bucket-name "amzn-s3-demo-bucket" \
  --prefix "idx" \
  --max-results 1
```

响应示例：

```
{
    "nextToken": "lObb29ZkzxMGtBXs97Rkbs26xdtKemu4brsnq2jX8DCocADkILv5cRphemXS3PXXFnQBihQBmESgEeKaGA",
    "indexes": [
        {
            "vectorBucketName": "amzn-s3-demo-bucket",
            "indexName": "idx",
            "indexArn": "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket/index/idx",
            "creationTime": "2025-06-12T15:50:23+00:00"
        }
    ]
}
```

**使用分页列出索引**

请求示例：

```
aws s3vectors list-indexes \
  --vector-bucket-name "amzn-s3-demo-bucket" \
  --prefix "idx" \
  --next-token "lObb29ZkzxMGtBXs97Rkbs26xdtKemu4brsnq2jX8DCocADkILv5cRphemXS3PXXFnQBihQBmESgEeKaGA"
```

响应示例：

```
{
    "indexes": [
        {
            "vectorBucketName": "amzn-s3-demo-bucket",
            "indexName": "idx2",
            "indexArn": "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket/index/idx2",
            "creationTime": "2025-06-12T15:45:37+00:00"
        }
    ]
}
```

### 使用 AWS SDK
<a name="s3-vectors-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 indexes in your vector bucket
response = s3vectors.list_indexes(vectorBucketName="media-embeddings")
indexes = response["indexes"]
print(indexes)
```

------

# 删除向量索引
<a name="s3-vectors-index-delete"></a>

如果不再需要向量索引，可以将其删除。此操作永久移除索引和存储在其中的所有向量。

**重要**  
删除向量索引时，需要了解以下事项：  
即使向量索引包含向量，也可以删除向量索引。
存储在索引中的所有向量都将被永久删除
与这些向量关联的所有元数据都将永久丢失
操作无法撤消或反转
对索引的任何正在进行的操作都将立即失败
查询索引的应用程序将收到错误
索引名称可供在存储桶中重用

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

在删除向量索引之前，请验证向量索引。有关如何检查索引详细信息的更多信息，请参阅《Amazon S3 API Reference》**中的 [GetIndex](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetIndex.html)。有关如何列出索引内的向量以查看将要删除的内容的更多信息，请参阅[列出向量索引](s3-vectors-index-list.md)。

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

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

有关如何验证是否索引已删除的更多信息，请参阅[列出向量索引](s3-vectors-index-list.md)。

## 使用 AWS SDK
<a name="sdk-delete-vector-index"></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 index
response = s3vectors.delete_index(
    vectorBucketName="media-embeddings",
    indexName="movies")
```

------

# 将标签与 S3 向量索引结合使用
<a name="vector-index-tagging"></a>

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

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

## 将标签与向量索引结合使用的常用方法
<a name="common-ways-tags-vector-indexes"></a>

使用 S3 向量索引上的标签执行以下操作：
+ **成本分配**：在 AWS 账单与成本管理中按向量索引标签跟踪存储成本。有关更多信息，请参阅 [将标签用于成本分配](tagging.md#using-tags-for-cost-allocation)。
+ **基于属性的访问权限控制（ABAC）**：根据 S3 向量索引的标签扩展访问权限并授予对这些索引的访问权限。有关更多信息，请参阅 [使用标签进行基于属性的访问权限控制（ABAC）](tagging.md#using-tags-for-abac)。

**注意**  
您可以将相同的标签同时用于成本分配和访问权限控制。

### 适用于 S3 向量索引的 ABAC
<a name="abac-vector-indexes"></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` 和 `CreateIndex` 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` 请求中使用特定的标签。

### 适用于向量索引的示例 ABAC 策略
<a name="example-abac-policies-vector-indexes"></a>

请参阅以下适用于 Amazon S3 向量索引的示例 ABAC 策略。

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

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

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

#### 1.2：用于修改现有资源上的标签以维护标签治理的 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"
          ]
        }
      }
    }
  ]
}
```

# 管理向量索引的标签
<a name="managing-tags-vector-indexes"></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-indexes-with-tags.md)
+ [为向量索引添加标签](adding-tag-vector-index.md)
+ [查看向量索引标签](viewing-vector-index-tags.md)
+ [从向量索引删除标签](deleting-tag-vector-index.md)

# 创建带有标签的向量索引
<a name="creating-vector-indexes-with-tags"></a>

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

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

要创建带有标签的向量索引，您必须具有以下权限：
+ `s3vectors:CreateIndex`
+ `s3vectors:TagResource`

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

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

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

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

### 使用 S3 控制台
<a name="index-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-create-index.md)。

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

1. 输入向量索引的名称。

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

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

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

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

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

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

### 使用 AWS CLI
<a name="index-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-index`

```
aws s3vectors create-index --vector-bucket-name acc-bucket --data-type "float32" \
 --index-name accounts-index --dimension 1024 --distance-metric euclidean \
 --tags Department=Accounting,Stage=Prod
```

# 为向量索引添加标签
<a name="adding-tag-vector-index"></a>

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

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

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

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

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

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

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

### 使用 S3 控制台
<a name="add-index-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-index-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-index-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/index/accounts-index \
--tags Stage=Prod,CostCenter=Marketing
```

# 查看向量索引标签
<a name="viewing-vector-index-tags"></a>

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

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

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

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

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

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

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

### 使用 S3 控制台
<a name="view-index-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-index-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-index-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/index/accounts-index
```

# 从向量索引删除标签
<a name="deleting-tag-vector-index"></a>

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

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

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

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

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

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

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

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

### 使用 S3 控制台
<a name="delete-index-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-index-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-index-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/index/accounts-index \
--tag-keys CostCenter Department
```