Amazon OpenSearch Ingestion パイプラインにコレクションへのアクセス権を付与する - Amazon OpenSearch サービス

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

Amazon OpenSearch Ingestion パイプラインにコレクションへのアクセス権を付与する

Amazon OpenSearch Ingestion パイプラインは、OpenSearch Serverless パブリックコレクションまたは VPC コレクションに書き込むことができます。コレクションへのアクセスを許可するには、コレクションへのアクセス権を付与するアクセス許可ポリシーを使って AWS Identity and Access Management (IAM) パイプラインロールを設定します。パイプラインの設定でロールを指定する前に、適切な信頼関係を使用してこれを設定し、データアクセスポリシーを介してデータアクセス許可をそこへ付与します。

パイプラインの作成中、OpenSearch Ingestion はパイプラインと OpenSearch Serverless コレクション間の AWS PrivateLink 接続を作成します。パイプラインからのすべてのトラフィックはこの VPC エンドポイントを通過し、コレクションにルーティングされます。コレクションに到達するには、エンドポイントにネットワークアクセスポリシーを介してコレクションへのアクセスを付与する必要があります。

OpenSearch Ingestion pipeline connecting to OpenSearch Serverless collection via PrivateLink VPC endpoint.

パイプラインへのネットワークアクセスの提供

OpenSearch Serverless で作成する各コレクションには、少なくとも 1 つのネットワークアクセスポリシーが関連付けられています。ネットワークアクセスポリシーでは、コレクションがインターネット経由でパブリックネットワークからアクセス可能か、プライベートでアクセスする必要があるかを決定します。ネットワークポリシーの詳細については、「Amazon OpenSearch Serverless でのネットワークアクセス」を参照してください。

ネットワークアクセスポリシー内では、OpenSearch Serverless マネージド VPC エンドポイントのみを指定できます。詳細については、「インターフェイスエンドポイント (AWS PrivateLink) を使用して Amazon OpenSearch Serverless にアクセスする」を参照してください。ただし、パイプラインがコレクションに書き込むには、OpenSearch Ingestion がパイプラインとコレクションの間に自動的に作成する VPC エンドポイントへのアクセスもポリシーで付与する必要があります。したがって、OpenSearch Serverless コレクションシンクを持つパイプラインを作成するときは、network_policy_name オプションを使用して関連するネットワークポリシーの名前を指定する必要があります。

例:

... sink: - opensearch: hosts: [ "https://collection-id.region.aoss.amazonaws.com" ] index: "my-index" aws: serverless: true serverless_options: network_policy_name: "network-policy-name"

パイプラインの作成中、OpenSearch Ingestion は指定されたネットワークポリシーの存在をチェックします。存在しない場合は、OpenSearch Ingestion が作成します。存在する場合、OpenSearch Ingestion は新しいルールを追加して更新します。このルールは、パイプラインとコレクションを接続する VPC エンドポイントへのアクセスを付与します。

例:

{ "Rules":[ { "Resource":[ "collection/my-collection" ], "ResourceType":"collection" } ], "SourceVPCEs":[ "vpce-0c510712627e27269" # The ID of the VPC endpoint that OpenSearch Ingestion creates between the pipeline and collection ], "Description":"Created by Data Prepper" }

コンソールでは、OpenSearch Ingestion がネットワークポリシーに追加するルールの名前は、[Created by Data Prepper] です。

Configuration details for OpenSearch endpoint access, including VPC endpoint and resources.
注記

一般に、コレクションのパブリックアクセスを指定するルールは、プライベートアクセスを指定するルールよりも優先されます。したがって、ポリシーにパブリックアクセスがすでに設定されている場合、OpenSearch Ingestion が追加するこの新しいルールは、実際にポリシーの動作を変更しません。詳細については、「ポリシーの優先順位」を参照してください。

パイプラインを停止または削除すると、OpenSearch Ingestion はパイプラインとコレクション間の VPC エンドポイントを削除します。また、ネットワークポリシーを変更して、許可されたエンドポイントのリストから VPC エンドポイントを削除します。パイプラインを再起動すると、VPC エンドポイントが再作成され、ネットワークポリシーがエンドポイント ID で再更新されます。

ステップ 1: パイプラインロールを作成する

パイプライン設定の sts_role_arn パラメータで指定するロールには、コレクションシンクへのデータ送信を許可する、アクセス許可ポリシーが添付されている必要があります。また、OpenSearch Ingestion にこのロールの引き受けを許可する信頼関係も必要になります。ポリシーをロールにアタッチする方法については、「IAM ユーザーガイド」の「IAM ID アクセス許可の追加」を参照してください。

次のポリシー例では、パイプライン設定の sts_role_arn ロールに、コレクションへの書き込みを可能にする最小特権が付与されています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "aoss:APIAccessAll", "aoss:BatchGetCollection", "aoss:CreateSecurityPolicy", "aoss:GetSecurityPolicy", "aoss:UpdateSecurityPolicy" ], "Resource": "*" } ] }

