Amazon Ingestion OpenSearch でのロールとユーザーのセットアップ - Amazon OpenSearch サービス

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

Amazon Ingestion OpenSearch でのロールとユーザーのセットアップ

Amazon Ingestion OpenSearch は、ソースアプリケーションがパイプラインに書き込むことを許可し、パイプラインがシンクに書き込むことを許可するために、さまざまなアクセス許可モデルとIAMロールを使用します。データの取り込みを開始する前に、ユースケースに基づいて特定のアクセス許可を持つ 1 つ以上のIAMロールを作成する必要があります。

パイプラインを正常に設定するには、少なくとも次のロールが必要です。

名前 説明
管理ロール

パイプラインを管理するプリンシパル (一般的には「パイプライン管理者」) には、osis:CreatePipelineosis:UpdatePipeline などのアクセス許可を含む管理アクセスが必要です。これらのアクセス許可により、ユーザーはパイプラインを管理できますが、必ずしもパイプラインにデータを書き込むことができるわけではありません。

パイプラインロール

パイプラインYAMLの設定内で指定するパイプラインロールは、パイプラインがドメインまたはコレクションシンクに書き込み、プルベースのソースから読み取るために必要なアクセス許可を提供します。詳細については、次のトピックを参照してください。

取り込みロール

取り込みロールには、パイプラインリソースの osis:Ingest 許可が含まれています。これにより、プッシュ型のソースはパイプラインにデータを取り込むことができます。

次の図は、Amazon S3 や Fluent Bit などのデータソースから別のアカウントのパイプラインに書き込むときの一般的なパイプライン設定を示しています。この場合、パイプラインにアクセスするには、クライアントが取り込みロールを引き受けている必要があります。詳細については、「クロスアカウント取り込み」を参照してください。

Cross-account data ingestion pipeline showing client application, roles, and OpenSearch sink.

簡単な設定ガイドについては、「チュートリアル: Amazon OpenSearch Ingestion を使用してドメインにデータを取り込む」を参照してください。

トピック

管理ロール

パイプラインの作成と変更に必要な基本的な osis:* 許可に加えて、パイプラインロールリソース用の iam:PassRole 許可も必要です。ロール AWS のサービス を受け入れる は、このアクセス許可を使用する必要があります。 OpenSearch 取り込みは、シンクにデータを書き込む必要があるたびにロールを引き受けます。これにより、管理者は承認されたユーザーのみがアクセス許可を付与するロールを使用して OpenSearch 取り込みを設定できるようになります。詳細については、「 にロールを渡すアクセス許可をユーザーに付与する AWS のサービス」を参照してください。

を使用している場合 AWS Management Console (ブループリントを使用してパイプラインを後でチェックする場合)、パイプラインを作成および更新するには次のアクセス許可が必要です。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Resource":"*", "Action":[ "osis:CreatePipeline", "osis:GetPipelineBlueprint", "osis:ListPipelineBlueprints", "osis:GetPipeline", "osis:ListPipelines", "osis:GetPipelineChangeProgress", "osis:ValidatePipeline", "osis:UpdatePipeline" ] }, { "Resource":[ "arn:aws:iam::your-account-id:role/pipeline-role" ], "Effect":"Allow", "Action":[ "iam:PassRole" ] } ] }

を使用している場合 AWS CLI (パイプラインの事前検証やブループリントを使用しない場合)、パイプラインを作成および更新するには次のアクセス許可が必要です。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Resource":"*", "Action":[ "osis:CreatePipeline", "osis:UpdatePipeline" ] }, { "Resource":[ "arn:aws:iam::your-account-id:role/pipeline-role" ], "Effect":"Allow", "Action":[ "iam:PassRole" ] } ] }

パイプラインロール

パイプラインからシンクに書き込むには、特定のアクセス許可が必要です。これらのアクセス許可は、シンクが OpenSearch サービスドメインか OpenSearch サーバーレスコレクションかによって異なります。

さらに、パイプラインには、ソースアプリケーションからプルするための許可 (ソースがプルベースのプラグインの場合)、および S3 デッドレターキュー (設定されている場合) に書き込むための許可が必要になる場合があります。

ドメインシンクへの書き込み

OpenSearch 取り込みパイプラインには、シンクとして設定された OpenSearch サービスドメインに書き込むためのアクセス許可が必要です。これらのアクセス許可には、ドメインを記述してHTTPリクエストを送信する機能が含まれます。

