クロスアカウント取り込み用の OpenSearch Ingestion パイプラインの設定 - Amazon OpenSearch Service

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

クロスアカウント取り込み用の OpenSearch Ingestion パイプラインの設定

HTTP や OTel などのプッシュベースのソースの場合、Amazon OpenSearch Ingestion を使用すると、仮想プライベートクラウド (VPC) AWS アカウントから別の VPC 内のパイプラインエンドポイントにパイプラインを共有できます。組織内の他のチームと分析を共有するチームは、この機能を使用することで、ログ分析の共有などをより合理化された方法で行うことができます。

このセクションでは以下の用語を使用します。

  • パイプライン所有者 – OpenSearch Ingestion パイプラインを所有および管理するアカウント。パイプラインを所有できるのは 1 つのアカウントのみです。

  • 接続アカウント – 共有パイプラインに接続して使用するアカウント。複数のアカウントが同じパイプラインに接続できます。

OpenSearch Ingestion パイプラインを共有するように VPCs を設定するにはAWS アカウント、以下で説明するように、次のタスクを実行します。

[開始する前に]

OpenSearch Ingestion パイプラインを共有するように VPCs を設定する前にAWS アカウント、次のタスクを完了します。

タスク Details

1 つ以上の OpenSearch Ingestion パイプラインを作成する

OpenSearch コンピューティングユニット (OSU) の最小値を 2 以上に設定します。詳細については、「Amazon OpenSearch Ingestion パイプラインの作成」を参照してください。パイプライン更新の詳細については、「Amazon OpenSearch Ingestion パイプラインの更新」を参照してください。

OpenSearch Ingestion 用の VPC を 1 つ以上作成する

クロスアカウントパイプライン共有を有効にするには、パイプラインとパイプラインエンドポイントに関連する VPC に次の DNS 値を設定する必要があります。

  • enableDnsSupport=true

  • enableDnsHostnames=true

詳細については、「Amazon VPC ユーザーガイド」の「VPC の DNS 属性」を参照してください。

パイプラインへのアクセスを接続アカウントに許可する

このセクションの手順では、OpenSearch Service コンソールと を使用してAWS CLI、リソースポリシーを作成してクロスアカウントパイプラインアクセスを設定する方法について説明します。リソースポリシーを使用することで、パイプライン所有者はパイプラインにアクセスできる他のアカウントを指定できます。作成後、パイプラインポリシーは、パイプラインが存在する限り、またはポリシーが削除されるまで維持されます。

注記

リソースポリシーは、IAM アクセス許可を使用した標準の OpenSearch Ingestion 認可に代わるものではありません。リソースポリシーは、クロスアカウントパイプラインアクセスを有効にするための追加の認可メカニズムです。

パイプラインへのアクセスを接続アカウントに許可する (コンソール)

次の手順では、Amazon OpenSearch Service コンソールを使用して接続アカウントにパイプラインへのアクセスを許可します。

パイプラインエンドポイント接続を作成するには
  1. Amazon OpenSearch Service コンソールのナビゲーションペインで、[取り込み] を展開し、[パイプライン] を選択します。

  2. [パイプライン] セクションで、接続アカウントにアクセス許可を付与するパイプラインの名前を選択します。

  3. [VPC エンドポイント] タブを選択します。

  4. [認定プリンシパル] セクションで、[アカウントを認証する] を選択します。

  5. [AWS アカウント ID] フィールドに 12 桁の数字のアカウント ID を入力し、[承認] を選択します。

パイプラインへのアクセスを接続アカウントに許可する (CLI)

次の手順では、AWS CLI を使用して接続アカウントにパイプラインへのアクセスを許可します。

接続アカウントにパイプラインへのアクセスを許可するには
  1. を最新バージョン (AWS CLIバージョン 2.0) に更新します。詳細については、「AWS CLIの最新バージョンのインストールまたは更新」を参照してください。

  2. アカウントで CLI を開き、共有するパイプラインAWS リージョンを使用します。

  3. 次のコマンドを実行して、パイプラインのリソースポリシーを作成します。このポリシーは、パイプラインに対する osis:CreatePipelineEndpoint アクセス許可を付与します。ポリシーには、許可する AWS アカウント ID を一覧表示できるパラメータが含まれています。

    注記

    次のコマンドでは、12 桁のアカウント ID のみを指定して、短い形式のアカウント ID を使用する必要があります。ARN を使用しても機能しません。また、次に示すように、resource-arn の CLI パラメータおよび、Resource のポリシー JSON でパイプラインの Amazon リソースネーム (ARN) を指定する必要があります。

    aws --region region osis-cross-account put-resource-policy \ --resource-arn arn:aws:osis:region:pipeline-owner-account-ID:pipeline/pipeline-name --policy 'IAM-policy'

    IAM ポリシーに次のようなポリシーを使用する

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAccess", "Effect": "Allow", "Principal": { "AWS": [ "111122223333", "444455556666" ] }, "Action": "osis:CreatePipelineEndpoint", "Resource": "arn:aws:osis:us-east-1:123456789012:pipeline/pipeline-name" } ] }

接続する VPC ごとにパイプラインエンドポイント接続を作成する

パイプライン所有者が前の手順を使用して VPC 内のパイプラインへのアクセスを許可すると、接続アカウントのユーザーは VPC にパイプラインエンドポイントを作成します。このセクションでは、OpenSearch Service コンソールと AWS CLI を使用してエンドポイントを作成する手順について説明します。エンドポイントを作成すると、OpenSearch Ingestion は次のアクションを実行します。

  • AWSServiceRoleForAmazonOpenSearchIngestionService サービスにリンクされたロールがまだ存在しない場合は、アカウントにロールを作成します。このロールは、接続アカウントのユーザーに CreatePipelineEndpoint API アクションを呼び出すアクセス許可を付与します。

  • パイプラインエンドポイントを作成します。

  • パイプライン所有者 VPC の共有パイプラインからデータを取り込むようにパイプラインエンドポイントを設定します。

