S3 Vectors の VPC エンドポイント - Amazon Simple Storage Service

S3 Vectors の VPC エンドポイント

仮想プライベートクラウド (VPC) から S3 Vectors にアクセスするために、Amazon S3 は AWS PrivateLink (PrivateLink) を使用したインターフェイス VPC エンドポイントをサポートします。PrivateLink は、インターネットゲートウェイや NAT デバイスを必要とすることなく、VPC と S3 Vectors 間のプライベート接続を提供します。インターフェイスエンドポイントは、VPC 内のサブネットからプライベート IP アドレスが割り当てられた 1 つ以上の Elastic Network Interface (ENI) で表されます。インターフェイスエンドポイントを介した S3 Vectors へのリクエストは、AWS ネットワークに残ります。

AWS Direct Connect または AWS Virtual Private Network (AWS VPN) を通じて、オンプレミスのアプリケーションから VPC 内のインターフェイスエンドポイントにアクセスすることもできます。VPC をオンプレミスネットワークに接続する方法の詳細については、「AWS Direct Connect ユーザーガイド」および「AWS Site-to-Site VPN ユーザーガイド」を参照してください。インターフェイスエンドポイントに関する一般的な情報については、「AWS PrivateLink ユーザーガイド」の「インターフェイス VPC エンドポイントを使用して AWS サービスにアクセスする」を参照してください。

S3 Vectors で PrivateLink を使用すると、いくつかのセキュリティと運用上の利点があります。

  • セキュリティの強化: VPC と S3 Vectors 間のトラフィックは AWS ネットワーク内にとどまり、インターネットを経由しません。

  • ネットワークアーキテクチャの簡素化: インターネットゲートウェイ、NAT デバイス、VPN 接続を設定せずに S3 Vectors にアクセスします。

  • きめ細かなアクセスコントロール: VPC エンドポイントポリシーを使用して、エンドポイント経由でアクセスできるベクトルバケットとベクトルインデックスを制御します。

  • コンプライアンスサポート: 機密データのプライベートネットワーク接続を義務付ける規制要件を満たします。

VPC エンドポイントを作成すると、S3 Vectors はエンドポイント固有の 2 つのタイプの DNS 名 (リージョンおよびゾーン) を生成します。

S3 Vectors のインターフェイス VPC エンドポイントのリージョン別およびゾーン別 DNS 名は次のとおりです。

  • リージョン DNS 名: vpce-1a2b3c4d-5e6f.s3vectors.region.vpce.amazonaws.com - リージョン VPC エンドポイント DNS 名。常にプライベート IP アドレスを解決します。

  • ゾーン DNS 名: vpce-1a2b3c4d-5e6f-availability_zone_code.s3vectors.region.vpce.amazonaws.com - ゾーン固有の VPC エンドポイント DNS 名。常にプライベート IP アドレスを解決します。

VPC エンドポイントに対してプライベート DNS が有効になっている場合は、パブリックエンドポイント s3vectors.region.api.aws の DNS 名をエンドポイントサービスのプライベート DNS 名として使用することもできます。

S3 Vectors のリージョン、ゾーン、プライベート DNS エンドポイントは、AWS PrivateLink の IPv4, IPv6、およびデュアルスタック IP タイプをサポートします。詳細については、「AWS PrivateLink ガイド」の「IP アドレスタイプ」と「AWS サービスの DNS レコード IP タイプ」を参照してください。

VPC 内で IPv6 経由で S3 Vectors ベクトルインデックスおよびベクトルバケットにアクセスを試行する前に、以下の点について知っておく必要があります。

  • ベクトルへのアクセスに使用するクライアントと S3 Vectors クライアントの両方でデュアルスタックが有効になっている必要があります。

  • VPC セキュリティグループに IPv6 が設定されていない場合は、IPv6 トラフィックを許可するルールを設定する必要があります。詳細については、「VPC ユーザーガイド」の「ステップ 3: セキュリティグループルールを更新する」および「Amazon EC2 ユーザーガイド」の「セキュリティグループルールを設定する」を参照してください。

  • VPC に IPv6 CIDR が割り当てられていない場合は、VPC に IPv6 CIDR ブロックを手動で追加する必要があります。詳細については、「AWS PrivateLink ガイド」の「VPC の IPv6 サポートを追加する」を参照してください。

  • IP アドレスフィルタリング IAM ポリシーを使用する場合は、IPv6 アドレスを処理するように更新する必要があります。IAM でのアクセス許可管理の詳細については、「S3 Vectors での ID およびアクセス管理」を参照してください。

