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

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

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

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

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

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

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

次のポリシー例では、パイプライン設定の 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/*" } ] }

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

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

{ "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) と異なる場合は、パイプラインロールをall_accessバックエンドロールに OpenSearchマッピングする必要があります。これにより、パイプラインロールが追加のマスターユーザーとして、実質的に追加されます。詳細については、「追加のマスターユーザー」を参照してください。

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

シナリオ 3: 同じマスターロールとパイプラインロール (一般的でない) – をマスターユーザーIAMARNとして使用していて、パイプラインロール (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 サービスドメインシンクへのリクエストに署名するために、このロールを引き受けます。

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 Ingestion OpenSearch パイプラインでサポートされているプラグインとオプション」を参照してください。