パイプラインエンドポイント接続の作成 (コンソール)

次の手順では、OpenSearch Service コンソールを使用してパイプラインエンドポイント接続を作成します。

パイプラインエンドポイント接続を作成するには
  1. Amazon OpenSearch Service コンソールのナビゲーションペインで、[取り込み] を展開し、[VPC エンドポイント] を選択します。

  2. [VPC エンドポイント] ページで、[作成] を選択します。

  3. [パイプラインの場所]で、オプションを選択します。[現在のアカウント] を選択した場合は、リストからパイプラインを選択します。[クロスアカウント] を選択した場合は、フィールドにパイプライン ARN を入力します。「パイプラインへのアクセスを接続アカウントに許可する」で説明されているように、パイプライン所有者がパイプラインへのアクセスを許可している必要があります。

  4. [VPC 設定] セクションの [VPC] で、リストから VPC を選択します。

  5. [Subnets (サブネット)] では、1 個のサブネットを選択します。

  6. [セキュリティグループ] で、グループを選択します。

  7. [エンドポイントの作成] を選択します。

作成したエンドポイントのステータスが ACTIVE に移行するのを待ちます。パイプラインが ACTIVE になると、ingestEndpointUrl という名前の新しいフィールドが表示されます。このエンドポイントを使用してパイプラインにアクセスし、FluentBit などのクライアントを使用してデータを取り込みます。FluentBit を使用してデータを取り込む方法については、「OpenSearch Ingestion パイプラインを Fluent Bit で使用する」を参照してください。

注記

ingestEndpointUrl は、すべての接続アカウントに対して同じ URL となります。

パイプラインエンドポイント接続の作成 (CLI)

次の手順では、AWS CLI を使用してパイプラインエンドポイント接続を作成します

パイプラインエンドポイント接続を作成するには
  1. まだ更新していない場合は、最新バージョンの AWS CLI(バージョン 2.0) に更新してください。詳細については、「AWS CLIの最新バージョンのインストールまたは更新」を参照してください。

  2. 共有パイプラインAWS リージョンを持つ の接続アカウントで CLI を開きます。

  3. 次のコマンドを実行してパイプラインエンドポイントを作成します。

    注記

    接続アカウント VPC には、少なくとも 1 つのサブネットと 1 つのセキュリティグループを指定する必要があります。セキュリティグループにはポート 443 が含まれ、接続アカウント VPC でクライアントをサポートする必要があります。

    aws osis --region region create-pipeline-endpoint \ --pipeline-arn arn:aws:osis:region:connecting-account-ID:pipeline/shared-pipeline-name --vpc-options SecurityGroupIds={sg-security-group-ID-1,sg-security-group-ID-2},SubnetIds=subnet-subnet-ID
  4. 次のコマンドを実行して、前のコマンドで指定したリージョンのエンドポイントを一覧表示します。

    aws osis-cross-account --region region list-pipeline-endpoints

作成したエンドポイントのステータスが ACTIVE に移行するのを待ちます。パイプラインが ACTIVE になると、ingestEndpointUrl という名前の新しいフィールドが表示されます。このエンドポイントを使用してパイプラインにアクセスし、FluentBit などのクライアントを使用してデータを取り込みます。FluentBit を使用してデータを取り込む方法については、「OpenSearch Ingestion パイプラインを Fluent Bit で使用する」を参照してください。

注記

ingestEndpointUrl は、すべての接続アカウントに対して同じ URL となります。

パイプラインエンドポイントの削除

共有パイプラインへのアクセス提供を中止したい場合は、次のいずれかの方法を使用してパイプラインエンドポイントを削除できます。

  • パイプラインエンドポイントの削除 (接続アカウント側)。

  • パイプラインエンドポイントの取り消し (パイプライン所有者側)。

次の手順では、接続アカウントのパイプラインエンドポイントを削除します。

パイプラインエンドポイントを削除するには (接続アカウント側)
  1. 共有パイプラインAWS リージョンを持つ の接続アカウントで CLI を開きます。

  2. 次のコマンドを実行して、 リージョンのパイプラインエンドポイントを一覧表示します。

    aws osis-cross-account --region region list-pipeline-endpoints

    削除したいパイプライン ID をメモします。

  3. 以下のコマンドを実行して、パイプラインエンドポイントを削除します。

    aws osis-cross-account --region region delete-pipeline-endpoint \ --endpoint-id 'ID'

共有パイプラインのパイプライン所有者は、次の手順を使用してパイプラインエンドポイントを取り消すことができます。

パイプラインエンドポイントを取り消すには (パイプライン所有者側)
  1. 共有パイプラインAWS リージョンを持つ の接続アカウントで CLI を開きます。

  2. 次のコマンドを実行して、リージョンのパイプラインエンドポイント接続を一覧表示します。

    aws osis-cross-account --region region list-pipeline-endpoint-connections

    削除したいパイプライン ID をメモします。

  3. 以下のコマンドを実行して、パイプラインエンドポイントを削除します。

    aws osis-cross-account --region region revoke-pipeline-endpoint-connections \ --pipeline-arn pipeline-arn --endpoint-ids ID

    コマンドでは、エンドポイント ID を 1 つだけ指定できます。