Amazon OpenSearch サーバーレスのネットワークアクセス - Amazon OpenSearch サービス

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

Amazon OpenSearch サーバーレスのネットワークアクセス

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

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

  • OpenSearch サーバーレス管理の VPC エンドポイント

  • Amazon AWS のサービス ベッドロックなどに対応

OpenSearchコレクションのエンドポイントとそれに対応する OpenSearch Dashboards エンドポイントのネットワークアクセスを個別に設定できます。

ネットワークアクセスは、さまざまなソースネットワークからのアクセスを、分離して許可するためのメカニズムです。たとえば、 OpenSearch コレクションのダッシュボードエンドポイントは公開されているが、 OpenSearch API エンドポイントには公開されていない場合、ユーザーはパブリックネットワークから接続する場合、ダッシュボードを介してのみコレクションデータにアクセスできます。パブリックネットワークから直接 OpenSearch API を呼び出そうとすると、ブロックされます。ソースからリソースタイプへのこのような配列には、ネットワーク設定を使用できます。

ネットワークポリシー

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

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

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

注記

Amazon Bedrock AWS のサービス などへのプライベートアクセスは、 OpenSearch コレクションのエンドポイントにのみ適用され、 OpenSearch ダッシュボードエンドポイントには適用されません。ResourceType設定されている場合でもdashboard、 AWS のサービス OpenSearch ダッシュボードへのアクセス権は付与されません。

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 } ]

このポリシーでは、「finance」 OpenSearch で始まるコレクションのダッシュボードへのパブリックアクセスのみが許可されます。 OpenSearch API に直接アクセスしようとしても失敗します。

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

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

考慮事項

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

  • コレクションに VPC エンドポイントアクセスを設定する場合は、OpenSearch 最初にサーバーレス管理の VPC エンドポイントを少なくとも 1 つ作成する必要があります。

  • AWS のサービス OpenSearchへのプライベートアクセスはコレクションのエンドポイントにのみ適用され、ダッシュボードエンドポイントには適用されません。 OpenSearch 設定されている場合でもdashboardResourceType AWS のサービス OpenSearch ダッシュボードへのアクセス権は付与されません。

  • コレクションにパブリックネットワークからアクセスできる場合は、 OpenSearch サーバーレスが管理するすべての VPC エンドポイント、その他すべてのエンドポイントからもアクセスできます。 AWS のサービス

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

必要なアクセス許可

OpenSearch サーバーレスのネットワークアクセスには、次の (IAM) 権限を使用します。 AWS Identity and Access Management 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": "*" } ] }

ポリシーの優先順位

ポリシー内またはポリシー間に、複数のネットワークポリシールールが同時に存在する場合があります。この場合、パブリックアクセスを指定するルールは、両方のルールに共通するコレクションへのプライベートアクセスを指定するルールよりも優先されます。

例えば、次のポリシーでは、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 つのコレクションに適用されている場合、これらのルールは追加的に認識され、指定されたすべてのエンドポイントから、そのコレクションへのアクセスが可能になります。AllowFromPublicを 1 true SourceVPCEs つ以上指定しても指定した場合SourceServices、 OpenSearch サーバーレスは VPC エンドポイントとサービス ID を無視し、関連するコレクションにはパブリックアクセスが付与されます。

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

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

サーバーレスネットワークポリシーを作成するには OpenSearch
  1. https://console.aws.amazon.com/aos/home にある Amazon OpenSearch サービスコンソールを開きます。

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

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

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

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

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

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

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

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

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

    さらに、future コレクションの名前をワイルドカードなしで指定できます (例:)。Finance OpenSearch サーバーレスは、その正確な名前で新しく作成されたコレクションにポリシー設定を適用します。

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

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

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

注記

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

プライベートアクセスを指定するには、以下の要素の一方または両方を含めてください。

  • SourceVPCEs— OpenSearch サーバーレス管理の VPC エンドポイントを 1 つ以上指定します。

  • SourceServices— サポートされている 1 つまたは複数の識別子を指定します。 AWS のサービス現在、以下のサービス ID がサポートされています。

    • bedrock.amazonaws.com— Amazon ベッドロック

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

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

次のポリシーは、という名前の 1 OpenSearch OpenSearch つのコレクションのエンドポイントとダッシュボードへのパブリックアクセスを許可しますfinance対象のコレクションが存在しない場合、ネットワーク設定は、そのコレクションが作成された時点で適用されます。

[ { "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 要素の内容でポリシー情報を探します。nametypeこのポリシーの末尾をメモし、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 サーバーレスコンソールでネットワークポリシーを更新するには、[ネットワークポリシー] を展開し、変更するポリシーを選択して [編集] を選択します。変更を行ってから、[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 サーバーレスコンソールでポリシーを削除するには、ポリシーを選択して [Delete] を選択します。

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

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