

# 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 Billing and Cost Management でベクトルインデックスタグ別にストレージコストを追跡します。詳細については、「[コスト配分のタグを使用する](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 ポリシーでは、このポリシーを持つユーザーまたはロールは、ベクトルインデックスの作成リクエストでタグキー `project` とタグ値 `Trinity` を使用してベクトルインデックスにタグを付ける場合にのみ、S3 ベクトルインデックスを作成できます。また、`TagResource` リクエストにタグのキーと値のペア `project:Trinity` が含まれている限り、既存の S3 ベクトルインデックスのタグを追加または変更できます。このポリシーは、ベクトルインデックスまたはそのオブジェクトに対する読み取り、書き込み、または削除のアクセス許可を付与しません。

```
{
  "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` の 4 つのタグのみが、これらのベクトルインデックスに対して許可されます。これにより、タグガバナンスの適用、不正なタグ変更の防止、およびベクトルインデックス間でのタグ付けスキーマの一貫性の維持が可能になります。

```
{
  "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}}"
          ]
        }
      }
    }
  ]
}
```