Amazon OpenSearch Ingestion のロールとユーザーの設定 - Amazon OpenSearch Service

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

Amazon OpenSearch Ingestion のロールとユーザーの設定

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

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

名前 説明
パイプラインロール

パイプラインロールは、パイプラインがソースから読み取り、ドメインまたはコレクションシンクに書き込むために必要なアクセス許可を提供します。パイプラインロールは手動で作成することも、OpenSearch Ingestion で作成することもできます。

取り込みロール

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

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

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

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

トピック

パイプラインロール

パイプラインには、ソースから読み取り、シンクに書き込むための特定のアクセス許可が必要です。これらのアクセス許可は、クライアントアプリケーションまたはパイプラインに書き込む AWS のサービス 、およびシンクが OpenSearch Service ドメイン、OpenSearch Serverless コレクション、または Amazon S3 OpenSearch のいずれであるかによって異なります。さらに、パイプラインでは、ソースアプリケーションからデータを物理的にプルするアクセス許可 (ソースがプルベースのプラグインの場合) と、有効にすると S3 デッドレターキューに書き込むアクセス許可が必要になる場合があります。

パイプラインを作成するときは、手動で作成した既存の IAM ロールを指定するか、OpenSearch Ingestion で選択したソースとシンクに基づいてパイプラインロールを自動的に作成するかを選択できます。次の図は、 でパイプラインロールを指定する方法を示しています AWS Management Console。

Pipeline role selection interface with options to create new or use existing IAM role.

パイプラインロールの作成の自動化

OpenSearch Ingestion でパイプラインロールを作成するように選択できます。設定されたソースとシンクに基づいて、ロールに必要なアクセス許可が自動的に識別されます。プレフィックス とOpenSearchIngestion-、入力したサフィックスを持つ IAM ロールを作成します。たとえば、サフィックスPipelineRoleとして と入力すると、OpenSearch Ingestion は という名前のロールを作成しますOpenSearchIngestion-PipelineRole

パイプラインロールを自動的に作成すると、セットアッププロセスが簡素化され、設定エラーの可能性が軽減されます。ロールの作成を自動化することで、アクセス許可を手動で割り当てることを回避し、セキュリティの誤設定のリスクなしに正しいポリシーを適用できます。これにより、複数のパイプラインデプロイ間で整合性を確保しながら、ベストプラクティスを適用することで、時間を節約し、セキュリティコンプライアンスを強化できます。

OpenSearch Ingestion のみが でパイプラインロールを自動的に作成できます AWS Management Console。 AWS CLI、OpenSearch Ingestion API、またはいずれかの SDKs を使用している場合は、手動で作成したパイプラインロールを指定する必要があります。

OpenSearch Ingestion でロールを作成するには、新しいサービスロールを作成して使用します

重要

パイプラインロールへのアクセスを許可するには、ドメインまたはコレクションアクセスポリシーを手動で変更する必要があります。きめ細かなアクセスコントロールを使用するドメインの場合は、パイプラインロールをバックエンドロールにマッピングする必要があります。これらのステップは、パイプラインの作成前または作成後に実行できます。

手順については、以下のトピックを参照してください。

パイプラインロールの手動作成

特定のセキュリティまたはコンプライアンス要件を満たすためにアクセス許可をより細かく制御する必要がある場合は、パイプラインロールを手動で作成することをお勧めします。手動作成では、既存のインフラストラクチャまたはアクセス管理戦略に合わせてロールを調整できます。また、手動セットアップを選択して、ロールを他の と統合 AWS のサービス したり、独自の運用ニーズに合わせて調整したりできます。

手動で作成したパイプラインロールを選択するには、既存の IAM ロールを使用する を選択し、既存のロールを選択します。ロールには、選択したソースからデータを受信し、選択したシンクに書き込むために必要なすべてのアクセス許可が必要です。以下のセクションでは、パイプラインロールを手動で作成する方法について説明します。

