

# S3 Vectors 中的身份和访问权限管理
<a name="s3-vectors-access-management"></a>

S3 Vectors 中的访问权限管理遵循 Amazon 安全最佳实践，并提供多层控制措施，以确保只有经过授权的用户和应用程序才能访问向量数据。该服务与 IAM 集成，并同时支持基于身份的策略和基于资源的策略，使您能够灵活地在整个组织中构建和管理权限。

## 对请求进行身份验证和授权
<a name="s3-vectors-authenticating-authorizing"></a>

S3 Vectors 使用 Amazon 标准身份验证和授权机制来保护对向量存储桶及其内容的访问权限。对 S3 Vectors 的每个请求都必须使用有效的 Amazon 凭证进行身份验证，并且该服务根据基于身份的策略、基于资源的策略和任何适用的服务控制策略的组合来评估权限。

当客户端使用 Amazon 凭证（访问密钥、来自 Amazon STS 的临时凭证或 IAM 角色）向 S3 Vectors 发出请求时，身份验证过程就开始了。该服务会验证这些凭证，然后根据请求的操作和目标资源，评估与经过身份验证的身份关联的权限。此评估过程会考虑多种策略类型，并应用最低权限原则来确定是应该支持还是拒绝请求。

S3 Vectors 中的授权在多个粒度级别上运行。可以在向量存储桶级别、单个向量索引级别甚至索引中的特定操作上控制访问权限。这种分层权限模型可让您实施符合组织结构和数据治理要求的复杂访问权限控制方案。

## 为向量存储桶定义的资源类型
<a name="s3-vectors-resource-types"></a>

S3 Vectors 定义了可以在 IAM 策略和基于资源的策略中引用的特定资源类型。要创建有效的访问权限控制策略来为正确的用户和应用程序提供适当的访问权限级别，务必了解这些资源类型。

下表描述了 S3 Vectors 中可用的资源类型。


**S3 Vectors 中可用的资源类型**  

| 资源类型 | ARN 格式 | 说明 | 
| --- | --- | --- | 
| VectorBucket | arn:aws:s3vectors:region:123456789012:bucket/bucket-name | 表示向量存储桶并用于存储桶级别的操作，例如创建、删除或配置存储桶 | 
| Index | arn:aws:s3vectors:region:123456789012:bucket/bucket-name/index/index-name | 表示存储桶中的向量索引并用于索引特定的操作，例如查询向量或管理索引内容 | 

## 向量存储桶的策略操作
<a name="s3-vectors-policy-actions"></a>

S3 Vectors 提供了一组全面的策略操作，这些操作与您可以对向量存储桶和索引执行的各种操作相对应。这些操作旨在提供对谁可以执行特定操作的精细控制，使您能够有效地实施最低权限原则。

下表列出了 S3 Vectors 资源的所有可用的策略操作。


**S3 Vectors 资源的策略操作**  