このロールには次の信頼関係が必要です。この信頼関係により、OpenSearch Ingestion はこのロールを引き受けることができます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "osis-pipelines.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

ステップ 2: コレクションを作成する

OpenSearch Serverless コレクションを以下の設定で作成します。コレクションの作成手順については、「コレクションの作成」を参照してください。

データアクセスポリシー

パイプラインロールに必要なアクセス許可を付与するコレクション用のデータアクセスポリシーを作成します。例:

[ { "Rules": [ { "Resource": [ "index/collection-name/*" ], "Permission": [ "aoss:CreateIndex", "aoss:UpdateIndex", "aoss:DescribeIndex", "aoss:WriteDocument" ], "ResourceType": "index" } ], "Principal": [ "arn:aws:iam::account-id:role/pipeline-role" ], "Description": "Pipeline role access" } ]
注記

Principal の要素では、前のステップで作成したパイプラインロールの Amazon リソースネーム (ARN) を指定します。

ネットワークアクセスポリシー

コレクションのネットワークアクセスポリシーを作成します。パブリックコレクションまたは VPC コレクションにデータを取り込むことができます。例えば、次のポリシーでは、単一の OpenSearch Serverless マネージド VPC エンドポイントへのアクセスを提供します。

[ { "Description":"Rule 1", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/collection-name" ] } ], "AllowFromPublic": false, "SourceVPCEs":[ "vpce-050f79086ee71ac05" ] } ]
重要

パイプライン設定の network_policy_name オプション内でネットワークポリシーの名前を指定する必要があります。パイプラインの作成時に、OpenSearch Ingestion はこのネットワークポリシーを更新して、パイプラインとコレクションの間で自動的に作成される VPC エンドポイントへのアクセスを許可します。パイプライン設定の例については、ステップ 3 を参照してください。詳細については、「パイプラインへのネットワークアクセスの提供」を参照してください。

ステップ 3: パイプラインを作成する

最後にパイプラインを作成します。パイプラインのロールとコレクションの詳細はここで指定します。パイプラインは、OpenSearch Serverless コレクションシンクへのリクエストに署名するために、このロールを引き受けます。

以下を実行するようにしてください。

  • hosts のオプションで、ステップ 2 で作成したコレクションのエンドポイントを指定します。

  • sts_role_arn のオプションで、ステップ 1 で作成したパイプラインロールの Amazon リソースネーム (ARN) を指定します。

  • serverless のオプションは true に設定します。

  • コレクションにアタッチされたネットワークポリシーの名前に network_policy_name オプションを設定します。OpenSearch Ingestion は、このネットワークポリシーを自動的に更新して、パイプラインとコレクションの間に作成する VPC からのアクセスを許可します。詳細については、「パイプラインへのネットワークアクセスの提供」を参照してください。

version: "2" log-pipeline: source: http: path: "/log/ingest" processor: - date: from_time_received: true destination: "@timestamp" sink: - opensearch: hosts: [ "https://collection-id.region.aoss.amazonaws.com" ] index: "my-index" aws: serverless: true serverless_options: network_policy_name: "network-policy-name" # If the policy doesn't exist, a new policy is created. region: "us-east-1" sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role"

必要なパラメータとサポートされていないパラメータの詳細については、「Amazon OpenSearch Ingestion パイプラインでサポートされているプラグインとオプション」を参照してください。