ソースから読み取るアクセス許可

OpenSearch Ingestion パイプラインには、指定されたソースからデータを読み取って受信するためのアクセス許可が必要です。例えば、Amazon DynamoDB ソースの場合、 dynamodb:DescribeTableや などのアクセス許可が必要ですdynamodb:DescribeStream。Amazon S3、Fluent Bit、OpenTelemetry Collector などの一般的なソースのパイプラインロールアクセスポリシーの例については、「」を参照してくださいAmazon OpenSearch Ingestion パイプラインを他のサービスやアプリケーションと統合する

ドメインシンクに書き込むアクセス許可

OpenSearch Ingestion パイプラインには、シンクとして設定されている OpenSearch Service ドメインに書き込むためのアクセス許可が必要です。これらのアクセス許可には、ドメインを記述して、そこに HTTP リクエストを送信できることが含まれます。これらのアクセス許可は、パブリックドメインと VPC ドメインで同じです。パイプラインロールを作成し、ドメインアクセスポリシーで指定する手順については、「パイプラインによるドメインへのアクセスを許可する」を参照してください。

コレクションシンクに書き込むアクセス許可

シンクとして設定されている OpenSearch Serverless コレクションに書き込みを行うときは、OpenSearch Ingestion パイプラインにアクセス権限が必要になります。これらのアクセス権限には、コレクションを記述しそこに HTTP リクエストを送信できることが含まれます。

まず、パイプラインロールのアクセスポリシーが必要なアクセス許可を付与していることを確認します。次に、このロールをデータアクセスポリシーに追加し、インデックスの作成、インデックスの更新、インデックスの記述、コレクション内でのドキュメントの書き込みを行うためのアクセス権限をそれに付与します。これらの各ステップを完了する手順については、「パイプラインにコレクションへのアクセスを許可する」を参照してください。

Amazon S3 またはデッドレターキューに書き込むアクセス許可

パイプラインのシンク送信先として Amazon S3 を指定する場合、またはデッドレターキュー (DLQ) を有効にする場合、パイプラインロールは送信先として指定した S3 バケットへのアクセスを許可する必要があります。

DLQ アクセスを提供するパイプラインロールに別のアクセス許可ポリシーをアタッチします。少なくとも、ロールにバケットリソースに対する S3:PutObjectアクションを付与する必要があります。

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

取り込みロール

取り込みロールは、外部サービスが OpenSearch Ingestion パイプラインと安全にやり取りしてデータを送信できるようにする IAM ロールです。Amazon Security Lake などのプッシュベースのソースの場合、このロールは、 を含むパイプラインにデータをプッシュするアクセス許可を付与する必要がありますosis:Ingest。Amazon S3 などのプルベースのソースの場合、ロールは OpenSearch Ingestion を有効にして引き受け、必要なアクセス許可でデータにアクセスする必要があります。

プッシュベースのソースの取り込みロール

プッシュベースのソースの場合、データは Amazon Security Lake や Amazon DynamoDB などの別のサービスから取り込みパイプラインに送信またはプッシュされます。このシナリオでは、取り込みロールには、少なくともパイプラインを操作するためのosis:Ingestアクセス許可が必要です。

次の IAM アクセスポリシーは、このアクセス許可を取り込みロールに付与する方法を示しています。

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

プルベースのソースの取り込みロール

プルベースのソースの場合、OpenSearch Ingestion パイプラインは Amazon S3 などの外部ソースからデータをアクティブにプルまたは取得します。この場合、パイプラインはデータソースにアクセスするために必要なアクセス許可を付与する IAM パイプラインロールを引き受ける必要があります。これらのシナリオでは、取り込みロールパイプラインロールと同義です。

ロールには、OpenSearch Ingestion がロールを引き受けることを許可する信頼関係と、データソースに固有のアクセス許可を含める必要があります。詳細については、「ソースから読み取るアクセス許可」を参照してください。

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

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

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

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

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