パイプラインにシンクへの書き込みに必要なアクセス許可を付与するには、まず必要なアクセス許可 を持つ AWS Identity and Access Management (IAM) ロールを作成します。これらのアクセス許可は、パブリックパイプラインとVPCパイプラインで同じです。次に、ドメインがパイプラインからの書き込みリクエストを受け入れることができるように、ドメインアクセスポリシーでパイプラインロールを指定します。

最後に、パイプライン設定内の sts_role_arn オプションの値ARNとしてロールを指定します。

version: "2" source: http: ... processor: ... sink: - opensearch: ... aws: sts_role_arn: arn:aws:iam::your-account-id:role/pipeline-role

これらの各ステップを完了する手順については、「パイプラインにドメインへのアクセスを許可する」を参照してください。

コレクションシンクへの書き込み

OpenSearch 取り込みパイプラインには、シンクとして設定された OpenSearch サーバーレスコレクションに書き込むためのアクセス許可が必要です。これらのアクセス許可には、コレクションを記述してHTTPリクエストを送信する機能が含まれます。

まず、すべてのリソース () に対する アクセスaoss:BatchGetCollection許可を持つ IAMロールを作成します*。次に、このロールをデータアクセスポリシーに追加し、インデックスの作成、インデックスの更新、インデックスの記述、コレクション内でのドキュメントの書き込みを行うためのアクセス権限をそれに付与します。最後に、パイプライン設定内の sts_role_arn オプションの値ARNとしてロールを指定します。

これらの各ステップを完了する手順については、「パイプラインにコレクションへのアクセスを許可する」を参照してください。

デッドレターキューへの書き込み

デッドレターキュー (DLQ) に書き込むようにパイプラインを設定する場合は、DLQ設定に sts_role_arnオプションを含める必要があります。このロールに含まれるアクセス許可により、パイプラインはDLQイベントの宛先として指定した S3 バケットにアクセスできます。

すべてのパイプラインコンポーネントで同じ sts_role_arn を使用する必要があります。したがって、DLQアクセスを提供するパイプラインロールに別のアクセス許可ポリシーをアタッチする必要があります。少なくとも、ロールにはバケットリソースに対する S3:PutObject アクションが許可されている必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "WriteToS3DLQ", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-dlq-bucket/*" } ] }

その後、パイプラインDLQの設定内でロールを指定できます。

... sink: opensearch: dlq: s3: bucket: "my-dlq-bucket" key_path_prefix: "dlq-files" region: "us-west-2" sts_role_arn: "arn:aws:iam::your-account-id:role/pipeline-role"

取り込みロール

Ingestion OpenSearch が現在サポートしているすべてのソースプラグインは、S3 を除き、プッシュベースのアーキテクチャを使用します。つまり、パイプラインがソースからデータを取得するのではなく、ソースアプリケーションがデータをパイプラインにプッシュします。

したがって、ソースアプリケーションに、 OpenSearch 取り込みパイプラインにデータを取り込むために必要なアクセス許可を付与する必要があります。少なくとも、リクエストに署名するロールには、パイプラインにデータを送信できるようにする osis:Ingest アクションの許可を付与する必要があります。パブリックエンドポイントとVPCパイプラインエンドポイントにも同じアクセス許可が必要です。

次のサンプルポリシーでは、関連するプリンシパルが my-pipeline という名前の 1 つのパイプラインにデータを取り込むことを許可しています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PermitsWriteAccessToPipeline", "Effect": "Allow", "Action": "osis:Ingest", "Resource": "arn:aws:osis:region:your-account-id:pipeline/pipeline-name" } ] }

詳細については、「Amazon Ingestion OpenSearch パイプライン統合の使用」を参照してください。

クロスアカウント取り込み

アプリケーションアカウントなど AWS アカウント、別の からパイプラインにデータを取り込む必要がある場合があります。クロスアカウント取り込みを設定するには、パイプラインと同じアカウント内で取り込みロールを定義し、その取り込みロールとアプリケーションアカウント間に信頼関係を確立します。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::external-account-id:root" }, "Action": "sts:AssumeRole" }] }

次に、取り込みロールを引き受けるようにアプリケーションを設定します。アプリケーションアカウントは、パイプラインアカウントの取り込みロールのアクセスAssumeRole許可をアプリケーションロールに付与する必要があります。

詳細な手順とIAMポリシーの例については、「」を参照してくださいクロスアカウント取り込みアクセスの提供