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

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

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

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

パイプラインの設定でロールを指定する前に、適切な信頼関係を使ってこれを設定し、ドメインのアクセスポリシーでこのドメインへのアクセス許可を付与します。

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

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

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

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

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

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

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

さらに、いわゆる混乱した使節の問題からご自身を守るために、aws:SourceAccountaws:SourceArn の条件キーをポリシーに追加することが推奨されています。送信元アカウントは、このパイプラインの所有者です。

例えば、次の条件ブロックをポリシーに追加できます。

"Condition": { "StringEquals": { "aws:SourceAccount": "your-account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:osis:region:your-account-id:pipeline/*" } }

ステップ 2: パイプラインのロールをドメインアクセスポリシーに追加する

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

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::your-account-id:role/pipeline-role" }, "Action": ["es:DescribeDomain", "es:ESHttp*"], "Resource": "arn:aws:es:region:your-account-id:domain/domain-name/*" } ] }

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

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

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

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

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

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

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

ステップ 4: パイプライン設定でロールを指定する

パイプラインを作成するには、ステップ 1 で作成したパイプラインロールを、パイプライン設定の sts_role_arn パラメータとして指定する必要があります。パイプラインは、OpenSearch Service ドメインシンクへのリクエストに署名するために、このロールを引き受けます。

sts_role_arn フィールドで、IAM パイプラインのロールの ARN を指定します。

version: "2" log-pipeline: source: http: path: "/${pipelineName}/logs" processor: - grok: match: log: [ "%{COMMONAPACHELOG}" ] sink: - opensearch: hosts: [ "https://search-domain-name.us-east-1.es.amazonaws.com" ] index: "my-index" aws: region: "region" sts_role_arn: "arn:aws:iam::your-account-id:role/pipeline-role"

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