VPC コンソール、AWS CLI、AWS SDK、または AWS API を使用して、S3 Vectors の VPC インターフェイスエンドポイントを作成できます。

  1. VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで、[エンドポイント] を選択します。

  3. [エンドポイントの作成] を選択します。

  4. [Service category] (サービスカテゴリ) で、[AWS services] (のサービス) を選択します。

  5. [サービス] の場合は、s3vectors を検索し、com.amazonaws.region.s3vectors を選択します。

  6. [VPC] で、エンドポイントを作成する VPC を選択します。

  7. (オプション) [追加の設定][DNS 名を有効化] で、プライベート DNS 機能を有効にするかどうかを選択します。有効にすると、AWS SDK を介したリクエストなど、パブリックサービスエンドポイント (s3vectors.region.api.aws) を使用するリクエストは、パブリックエンドポイントではなく VPC エンドポイントに解決されます。

  8. [サブネット] には、エンドポイントネットワークインターフェイスの作成先となるサブネットを選択します。

  9. [IP アドレスタイプ] で、エンドポイントの IP アドレスタイプを選択します。

    • [IPv4]: エンドポイントネットワークインターフェイスに IPv4 アドレスを割り当てます。このオプションは、選択したすべてのサブネットに IPv4 アドレス範囲がある場合にのみサポートされます。

    • [IPv6]: エンドポイントネットワークインターフェイスに IPv6 アドレスを割り当てます。このオプションは、選択したすべてのサブネットが IPv6 のみのサブネットである場合にのみサポートされます。

    • [デュアルスタック]: エンドポイントネットワークインターフェイスに IPv4 と IPv6 両方のアドレスを割り当てます。このオプションは、選択したすべてのサブネットに IPv4 と IPv6 両方のアドレス範囲がある場合にのみサポートされます。

  10. [Security groups] (セキュリティグループ) で、エンドポイントネットワークインターフェイスに関連付けるセキュリティグループを選択します。

  11. (オプション) [ポリシー] では、VPC エンドポイントポリシーをアタッチして、エンドポイントを介した S3 ベクトルへのアクセスを制御できます。インターフェイスエンドポイント経由ですべての S3 Vectors リソースに対するすべてのプリンシパルによるすべての操作を許可するには、[フルアクセス] を選択します。アクセスを制限するには、[カスタム] を選択してポリシーを入力します。詳細については、「AWS PrivateLink ガイド」の「エンドポイントポリシーを使用して VPC エンドポイントへのアクセスを制御する」を参照してください。ポリシーをアタッチしない場合、デフォルトのポリシーではフルアクセスが許可されます。

  12. エンドポイントの作成 を選択します。

S3 Vectors の IPv4 と IPv6 の両方を返す新しい VPC エンドポイントを作成するには、次の CLI コマンドの例を使用します。詳細については、「create-vpc-endpoint」を参照してください。

aws ec2 create-vpc-endpoint \ --vpc-id vpc-12345678 \ --service-name com.amazonaws.region.s3vectors \ --vpc-endpoint-type Interface \ --subnet-ids subnet-12345678 subnet-87654321 \ --security-group-ids sg-12345678 \ --ip-address-type dualstack \ --private-dns-enabled

--private-dns-enabled パラメータは、プライベート DNS 機能を有効にします。有効にすると、s3vectors.region.api.aws へのリクエストは VPC エンドポイントを経由します。

VPC エンドポイントの作成の詳細については、「VPC ユーザーガイド」の「VPC エンドポイントの作成」を参照してください。

リソースベースのポリシーと同様に、VPC エンドポイントにエンドポイントポリシーをアタッチして、ベクトルインデックスとベクトルバケットへのアクセスを制御できます。エンドポイントポリシーの詳細については、「AWS PrivateLink ガイド」の「エンドポイントポリシーを使用して VPC エンドポイントへのアクセスを制御する」を参照してください。

次の VPC エンドポイントポリシーの例では、すべてのプリンシパルのすべての S3 Vectors オペレーションへのアクセスを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "s3vectors:*" ], "Resource": "*" } ] }

次のVPC エンドポイントポリシーの例では、特定のベクトルバケットへのアクセスを制限します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "s3vectors:GetVectorBucket", "s3vectors:ListIndexes", "s3vectors:GetIndex", "s3vectors:QueryVectors", "s3vectors:GetVectors" ], "Resource": [ "arn:aws:s3vectors:us-west-2:111122223333:bucket/amzn-s3-demo-vector-bucket", "arn:aws:s3vectors:us-west-2:111122223333:bucket/amzn-s3-demo-vector-bucket/*" ] } ] }

次の VPC エンドポイントポリシーの例では、aws:CurrentTime 条件キーを使用して営業時間内にのみアクセスを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3vectors:*", "Resource": "*", "Condition": { "DateGreaterThan": { "aws:CurrentTime": "08:00Z" }, "DateLessThan": { "aws:CurrentTime": "18:00Z" } } } ] }

S3 Vectors で VPC エンドポイントを使用する場合、サービス DNS 名または VPC エンドポイント DNS 名を使用するように S3 Vectors クライアントを設定できます。

SDK for Python

次の例は、VPC エンドポイントを使用するように SDK for Python (Boto3) で S3 Vectors クライアントを設定する方法を示しています。

import boto3 # Using service DNS name (requires private DNS feature enabled on VPC endpoint) s3vectors_client = boto3.client( 's3vectors', region_name='us-west-2', endpoint_url='https://s3vectors.us-west-2.api.aws' ) # Using VPC endpoint DNS name s3vectors_client = boto3.client( 's3vectors', region_name='us-west-2', endpoint_url='https://vpce-12345678.s3vectors.us-west-2.vpce.amazonaws.com' )

インターフェイス VPC エンドポイントで問題が発生した場合は、次のトラブルシューティング手順を検討してください。

  • DNS 解決: プライベート DNS を使用する場合、エンドポイントの DNS クエリが VPC CIDR 範囲内のプライベート IP アドレスに解決されていることを確認します。

  • セキュリティグループ: VPC エンドポイントに関連付けられたセキュリティグループが、VPC リソースからのインバウンド HTTPS トラフィック (ポート 443) を許可していることを確認します。

  • ルートテーブル: サブネットルートテーブルに、VPC エンドポイントからトラフィックをリダイレクトする可能性のある競合するルートがないことを確認します。

  • VPC エンドポイントポリシー: VPC エンドポイントポリシーで必要な S3 Vectors アクションとリソースが許可されていることを確認します。

  • クライアント設定: プライベート DNS 機能が無効になっている場合は、サービス DNS 名の代わりに VPC エンドポイント DNS 名を使用するように S3 Vectors クライアントを設定します。

CloudTrail NetworkActivity イベントログを使用して、S3 Vectors VPC エンドポイントの使用状況をモニタリングできます。

S3 Vectors ログ作成の詳細については、「S3 Vectors の AWS CloudTrail を使用したログ記録」を参照してください。