| 资源类型 | API 操作 | 策略操作 | 策略操作的描述 | 访问级别 | 条件键 | 
| --- | --- | --- | --- | --- | --- | 
| 账户 | [ListVectorBuckets](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_ListVectorBuckets.html) | s3vectors:ListVectorBuckets | 授予列出账户和区域中的所有向量存储桶的权限 | 列表 |  | 
| VectorBucket | [CreateVectorBucket](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_CreateVectorBucket.html) | s3vectors:CreateVectorBucket | 授予创建具有指定配置的新向量存储桶的权限 | 写入 | s3vectors:sseType、s3vectors:kmsKeyArn | 
| VectorBucket | [GetVectorBucket](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_GetVectorBucket.html) | s3vectors:GetVectorBucket | 授予检索向量存储桶属性和配置的权限 | 读取 |  | 
| VectorBucket | [DeleteVectorBucket](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_DeleteVectorBucket.html) | s3vectors:DeleteVectorBucket | 授予删除空的向量存储桶的权限 | 写入 |  | 
| VectorBucket | [ListIndexes](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_ListIndexes.html) | s3vectors:ListIndexes | 授予列出向量存储桶中的所有索引的权限 | 列表 |  | 
| VectorBucket | [PutVectorBucketPolicy](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_PutVectorBucketPolicy.html) | s3vectors:PutVectorBucketPolicy | 授予对向量存储桶应用或更新基于资源的策略的权限 | 权限管理 |  | 
| VectorBucket | [GetVectorBucketPolicy](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_GetVectorBucketPolicy.html) | s3vectors:GetVectorBucketPolicy | 授予检索附加到向量存储桶的基于资源的策略的权限 | 读取 |  | 
| VectorBucket | [DeleteVectorBucketPolicy](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_DeleteVectorBucketPolicy.html) | s3vectors:DeleteVectorBucketPolicy | 授予从向量存储桶移除基于资源的策略的权限 | 权限管理 |  | 
| Index | [CreateIndex](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_CreateIndex.html) | s3vectors:CreateIndex | 授予创建具有指定维度和元数据配置的新向量索引的权限 | 写入 |  | 
| Index | [GetIndex](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_GetIndex.html) | s3vectors:GetIndex | 授予检索向量索引属性和配置的权限 | 读取 |  | 
| Index | [DeleteIndex](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_DeleteIndex.html) | s3vectors:DeleteIndex | 授予删除向量索引及其所有内容的权限 | 写入 |  | 
| Index | [QueryVectors](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_QueryVectors.html) | （必需）s3vectors:QueryVectors | 授予对索引中的向量执行相似性查询的权限。  **仅使用 `s3vectors:QueryVectors`**，就可以检索近似最近邻的向量键及其与查询向量的计算距离。仅当未设置任何元数据筛选条件且未请求元数据时（通过将 `returnMetadata` 参数设置为 false 或未指定），此权限才足够。 | 读取 |  | 
|  |  | （有条件需要）：s3vectors:GetVectors | 如果您设置元数据筛选条件，在请求中将 `returnMetadata` 设置为 true，则是必需的。  **同时使用 `s3vectors:QueryVectors` 和 `s3vectors:GetVectors`**，您可以使用元数据条件来筛选结果，并检索向量键及其关联数据、元数据以及与查询向量的计算距离。 | 读取 |  | 
| Index | [PutVectors](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_PutVectors.html) | s3vectors:PutVectors | 授予在索引中添加或更新向量的权限 | 写入 |  | 
| Index | [GetVectors](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_GetVectors.html) | s3vectors:GetVectors | 授予通过向量键检索特定向量及其元数据的权限 | 读取 |  | 
| Index | [ListVectors](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_ListVectors.html) | （必需）s3vectors:ListVectors | 授予列出索引中的向量键的权限。 **仅使用 `s3vectors:ListVectors`**，当 `returnData` 和 `returnMetadata` 参数均为 false 或未指定时，您可以列出向量键。 | 读取 |  | 
|  |  | （有条件需要）：s3vectors:GetVectors | 如果您在请求中将 `returnData` 或 `returnMetadata` 参数设置为 true，则是必需的。  **同时使用 `s3vectors:ListVectors` 和 `s3vectors:GetVectors`**，您可以通过将 `returnData` 和 `returnMetadata` 设置为 true 来检索向量键及其关联的数据和元数据。 | 读取 |  | 
| Index | [DeleteVectors](https://docs.amazonaws.cn/AmazonS3/latest/API/API_S3VectorBuckets_DeleteVectors.html) | s3vectors:DeleteVectors | 授予删除索引中的特定向量的权限 | 写入 |  | 

可以通过多种方式组合这些操作，以创建符合特定访问要求的策略。例如，可以创建包含 `s3vectors:GetVectorBucket`、`s3vectors:ListIndexes`、`s3vectors:QueryVectors` 和 `s3vectors:GetVectors` 操作的只读策略，或者创建包含查询和向量检索权限、但不包含创建或删除索引等管理操作的策略。

## 向量存储桶的条件键
<a name="s3-vectors-condition-keys"></a>


**向量存储桶的条件键**  

|  | 条件键 | 描述 | Type | 
| --- | --- | --- | --- | 
| 1 | s3vectors:sseType | 通过服务器端加密类型来筛选访问权限。有效值：AES256 \$1 aws:kms | 字符串 | 
| 2 | s3vectors:kmsKeyArn | 按用于加密向量存储桶的密钥的 Amazon Amazon KMS 密钥 ARN 筛选访问权限 | ARN | 