インターフェイスエンドポイント (AWS PrivateLink) を使用して Amazon OpenSearch Serverless にアクセスする
AWS PrivateLink を使用して VPC と Amazon OpenSearch Serverless との間でプライベート接続を作成できます。インターネットゲートウェイ、NAT デバイス、VPN 接続、または Direct Connect 接続を使用することなく、VPC 内にあるかのように OpenSearch Serverless にアクセスできます。VPC のインスタンスは、パブリック IP アドレスがなくても OpenSearch Serverless にアクセスできます。VPC ネットワークアクセスの詳細については、「Network connectivity patterns for Amazon OpenSearch Serverless
このプライベート接続を確立するには、AWS PrivateLink を利用したインターフェイスエンドポイントを作成します。インターフェイスエンドポイントに指定した各サブネットに、エンドポイントネットワークインターフェイスを作成します。これらは OpenSearch Serverless に送信されるトラフィックのエントリポイントとして機能する、リクエスタマネージド型のネットワークインターフェイスです。
詳細については、AWS PrivateLinkガイドのAWS PrivateLinkからAWS のサービスにアクセスするを参照してください。
トピック
コレクションエンドポイントの DNS 解決
VPC エンドポイントを作成すると、サービスは新しい Amazon Route 53 プライベートホストゾーンを作成し、それを VPC にアタッチします。このプライベートホストゾーンは、OpenSearch Serverless コレクション (*.aoss.us-east-1.amazonaws.com) のワイルドカード DNS レコードをエンドポイントに使用されるインターフェイスアドレスに解決するレコードで構成されます。VPC 内に OpenSearch Serverless の VPC エンドポイントが 1 つあれば、各 AWS リージョン のすべてのコレクションと Dashboards にアクセスできます。OpenSearch Serverless のエンドポイントを持つすべての VPC には、独自のプライベートホストゾーンがアタッチされています。
OpenSearch Serverless は、リージョン内のすべてのコレクション用にパブリック Route 53 ワイルドカード DNS レコードも作成します。DNS 名は OpenSearch Serverless パブリック IP アドレスに解決されます。OpenSearch Serverless の VPC エンドポイントを持たない VPC 内のクライアント、またはパブリックネットワーク内のクライアントは、パブリック Route 53 リゾルバーを使用し、それらの IP アドレスを使用してコレクションと Dashboards にアクセスできます。VPC エンドポイントの IP アドレスタイプ (IPv4、IPv6、または Dualstack) は、OpenSearch Serverless のインターフェイスエンドポイントを作成するときに提供されるサブネットに基づいて決定されます。
注記
OpenSearch Serverless は、OpenSearch Service ドメイン解決用の追加の Amazon Route 53 プライベートホストゾーン (`<region>.opensearch.amazonaws.com`) を作成します。AWS CLI の update-vpc-endpoint コマンドを使用して、既存の IPv4 VPC エンドポイントを Dualstack に更新できます。
特定の VPC の DNS リゾルバーアドレスは、VPC CIDR の 2 番目の IP アドレスです。VPC 内のクライアントは、そのリゾルバーを使用して、コレクション用の VPC エンドポイントアドレスを取得する必要があります。リゾルバーは、OpenSearch Serverless によって作成されたプライベートホストゾーンを使用します。任意のアカウントのすべてのコレクション用にそのリゾルバーを使用すれば十分です。一部のコレクションエンドポイントには VPC リゾルバーを使用し、他のコレクションエンドポイントにはパブリックリゾルバーを使用することもできますが、通常は必要ありません。
VPC とネットワークアクセスポリシー
コレクション用に OpenSearch API および Dashboards に対するネットワーク許可を付与するために、OpenSearch Serverless のネットワークアクセスポリシーを使用できます。このネットワークアクセスは、VPC エンドポイントまたはパブリックインターネットのいずれからでも制御できます。ネットワークポリシーはトラフィックの許可のみを制御するため、コレクション内のデータとそのインデックスに対して操作するための許可を指定するデータアクセスポリシーも設定する必要があります。OpenSearch Serverless の VPC エンドポイントはサービスへのアクセスポイント、ネットワークアクセスポリシーはコレクションおよび Dashboards へのネットワークレベルのアクセスポイント、データアクセスポリシーはコレクション内のデータに対するあらゆる操作についてのきめ細かいアクセスコントロールのためのアクセスポイントとお考えください。
ネットワークポリシーでは複数の VPC エンドポイント ID を指定できるため、コレクションにアクセスする必要がある VPC ごとに VPC エンドポイントを作成することをお勧めします。これらの VPC は、OpenSearch Serverless コレクションおよびネットワークポリシーを所有するアカウントとは異なる AWS アカウントに属することができます。あるアカウントの VPC が別のアカウントの VPC エンドポイントを使用することを目的として、2 つのアカウント間で VPC 間ピアリングまたは他のプロキシソリューションを作成することはお勧めしません。これは、各 VPC が独自のエンドポイントを持つ場合よりも安全性とコスト効率が低くなります。最初の VPC を、ネットワークポリシーで他の VPC のエンドポイントへのアクセスを設定しているその VPC の管理者が簡単に表示することはできません。
VPC とエンドポイントポリシー
Amazon OpenSearch Serverless は、VPC 用のエンドポイントポリシーをサポートします。VPC エンドポイントポリシーは、VPC エンドポイントにアタッチできる IAM リソースベースポリシーで、どの AWS プリンシパルがエンドポイントを使用して AWS サービスにアクセスできるかを制御します。詳細については、「エンドポイントポリシーを使用して VPC エンドポイントへのアクセスを制御する」を参照してください。
エンドポイントポリシーを使用するには、まずインターフェイスエンドポイントを作成する必要があります。OpenSearch Serverless コンソールまたは OpenSearch Serverless API を使用して、インターフェイスエンドポイントを作成できます。インターフェイスエンドポイントを作成した後、エンドポイントポリシーをエンドポイントに追加する必要があります。詳細については、「インターフェイスエンドポイント (AWS PrivateLink) を使用して Amazon OpenSearch Serverless にアクセスする」を参照してください。
注記
OpenSearch Service コンソールでエンドポイントポリシーを直接定義することはできません。
エンドポイントポリシーは、設定済みの他の ID ベースポリシー、リソースベースポリシー、ネットワークポリシー、またはデータアクセスポリシーをオーバーライドしたり、これらに置き換わったりすることはありません。エンドポイントポリシーの更新の詳細については、「エンドポイントポリシーを使用して VPC エンドポイントへのアクセスを制御する」を参照してください。
デフォルトでは、エンドポイントポリシーにより、VPC エンドポイントに対するフルアクセスが付与されます。
{ "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" } ] }
デフォルトの VPC エンドポイントポリシーにより、エンドポイントに対するフルアクセスが付与されますが、特定のロールおよびユーザーに対するアクセスを許可するように VPC エンドポイントポリシーを設定できます。これを実行するには、次の例を参照してください:
VPC エンドポイントポリシーで、OpenSearch Serverless コレクションを条件要素として含めるように指定できます。これを実行するには、次の例を参照してください:
aoss:CollectionId のサポートがサポートされています。
Condition": { "StringEquals": { "aoss:CollectionId": "collection-id" } }
VPC エンドポイントポリシーで SAML ID を使用して、VPC エンドポイントアクセスを決定できます。VPC エンドポイントポリシーのプリンシパルセクションではワイルドカード (*) を使用する必要があります。これを実行するには、次の例を参照してください:
さらに、特定の SAML プリンシパルポリシーを含めるようにエンドポイントポリシーを設定できます。これを実行するには、次を参照してください:
Amazon OpenSearch Serverless での SAML 認証の使用の詳細については、「Amazon OpenSearch Serverless での SAML 認証」を参照してください。
また、IAM ユーザーと SAML ユーザーを同じ VPC エンドポイントポリシーに含めることもできます。これを実行するには、次の例を参照してください:
インターフェイス VPC エンドポイントを介して Amazon EC2 から Amazon OpenSearch Serverless コレクションにアクセスすることもできます。詳細については、「Access an OpenSearch Serverless collection from Amazon EC2 (via interface VPC endpoints)
考慮事項
OpenSearch Serverless のインターフェイスエンドポイントを設定する前に、次の点を考慮してください。
-
OpenSearch Serverless は、サポートされているすべての OpenSearch API オペレーション (設定 API オペレーションではない) をインターフェイスエンドポイント経由で呼び出すことをサポートしています。
-
OpenSearch Serverless のインターフェイスエンドポイントを作成したら、Serverless コレクションにアクセスできるようにするために、そのエンドポイントをネットワークアクセスポリシーに含める必要があります。
-
デフォルトでは、インターフェイスエンドポイント経由で OpenSearch Serverless へのフルアクセスが許可されます。セキュリティグループをエンドポイントのネットワークインターフェイスに関連付けて、インターフェイスエンドポイント経由で OpenSearch Serverless へのトラフィックを制御できます。
-
1 つの AWS アカウント で最大 50 個の OpenSearch Serverless VPC エンドポイントを設定できます。
-
ネットワークポリシーでコレクションの API または Dashboards へのパブリックインターネットアクセスを有効にすると、コレクションは任意の VPC およびパブリックインターネットからアクセスできるようになります。
-
オンプレミスで VPC の外部にいる場合、OpenSearch Serverless の VPC エンドポイント解決に DNS リゾルバーを直接使用することはできません。VPN アクセスが必要な場合、VPC には外部クライアントが使用できる DNS プロキシリゾルバーが必要です。Route 53 は、オンプレミスネットワークまたは別の VPC から VPC への DNS クエリを解決するために使用できるインバウンドエンドポイントオプションを提供します。
-
OpenSearch Serverless が作成して VPC にアタッチするプライベートホストゾーンはサービスによって管理されますが、Amazon Route 53 リソースに表示され、アカウントに請求されます。
-
その他の考慮事項については、「AWS PrivateLink ガイド」の「Considerations」を参照してください。
必要なアクセス許可
OpenSearch Serverless の VPC アクセスには、次の AWS Identity and Access Management (IAM) アクセス許可が使用されます。IAM 条件を指定して、ユーザーを特定のコレクションに制限できます。
-
aoss:CreateVpcEndpoint– VPC エンドポイントを作成します。 -
aoss:ListVpcEndpoints– すべての VPC エンドポイントを一覧表示します。 -
aoss:BatchGetVpcEndpoint– VPC エンドポイントのサブセットに関する詳細を参照してください。 -
aoss:UpdateVpcEndpoint– VPC エンドポイントを変更します。 -
aoss:DeleteVpcEndpoint– VPC エンドポイントを削除します。
さらに、VPC エンドポイントを作成するには、以下の Amazon EC2 許可と Route 53 許可が必要です。
-
ec2:CreateTags -
ec2:CreateVpcEndpoint -
ec2:DeleteVpcEndPoints -
ec2:DescribeSecurityGroups -
ec2:DescribeSubnets -
ec2:DescribeVpcEndpoints -
ec2:DescribeVpcs -
ec2:ModifyVpcEndPoint -
route53:AssociateVPCWithHostedZone -
route53:ChangeResourceRecordSets -
route53:CreateHostedZone -
route53:DeleteHostedZone -
route53:GetChange -
route53:GetHostedZone -
route53:ListHostedZonesByName -
route53:ListHostedZonesByVPC -
route53:ListResourceRecordSets
OpenSearch Serverless のインターフェイスエンドポイントを作成する
コンソールまたは OpenSearch Serverless API を使用して、OpenSearch Serverless のインターフェイスエンドポイントを作成できます。
OpenSearch Serverless コレクションのインターフェイスエンドポイントを作成するには
-
Amazon OpenSearch Service コンソール (https://console.aws.amazon.com/aos/home
) を開きます。 -
左側のナビゲーションペインで [Serverless] (サーバーレス) を展開し、[VPC endpoints] (VPC エンドポイント) を選択します。
-
[Create VPC endpoint] (VPC エンドポイントの作成) を選択します。
-
エンドポイントの名前を入力します。
-
[VPC] で OpenSearch Serverless にアクセスする VPC を選択します。
-
[Subnet] (サブネット) で、OpenSearch Serverless にアクセスするサブネットを 1 つ選択します。
-
エンドポイントの IP アドレスと DNS タイプはサブネットタイプに基づいています
-
Dualstack: すべてのサブネットに IPv4 と IPv6 の両方のアドレス範囲がある場合
-
IPv6: すべてのサブネットが IPv6 のみのサブネットの場合
-
IPv4: すべてのサブネットに IPv4 アドレス範囲がある場合
-
-
-
[Security groups] (セキュリティグループ) で、エンドポイントネットワークインターフェイスに関連付けるセキュリティグループを選択します。これは、エンドポイントに対して承認するインバウンドトラフィックのポート、プロトコル、およびソースを制限する重要なステップです。OpenSearch Serverless との通信に VPC エンドポイントを使用するリソースがエンドポイントのネットワークインターフェイスと通信できるように、セキュリティグループルールが設定されていることを確認します。
-
[エンドポイントの作成] を選択します。
OpenSearch Serverless API を使用して VPC エンドポイントを作成する場合は、CreateVpcEndpoint コマンドを使用します。
注記
エンドポイントを作成したら、その ID を書き留めます (例: vpce-abc123def4EXAMPLE)。コレクションへのエンドポイントアクセスを提供するには、この ID を 1 つまたは複数のネットワークアクセスポリシーに含める必要があります。
インターフェイスエンドポイントを作成したら、ネットワークアクセスポリシーを使用して、そのエンドポイントにコレクションへのアクセスを提供する必要があります。詳細については、「Amazon OpenSearch Serverless でのネットワークアクセス」を参照してください。
Amazon OpenSearch Serverless の共有 VPC の設定
Amazon 仮想プライベートクラウド (VPC) を使用して、VPC サブネットを組織内の他の AWS アカウント と共有したり、複数の AWS アカウント のリソース間で VPN などのネットワークインフラストラクチャを共有したりできます。
現在、Amazon OpenSearch Serverless は、その VPC の所有者でない限り、共有 VPC への AWS PrivateLink 接続の作成をサポートしていません。AWS PrivateLink は、AWS アカウント 間の接続の共有もサポートしていません。
ただし、OpenSearch Serverless の柔軟なモジュール式のアーキテクチャに基づいて、共有 VPC をセットアップすることはできます。これは、OpenSearch Serverless ネットワークインフラストラクチャが個々のコレクション (OpenSearch Service) インフラストラクチャとは異なるためです。したがって、VPC が配置されている 1 つのアカウントの AWS PrivateLink VPCe エンドポイントを作成し、他のアカウントのネットワークポリシーで VPCe ID を使用して、トラフィックをその共有 VPC からのみに制限できます。
以下の手順では、所有者アカウントとコンシューマーアカウントについて説明します。
所有者アカウントは、VPC をセットアップして他のアカウントと共有するための共通のネットワークアカウントとして機能します。コンシューマーアカウントは、所有者アカウントによって共有されている VPC で OpenSearch Serverless コレクションを作成および維持するアカウントです。
前提条件
共有 VPC を設定する前に、以下の要件が満たされていることを確認してください。
-
目的の所有者アカウントは、Amazon Virtual Private Cloud で VPC、サブネット、ルートテーブル、およびその他の必要なリソースを既に設定している必要があります。詳細については、Amazon VPC ユーザーガイドを参照してください。
-
目的の所有者アカウントとコンシューマーアカウントは、AWS Organizations の同じ組織に属している必要があります。詳細についてはAWS Organizations ユーザーガイドを参照してください。
所有者アカウント/共通ネットワークアカウントで共有 VPC を設定するには。
-
Amazon OpenSearch Service コンソール (https://console.aws.amazon.com/aos/home
) にサインインします。 -
「OpenSearch Serverless のインターフェイスエンドポイントを作成する」のステップを実行してください。その際、以下の選択を行います。
-
組織内のコンシューマーアカウントと共有されている VPC とサブネットを選択します。
-
-
エンドポイントを作成したら、生成された VPCe ID を書き留めて、コンシューマーアカウントでセットアップタスクを実行する管理者に渡します。
VPCe ID は
vpce-abc123def4EXAMPLE形式になっています。
コンシューマーアカウントで共有 VPC を設定するには
-
Amazon OpenSearch Service コンソール (https://console.aws.amazon.com/aos/home
) にサインインします。 -
コレクションがまだない場合は、Amazon OpenSearch Serverless コレクションの管理 の情報を使用してコレクションを作成します。
-
ネットワークポリシーの作成 (コンソール) の情報を使用して、ネットワークポリシーを作成します。その際、以下の選択を行います。
注記
この目的のために、既存のネットワークポリシーを更新することもできます。
-
[アクセスタイプ] に [VPC (推奨)] を選択します。
-
[アクセス用の VPC エンドポイント] の場合は、所有者アカウントから提供された VPCe ID (
vpce-abc123def4EXAMPLE形式) を選択します。 -
[リソースタイプ] エリアで、以下を実行します。
-
[OpenSearch エンドポイントへのアクセスを有効にする] ボックスを選択し、その共有 VPC からのアクセスを有効にするのに使用するコレクション名またはコレクションパターンを選択します。
-
[OpenSearch Dashboard へのアクセスを有効にする] ボックスを選択し、その共有 VPC からのアクセスを有効にするのに使用するコレクション名またはコレクションパターンを選択します。
-
-
-
新しいポリシーの場合は、[作成] を選択します。既存のポリシーの場合は、[更新] を選択します。