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

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

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

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

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

  • OpenSearch サーバーレスマネージド VPC エンドポイント

  • Amazon Bedrock AWS のサービス などでサポートされる

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

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

ネットワークポリシー

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

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

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

注記

Amazon Bedrock AWS のサービス などの へのプライベートアクセスは、 OpenSearch Dashboards OpenSearch エンドポイントではなく、コレクションのエンドポイントにのみ適用されますResourceType が であってもdashboard、 OpenSearch Dashboards へのアクセスを許可 AWS のサービス することはできません。

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 へのパブリックアクセスのみを提供します。 OpenSearch API に直接アクセスしようとすると失敗します。

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

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

考慮事項

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

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

  • へのプライベートアクセスは、 OpenSearch Dashboards OpenSearchエンドポイントではなく、コレクションのエンドポイント AWS のサービス にのみ適用されます。ResourceType が であってもdashboard、 OpenSearch Dashboards へのアクセスを許可 AWS のサービス することはできません。

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

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

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

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

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

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

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

  5. 1 つ以上のルールを指定します。これらのルールは、 OpenSearch サーバーレスコレクションとその 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> の形式にする必要があります。

注記

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

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

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

  • 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" ], } ]

次のポリシーは、 という名前の 1 つのコレクションの OpenSearch エンドポイント OpenSearch Dashboards へのパブリックアクセスを提供します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 要素の内容でポリシー情報を探します。このポリシーtypenameと をメモし、これらのプロパティを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 Serverless コンソールでポリシーを削除するには、ポリシーを選択し、「削除」を選択します。

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

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