将标签与 S3 向量存储桶结合使用 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将标签与 S3 向量存储桶结合使用

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

注意

在向量存储桶上使用标签时,除了标准 S3 API 请求费率之外,没有任何其他费用。有关更多信息,请参阅 Amazon S3 定价

将标签与向量存储桶结合使用的常用方法

使用 S3 向量存储桶上的标签可执行以下操作:

适用于 S3 向量存储桶的 ABAC

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

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

aws:ResourceTag/key-name

使用此键可将您在策略中指定的标签键/值对与附加到资源的键/值对进行比较。例如,您可能会要求只有在资源具有附加的标签键 Dept 和值 Marketing 时才允许访问该资源。有关更多信息,请参阅控制对 Amazon 资源的访问

aws:RequestTag/key-name

使用此键可将请求中传递的标签键/值对与您在策略中指定的标签对进行比较。例如,您可以检查请求是否包含标签键 Dept 并具有 Accounting 值。有关更多信息,请参阅在 Amazon 请求期间控制访问。您可以使用此条件键来限制可以在 TagResourceCreateVectorBucket API 操作期间传递哪些标签键值对。

aws:TagKeys

使用此键可将请求中的标签键与您在策略中指定的键进行比较。我们建议当使用策略来通过标签控制访问时,请使用 aws:TagKeys 条件键来定义允许的标签键。有关示例策略和更多信息,请参阅根据标签键控制访问。您可以使用标签创建 S3 向量存储桶。要在 CreateVectorBucket API 操作期间支持添加标签,您必须创建同时包含 s3vectors:TagResources3vectors:CreateVectorBucket 操作的策略。然后,您可以使用 aws:TagKeys 条件键来强制在 CreateVectorBucket 请求中使用特定的标签。

s3vectors:VectorBucketTag/tag-key

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

向量存储桶的 ABAC 策略示例

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

1.1:用于创建或修改具有特定标签的向量存储桶的 IAM 策略

在此 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:用于通过标签限制对向量存储桶的操作的向量存储桶策略

在此向量存储桶策略中,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 策略

在此 IAM 策略中,IAM 主体(用户或角色)只有在向量存储桶的 project 标签的值与主体的 project 标签的值匹配时,才会修改向量存储桶上的标签。对于这些向量存储桶,只允许使用在 aws:TagKeys 条件键中指定的四个标签 projectenvironmentownercost-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 条件键

在此 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" } } } ] }