Amazon OpenSearch Serverless でのネットワークアクセス - Amazon OpenSearch Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon OpenSearch Serverless でのネットワークアクセス

Amazon OpenSearch Serverless コレクションでは、ネットワーク設定によって、そのコレクションに対しインターネット経由でパブリックネットワークからのアクセスが可能か、プライベートでアクセスする必要があるかが決まります。

プライベートアクセスは、次のいずれかまたは両方に適用できます。

  • OpenSearch Serverless マネージド VPC エンドポイント

  • Amazon Bedrock などのサポート対象 AWS のサービス

コレクションでは、OpenSearch のエンドポイントと、対応する OpenSearch Dashboards のエンドポイントで、個別のネットワークアクセス設定が行えます。

ネットワークアクセスは、さまざまなソースネットワークからのアクセスを、分離して許可するためのメカニズムです。例えば、コレクションの OpenSearch Dashboards エンドポイントはパブリックアクセスが可能で、OpenSearch API エンドポイントはパブリックアクセスが可能でない場合、パブリックネットワークから接続するユーザーは、Dashboards を経由しなければコレクションデータにアクセスできません。パブリックネットワークから直接 OpenSearch API を呼び出そうとしても、ブロックされます。ソースからリソースタイプへのこのような配列には、ネットワーク設定を使用できます。Amazon OpenSearch Serverless は、IPv4 と IPv6 の両方の接続をサポートしています。

ネットワークポリシー

ネットワークポリシーでは、その中でルールを定義し、そのルールに一致するコレクションに対し、ネットワークアクセス設定を自動的に割り当てることにより、多数のコレクションを大規模に管理できます。

ネットワークポリシーでは、一連のルールを指定します。これらのルールにより、コレクションのエンドポイントと OpenSearch Dashboards のエンドポイントへのアクセス許可を定義します。各ルールは、アクセスタイプ (パブリックまたはプライベート) とリソースタイプ (コレクション、および/または OpenSearch Dashboards のエンドポイント) で構成されます。リソースタイプ (collection および dashboard) ごとに、一連のルールを指定し、ポリシーを適用する対象となるコレクションを定義します。

このポリシー例では、最初のルールで、語句 marketing* で始まるすべてのコレクションについて、コレクションエンドポイントとダッシュボードエンドポイントの両方で、VPC エンドポイントアクセスを使用するように指定しています。また、Amazon Bedrock アクセスも指定します。

注記

Amazon Bedrock などの AWS のサービスへのプライベートアクセスは、コレクションの OpenSearch エンドポイントにのみ適用され、OpenSearch Dashboards エンドポイントには適用されません。ResourceTypedashboard であっても、AWS のサービスに OpenSearch Dashboards へのアクセスは付与されません。

2 番目のルールでは、finance コレクションに対してパブリックアクセスを指定していますが、これには、コレクションエンドポイントのみが使用されます (ダッシュボードからのアクセスは許可されません)。

[ { "Description":"Marketing access", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/marketing*" ] }, { "ResourceType":"dashboard", "Resource":[ "collection/marketing*" ] } ], "AllowFromPublic":false, "SourceVPCEs":[ "vpce-050f79086ee71ac05" ], "SourceServices":[ "bedrock.amazonaws.com" ], }, { "Description":"Sales access", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/finance" ] } ], "AllowFromPublic":true } ]

このポリシーでは、OpenSearch Dashboards からのパブリックアクセスは、「finance」で始まるコレクションに対してのみ許可しています。OpenSearch API に直接アクセスする試みは、すべて失敗します。

[ { "Description": "Dashboards access", "Rules": [ { "ResourceType": "dashboard", "Resource": [ "collection/finance*" ] } ], "AllowFromPublic": true } ]

ネットワークポリシーは、将来作成するコレクションだけでなく、既存のコレクションにも適用が可能です。コレクションを作成した後に、そのコレクション名と一致するルールを含むネットワークポリシーを作成できます。コレクションを作成する前に、必ずしもネットワークポリシーを用意しておく必要はありません。

考慮事項

