

# S3 Vectors のリソースベースのポリシーの例
<a name="s3-vectors-resource-based-policies"></a>

リソースベースのポリシーをリソースにアタッチします。ベクトルバケットのリソースベースのポリシーを作成できます。S3 Vectors のリソースベースのポリシーは、ベクトルバケットに直接アタッチする JSON の標準 AWS ポリシー形式を使用して、バケットとそのコンテンツへのアクセスを制御します。

ユーザー、グループ、またはロールにアタッチされているアイデンティティベースのポリシーとは異なり、リソースベースのポリシーはリソース自体 (ベクトルバケット) にアタッチされ、他の AWS アカウントのプリンシパルにアクセス許可を付与できます。これにより、ベクトルデータを組織の境界を越えて共有したり、アクセスする特定のリソースに基づいてきめ細かなアクセスコントロールを実装したりする必要があるシナリオに最適です。

リソースベースのポリシーはアイデンティティベースのポリシーと組み合わせて評価され、有効なアクセス許可は該当するすべてのポリシーの結合によって決定されます。つまり、プリンシパルがアクションを実行するには、リソースベースのポリシーが明示的にアクセス許可を付与しない限り、(ユーザー/ロールにアタッチされた) アイデンティティベースのポリシーと (バケットにアタッチされた) リソースベースのポリシーの両方からのアクセス許可が必要です。

## 例 1: クロスアカウントアクセスポリシー
<a name="s3-vectors-resource-based-policies-example1"></a>

このポリシーは、異なる AWS アカウントのユーザーに特定のアクセス許可を付与する方法を示しています。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossAccountBucketAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam:123456789012:role/Admin"
            },
            "Action": [
                "s3vectors:CreateIndex",
                "s3vectors:ListIndexes",
                "s3vectors:QueryVectors",
                "s3vectors:PutVectors",
                "s3vectors:DeleteIndex"
            ],
            "Resource": [
                "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket/*",
                "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket"
            ]
        }
    ]
}
```

## 例 2: ベクトルインデックスレベルのアクションを拒否する
<a name="s3-vectors-resource-based-policies-example2"></a>

このポリシーは、IAM ロールに対する特定のベクトルインデックスレベルのアクションを拒否する方法を示しています。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyIndexLevelActions",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam:123456789012:role/External-Role-Name"
            },
            "Action": [
                "s3vectors:QueryVectors",
                "s3vectors:PutVectors",
                "s3vectors:DeleteIndex",
                "s3vectors:GetVectors",
                "s3vectors:GetIndex",
                "s3vectors:DeleteVectors",
                "s3vectors:CreateIndex",
                "s3vectors:ListVectors"
            ],
            "Resource": "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket/*"
        }
    ]
}
```

## 例 3: ベクトルインデックスレベルとバケットレベルの両方で変更オペレーションを拒否する
<a name="s3-vectors-resource-based-policies-example3"></a>

このポリシーは、複数のリソースを指定して、ベクトルインデックスとバケットレベルのアクションの両方の変更リクエストを拒否する方法を示しています。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyModificationActionsAtBucketandIndexLevels",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam:123456789012:role/External-Role-Name"
            },
            "Action": [
                "s3vectors:CreateVectorBucket",
                "s3vectors:DeleteVectorBucket",
                "s3vectors:PutVectorBucketPolicy",
                "s3vectors:DeleteVectorBucketPolicy",                
                "s3vectors:CreateIndex",
                "s3vectors:DeleteIndex",
                "s3vectors:PutVectors",
                "s3vectors:DeleteVectors"
            ],
            "Resource": [
                "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket/*",
                "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket"
            ]
        }
    ]
}
```