Amazon OpenSearch Ingestion パイプラインにドメインへのアクセスを付与する - Amazon OpenSearch Service

Amazon OpenSearch Ingestion パイプラインにドメインへのアクセスを付与する

Amazon OpenSearch Ingestion パイプラインが、シンクとして設定されている OpenSearch Service ドメインに書き込みを行うには、アクセス許可が必要です。アクセスを許可するには、パイプラインのデータ送信先であるドメインへのアクセスを制限する、制限付きのアクセス許可ポリシーを使って AWS Identity and Access Management (IAM) ロールを設定します。例えば、このユースケースをサポートするために必要なドメインとインデックスのみに、取り込みパイプラインを制限するとします。

重要

パイプラインロールを手動で作成することも、パイプラインの作成時に OpenSearch Ingestion に作成させることもできます。自動ロール作成を選択した場合、OpenSearch Ingestion は、選択したソースとシンクに基づいて、パイプラインロールのアクセスポリシーに必要なすべてのアクセス許可を追加します。プレフィックス OpenSearchIngestion- と入力したサフィックスを使用して、IAM にパイプラインロールを作成します。詳細については、「パイプラインロール」を参照してください。

OpenSearch Ingestion でパイプラインロールを作成している場合は、そのロールをドメインアクセスポリシーに含め、パイプラインの作成前または作成後にバックエンドロール (ドメインが詳細なアクセスコントロールを使用している場合) にマッピングする必要があります。手順については、ステップ 2 を参照してください。

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

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

次のポリシー例では、単一ドメインへの書き込みを可能にするパイプラインで提供可能な最小特権が付与されています。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:*:111122223333:domain/*" }, { "Effect": "Allow", "Action": "es:ESHttp*", "Resource": "arn:aws:es:*:111122223333:domain/domain-name/*" } ] }

ロールを再利用して複数のドメインに書き込む場合は、ドメイン名をワイルドカード文字 (*) に置き換えることでポリシーの範囲を広げることができます。

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

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

ステップ 2: ドメインのデータアクセスを設定する

パイプラインがドメインにデータを書き込むには、sts_role_arn パイプラインロールにドメインへのアクセスを許可するドメインレベルのアクセスポリシーが、このドメインに必要になります。

次のドメインアクセスポリシーの例では、pipeline-role と言う名前のパイプラインロールに、ingestion-domain と言う名前のドメインへのデータの書き込みが許可されています。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/pipeline-role" }, "Action": [ "es:DescribeDomain", "es:ESHttp*" ], "Resource": "arn:aws:es:us-east-1:111122223333:domain/domain-name/*" } ] }

パイプラインロールをマッピングする (詳細なアクセスコントロールを使用するドメインについてのみ)

ドメインが、認証用に詳細なアクセス制御を使用している場合は、パイプラインにドメインへのアクセスを許可するには、追加の手順が必要になります。この手順は、ドメインの設定によって異なります。

  • シナリオ 1: マスターロールとパイプラインロールが異なる – IAM Amazon リソースネーム (ARN) をマスターユーザーとして使用し、これが、パイプラインロールとは異なる場合、パイプラインロールを OpenSearch all_access バックエンドロールにマッピングする必要があります。これにより、パイプラインロールが追加のマスターユーザーとして追加されます。詳細については、「追加のマスターユーザー」を参照してください。

  • シナリオ 2: 内部ユーザーデータベースのマスターユーザー — ドメインで内部ユーザーデータベースのマスターユーザーと、OpenSearch Dashboards の HTTP 基本認証を使用している場合、マスターユーザー名とパスワードを、パイプライン設定に直接渡すことはできません。代わりに、パイプラインロールを OpenSearch all_access バックエンドロールにマッピングします。これにより、パイプラインロールが追加のマスターユーザーとして追加されます。詳細については、「追加のマスターユーザー」を参照してください。

  • シナリオ 3: マスターロールとパイプラインロールが同じ (まれなシナリオ) – IAM ARN をマスターユーザーとして使用し、パイプラインロールとして使用している ARN がこれと同じである場合、追加の操作は必要ありません。このパイプラインは、ドメインへの書き込みに必要なアクセス許可がすでにあります。ほとんどの環境では、管理者ロールまたは他のロールをマスターロールとして使用するため、これはまれなシナリオです。

次の図は、パイプラインのロールをバックエンドロールにマッピングする方法を示したものです。

Backend roles section showing an AWSIAM role ARN for a pipeline role with a Remove option.