コレクションのためにネットワークアクセスを設定する際は、以下の点を考慮してください。

  • コレクションのために VPC エンドポイントアクセスを設定する場合は、最初に、少なくとも 1 つの OpenSearch Serverless マネージド VPC エンドポイントを作成しておく必要があります。

  • AWS のサービスへのプライベートアクセスは、コレクションの OpenSearch エンドポイントにのみ適用され、OpenSearch Dashboards エンドポイントには適用されません。ResourceTypedashboard であっても、AWS のサービスに OpenSearch Dashboards へのアクセスは付与されません。

  • パブリックネットワークからアクセスできるコレクションに対しては、OpenSearch Serverless マネージド VPC エンドポイントとすべての AWS のサービスからもアクセスできます。

  • 単一のコレクションに対して、複数のネットワークポリシーを適用できます。詳細については、「ポリシーの優先順位」を参照してください。

ネットワークポリシーの設定に必要なアクセス許可

OpenSearch Serverless におけるネットワークアクセスには、以下の AWS Identity and Access Management (IAM) によるアクセス許可を使用します。IAM 条件を指定しすることで、特定のコレクションに関連付けられたネットワークポリシーのみをユーザーが使用するように制限できます。

  • aoss:CreateSecurityPolicy – ネットワークアクセスポリシーを作成します。

  • aoss:ListSecurityPolicies – 現在のアカウントにある、すべてのネットワークポリシーを一覧表示します。

  • aoss:GetSecurityPolicy – ネットワークアクセスポリシーの設定を表示します。

  • aoss:UpdateSecurityPolicy – 特定のネットワークアクセスポリシーを変更し、VPC ID またはパブリックアクセスの指定を変更します。

  • aoss:DeleteSecurityPolicy – ネットワークアクセスポリシーを (すべてのコレクションからデタッチした後に) 削除します。

次の ID ベースのアクセスポリシーにより、ユーザーはすべてのネットワークポリシーを表示し、リソースパターン collection/application-logs を含むポリシーの更新が行えるようになります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aoss:UpdateSecurityPolicy" ], "Resource": "*", "Condition": { "StringEquals": { "aoss:collection": "application-logs" } } }, { "Effect": "Allow", "Action": [ "aoss:ListSecurityPolicies", "aoss:GetSecurityPolicy" ], "Resource": "*" } ] }
注記

さらに、OpenSearch Serverless には、コレクションリソースの aoss:APIAccessAll および aoss:DashboardsAccessAll アクセス許可が必要です。詳細については、「OpenSearch API オペレーションの使用」を参照してください。

ポリシーの優先順位

ポリシー内またはポリシー間に、複数のネットワークポリシールールが同時に存在する場合があります。この場合、パブリックアクセスを指定するルールとプライベートアクセスを指定するルールでは、(これら両方のルールに共通して適用されるコレクションにおいて) 前者のルールが優先されます。

例えば、次のポリシーでは、2 種類のルールが finance コレクションにネットワークアクセスを割り当てています。一方のルールでは VPC アクセスを、もう一方のルールではパブリックアクセスをそれぞれ指定しています。この場合、finance コレクションでのみ、パブリックアクセスは VPC アクセスをオーバーライドします (両方のルールに含まれるのがこのコレクションであるため)。つまり、finance コレクションにアクセスできるのは、パブリックネットワークからとなります。sales コレクションには、指定されたエンドポイントからの VPC アクセスが許可されます。

[ { "Description":"Rule 1", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/sales", "collection/finance" ] } ], "AllowFromPublic":false, "SourceVPCEs":[ "vpce-050f79086ee71ac05" ] }, { "Description":"Rule 2", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/finance" ] } ], "AllowFromPublic":true } ]

異なるルールの複数の VPC エンドポイントが 1 つのコレクションに適用されている場合、これらのルールは追加的に認識され、指定されたすべてのエンドポイントから、そのコレクションへのアクセスが可能になります。AllowFromPublictrue に設定し、さらに 1 つ以上の SourceVPCEs または SourceServices を指定した場合には、OpenSearch Serverless により VPC エンドポイントは無視され、関連するコレクションにはパブリックアクセスが提供されます。

ネットワークポリシーの作成 (コンソール)

ネットワークポリシーは、将来作成されるポリシーだけでなく、既存のポリシーにも適用できます。コレクションの作成を開始する前に、ネットワークポリシーを作成しておくことをお勧めします。

OpenSearch Serverless のネットワークポリシーを作成するには
  1. Amazon OpenSearch Service コンソール (https://console.aws.amazon.com/aos/home) を開きます。

  2. 左側のナビゲーションパネルで [Serverless] (サーバーレス) を展開し、[Network policie] (ネットワークポリシー) を選択します。

  3. [Create network policy] (ネットワークポリシーを作成) を選択します。

  4. ポリシーの名前と説明を入力します。

  5. 1 つ以上のルールを指定します。これらのルールは、OpenSearch Serverless コレクションと、その OpenSearch Dashboards エンドポイントへのアクセス許可を定義しています。

    各ルールには以下の要素が含まれます。

    要素 説明
    ルール名 ルールの内容をわかりやすく示した名前です。例えば、「VPC access for marketing team」などとします。
    アクセスタイプ パブリックアクセスまたはプライベートアクセスを選択します。続いて、次のいずれかを選択します。
    リソースタイプ アクセスを提供する対象を、OpenSearch エンドポイント (OpenSearch API への呼び出しを許可) にするか、OpenSearch Dashboards (OpenSearch プラグインのビジュアライゼーションとユーザーインターフェースへのアクセスを許可) にするか、あるいはその両方を対象にするかを選択します。
    注記

    AWS のサービスプライベートアクセスは、コレクションの OpenSearch エンドポイントにのみ適用され、OpenSearch Dashboards エンドポイントには適用されません。[OpenSearch Dashboards] を選択した場合でも、AWS のサービスにはエンドポイントアクセスのみ許可されます。

    選択したリソースタイプごとに、ポリシー設定を適用する既存のコレクションを選択すること、および/または 1 つ以上のリソースパターンを作成することができます。リソースパターンはプレフィックスとワイルドカード (*) で構成され、ポリシー設定の適用対象となるコレクションを定義します。

    例えば、Marketing* というパターンを含めると、名前が「Marketing」で始まる新規または既存のコレクションには、このポリシーのネットワーク設定が自動的に適用されます。ワイルドカード (*) によって、既存のコレクションや将来作成されるコレクションすべてにポリシーが適用されます。

    また、ワイルドカードなしで、将来作成されるコレクションの名前 (例: Finance) を指定することもできます。OpenSearch Serverless は、これと同じ名前を使用して新しく作成されたすべてのコレクションに、同じポリシー設定を適用します。

  6. ポリシー設定を確認し、変更点がない場合は、[Create] (作成) を選択します。

ネットワークポリシーの作成 (AWS CLI)

OpenSearch Serverless API オペレーションを使用してネットワークポリシーを作成するには、JSON 形式でルールを指定します。CreateSecurityPolicy リクエストは、インラインポリシーと.json ファイルの両方を受け入れます。すべてのコレクションとパターンは、collection/<collection name|pattern> の形式にする必要があります。

注記

リソースタイプ dashboards では OpenSearch Dashboards へのアクセスのみが許可されます。ただし、OpenSearch Dashboards が機能するためには、同じソースからコレクションに対するアクセスも許可する必要があります。例については、以下に示す 2 番目のポリシーを参照してください。

プライベートアクセスを指定するには、次の要素の 1 つまたは両方を含めます。

  • SourceVPCEs – 1 つ以上の OpenSearch Serverless マネージド VPC エンドポイントを指定します。

  • SourceServices – サポートされている 1 つ以上の AWS のサービスの識別子を指定します。現在、次のサービス識別子がサポートされています。

    • bedrock.amazonaws.com – Amazon Bedrock

次のネットワークポリシー例では、VPC エンドポイントと Amazon Bedrock へのプライベートアクセスを、log* プレフィックスで始まるコレクションのコレクションエンドポイントにのみ提供しています。認証されたユーザーは OpenSearch Dashboards にサインインできず、コレクションエンドポイントにはプログラムでしかアクセスできません。

[ { "Description":"Private access for log collections", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/log*" ] } ], "AllowFromPublic":false, "SourceVPCEs":[ "vpce-050f79086ee71ac05" ], "SourceServices":[ "bedrock.amazonaws.com" ], } ]

以下のポリシーでは、finance という名前の単一のコレクションに対して、OpenSearch エンドポイントと OpenSearch Dashboards の両方でのパブリックアクセスを提供します。対象のコレクションが存在しない場合、ネットワーク設定は、そのコレクションが作成された時点で適用されます。

[ { "Description":"Public access for finance collection", "Rules":[ { "ResourceType":"dashboard", "Resource":[ "collection/finance" ] }, { "ResourceType":"collection", "Resource":[ "collection/finance" ] } ], "AllowFromPublic":true } ]

次のリクエストにより、上記のネットワークポリシーが作成されます。

aws opensearchserverless create-security-policy \ --name sales-inventory \ --type network \ --policy "[{\"Description\":\"Public access for finance collection\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection\/finance\"]},{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/finance\"]}],\"AllowFromPublic\":true}]"

このポリシーを JSON ファイルで指定するには、--policy file://my-policy.json の形式を使用します。

ネットワークポリシーの表示

コレクションを作成する前に、アカウント内の既存のネットワークポリシーをプレビューして、コレクション名と一致するリソースパターンが含まれているポリシーを確認しておきたい場合があります。次の ListSecurityPolicies リクエストにより、アカウント内のすべてのネットワークポリシーが一覧表示されます。

aws opensearchserverless list-security-policies --type network

このリクエストは、設定されているすべてのネットワークポリシーに関する情報を返します。1 つの特定のポリシーで定義されているパターンルールを表示するには、レスポンスの securityPolicySummaries 要素の内容でポリシー情報を探します。このポリシーの name と type を書き留め、GetSecurityPolicy リクエストでこれらのプロパティを使用して、次のポリシーの詳細を含むレスポンスを受信します。

{ "securityPolicyDetail": [ { "type": "network", "name": "my-policy", "policyVersion": "MTY2MzY5MTY1MDA3Ml8x", "policy": "[{\"Description\":\"My network policy rule\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection/*\"]}],\"AllowFromPublic\":true}]", "createdDate": 1663691650072, "lastModifiedDate": 1663691650072 } ] }

特定のポリシーの詳細情報を表示するには、GetSecurityPolicy コマンドを使用します。

ネットワークポリシーの更新

ネットワークの VPC エンドポイントまたはパブリックアクセスの指定を変更すると、関連するすべてのコレクションが影響を受けます。OpenSearch Serverless コンソールでネットワークポリシーを更新するには、[Network policies] (ネットワークポリシー) を展開してから変更するポリシーを選択した後、[Edit] (編集) を選択します。変更を行ってから、[Save (保存)] を選択します。

OpenSearch Serverless API を使用してネットワークポリシーを更新するには、UpdateSecurityPolicy コマンドを使用します。リクエストには、ポリシーのバージョンを含める必要があります。ポリシーのバージョンは、ListSecurityPolicies または GetSecurityPolicy コマンドを使用して取得できます。最新のポリシーバージョンを含めると、他のユーザーによる変更を意図せず上書きしてしまうことがなくなります。

次のリクエストは、ネットワークポリシーを新しいポリシーの JSON ドキュメントで更新します。

aws opensearchserverless update-security-policy \ --name sales-inventory \ --type network \ --policy-version MTY2MzY5MTY1MDA3Ml8x \ --policy file://my-new-policy.json

ネットワークポリシーの削除

ネットワークポリシーを削除する前に、そのポリシーをすべてのコレクションからデタッチする必要があります。OpenSearch Serverless コンソールでポリシーを削除するには、ポリシーを選択し、[Delete] (削除) を選択します。

DeleteSecurityPolicy コマンドを使用することもできます。

aws opensearchserverless delete-security-policy --name my-policy --type network