View a markdown version of this page

OpenSearch ドメインへのクロスアカウントデータアクセス - Amazon OpenSearch Service

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

OpenSearch ドメインへのクロスアカウントデータアクセス

1 つのアカウントで OpenSearch UI アプリケーションを設定して、異なるアカウントの OpenSearch ドメインにアクセスできます。クロスアカウントデータソースを使用して OpenSearch UI アプリケーションを作成するときは、ターゲットアカウントの IAM ロールiamRoleForDataSourceArnを指す を指定します。OpenSearch UI は、このロールを引き受け、 es:DescribeDomainを呼び出してドメインアクセシビリティを検証することで、リクエストを検証します。クロスアカウントロールは、コントロールプレーンの検証にのみ使用されます。データプレーンへのアクセスは、ターゲットドメインのアクセスポリシーによって個別に制御されます。

「サンプルコード」

このトピックのコード例は、説明のみを目的としています。基本的な機能を示しており、エラー処理、セキュリティのベストプラクティス、本番稼働用の機能が含まれていない場合があります。本番環境でサンプルコードを使用する前に、特定の要件を満たすようにサンプルコードを確認して変更し、環境で徹底的にテストします。

主要なコンセプト

ソースアカウント

OpenSearch UI アプリケーションをホスト AWS アカウント する 。

ターゲットアカウント

OpenSearch ドメイン AWS アカウント が存在する 。

クロスアカウントロール

コントロールプレーンの検証にのみ使用されるターゲットアカウントの IAM ロール。このロールには アクセスes:DescribeDomain許可のみが必要です。

IAM Identity Center アプリケーションロール

IAM Identity Center ユーザーデータプレーンアクセスに使用されるソースアカウントの IAM ロール。

前提条件

クロスアカウントデータアクセスを設定する前に、以下があることを確認してください。

  • AWS CLI のインストールと設定

  • ソースとターゲットの両方へのアクセス AWS アカウント

  • IAM Identity Center フローの場合: AWS IAM アイデンティティセンター 組織インスタンス

シナリオ

認証方法とドメイン設定に一致するシナリオを選択します。

シナリオ 1: パブリックドメインにアクセスする IAM ユーザー

ステップ 1: クロスアカウント IAM ロールを作成する (ターゲットアカウント)

ソースアカウントがドメイン検証のために引き受けることを許可する IAM ロールをターゲットアカウントに作成します。

クロスアカウントロールを作成するには
  1. ソースアカウントがロールを引き受けることを許可する信頼ポリシーを作成します。

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] }
  2. ロールを作成します。

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. es:DescribeDomain アクションのみを使用してアクセス許可ポリシーを作成します。

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. アクセス許可ポリシーをロールにアタッチします:

    aws iam put-role-policy \ --role-name OpenSearchUIAccessRole \ --policy-name ValidationOnly \ --policy-document file://permissions-policy.json

ステップ 2: OpenSearch ドメインを作成する (ターゲットアカウント)

きめ細かなアクセスコントロールと暗号化を有効にして、ターゲットアカウントに OpenSearch ドメインを作成します。

aws opensearch create-domain \ --domain-name domain-name \ --engine-version OpenSearch_2.19 \ --cluster-config InstanceType=m5.large.search,InstanceCount=1 \ --ebs-options "EBSEnabled=true,VolumeType=gp3,VolumeSize=100" \ --advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"admin","MasterUserPassword":"master-password"}}' \ --node-to-node-encryption-options '{"Enabled":true}' \ --encryption-at-rest-options '{"Enabled":true}' \ --domain-endpoint-options '{"EnforceHTTPS":true,"TLSSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"}' \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"*"},"Action":"es:ESHttp*","Resource":"arn:aws:es:region:target-account-id:domain/domain-name/*"}]}' \ --region region

続行するActive前に、ドメインのステータスが になるまで待ちます。

ステップ 3: OpenSearch UI アプリケーションを作成する (ソースアカウント)

クロスアカウントデータソースを使用してソースアカウントにアプリケーションを作成します。

aws opensearch create-application \ --region region \ --name "cross-account-iam-app" \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/domain-name", "dataSourceDescription":"Cross-account domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"*\"]"}]'

ステップ 4: 検証とアクセス

アプリケーションの詳細を取得してエンドポイント URL を取得します。

aws opensearch get-application \ --region region \ --id application-id
  • レスポンスからアプリケーションエンドポイント URL に移動します。

  • IAM 認証情報を使用してサインインします。

  • IAM ユーザーは、独自の認証情報を使用してデータプレーンリクエストに署名します。

  • ターゲットドメインアクセスポリシーは、ユーザーがアクセスできるデータを制御します。

シナリオ 2: パブリックドメインにアクセスする IAM Identity Center ユーザー

ステップ 1: クロスアカウント IAM ロールを作成する (ターゲットアカウント)

ソースアカウントがドメイン検証のために引き受けることを許可する IAM ロールをターゲットアカウントに作成します。

クロスアカウントロールを作成するには
  1. ソースアカウントがロールを引き受けることを許可する信頼ポリシーを作成します。

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] }
  2. ロールを作成します。

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. es:DescribeDomain アクションのみを使用してアクセス許可ポリシーを作成します。

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. アクセス許可ポリシーをロールにアタッチします:

    aws iam put-role-policy \ --role-name OpenSearchUIAccessRole \ --policy-name ValidationOnly \ --policy-document file://permissions-policy.json

ステップ 2: OpenSearch ドメインを作成する (ターゲットアカウント)

ターゲットアカウントに OpenSearch ドメインを作成します。と同じコマンドを使用しますがステップ 2: OpenSearch ドメインを作成する (ターゲットアカウント)、アクセスポリシーを更新して、ソースアカウントからの IAM Identity Center アプリケーションロールを許可します。

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

続行するActive前に、ドメインのステータスが になるまで待ちます。

ステップ 3: IAM Identity Center アプリケーションの IAM ロールを作成する (ソースアカウント)

OpenSearch UI が IAM Identity Center ユーザーデータプレーンアクセスに使用するソースアカウントに IAM ロールを作成します。

IAM Identity Center アプリケーションロールを作成するには
  1. 信頼ポリシーを作成します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:SetContext", "Condition": { "ForAllValues:ArnEquals": { "sts:RequestContextProviders": "arn:aws:iam::source-account-id:oidc-provider/portal.sso.region.amazonaws.com/apl/application-id" } } } ] }
  2. アクセス許可ポリシーを作成します。

    { "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] }
  3. ロールを作成し、ポリシーをアタッチします。

    aws iam create-role \ --role-name NeoIdCAppRole \ --assume-role-policy-document file://neoidc-trust-policy.json aws iam put-role-policy \ --role-name NeoIdCAppRole \ --policy-name NeoIdCAppPermissions \ --policy-document file://neoidc-permissions-policy.json

ステップ 4: IAM Identity Center を使用して OpenSearch UI アプリケーションを作成する (ソースアカウント)

aws opensearch create-application \ --region region \ --name "cross-account-idc-app" \ --iam-identity-center-options '{ "enabled":true, "iamIdentityCenterInstanceArn":"arn:aws:sso:::instance/ssoins-instance-id", "iamRoleForIdentityCenterApplicationArn":"arn:aws:iam::source-account-id:role/NeoIdCAppRole" }' \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/domain-name", "dataSourceDescription":"Cross-account domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"*\"]"}]'

ステップ 5: IAM Identity Center ユーザーとグループを作成して割り当てる

IAM Identity Center ユーザーを作成する

以下のコマンドを実行してください。プレースホルダー値を、ユーザー自身の情報に置き換えます。

aws identitystore create-user \ --identity-store-id d-directory-id \ --user-name user-email \ --display-name "display-name" \ --name Formatted=string,FamilyName=last-name,GivenName=first-name \ --emails Value=user-email,Type=work,Primary=true
IAM Identity Center グループを作成し、ユーザーを追加する

以下の コマンドを実行します。

aws identitystore create-group \ --identity-store-id d-directory-id \ --display-name "OpenSearchUsers" \ --description "Users with OpenSearch access" aws identitystore create-group-membership \ --identity-store-id d-directory-id \ --group-id group-id \ --member-id UserId=user-id
ユーザーまたはグループをアプリケーションに割り当てる

次のコマンドを実行します。

aws sso-admin create-application-assignment \ --application-arn "arn:aws:sso:::source-account-id:application/ssoins-instance-id/apl-application-id" \ --principal-id user-id-or-group-id \ --principal-type USER
ターゲットドメインでバックエンドロールマッピングを設定する

IAM Identity Center グループをターゲットドメインの OpenSearch セキュリティロールにマッピングします。

curl -XPUT "https://domain-endpoint/_plugins/_security/api/rolesmapping/all_access" \ -u admin:master-password \ -H 'Content-Type: application/json' \ -d '{ "backend_roles": ["group-id"], "hosts": [], "users": [] }'

ステップ 6: 検証とアクセス

aws opensearch get-application \ --region region \ --id application-id
  • アプリケーションエンドポイント URL に移動します。

  • IAM Identity Center ユーザー認証情報を使用してサインインします。

  • IAM Identity Center ユーザーのデータリクエストは、クロスアカウントロールではなく、IAM Identity Center アプリケーションロールで署名されます。

  • ドメインコントロールデータアクセス許可のバックエンドロールマッピング。

シナリオ 3: VPC ドメインにアクセスする IAM ユーザー

ステップ 1: クロスアカウント IAM ロールを作成する (ターゲットアカウント)

ソースアカウントがドメイン検証のために引き受けることを許可する IAM ロールをターゲットアカウントに作成します。

クロスアカウントロールを作成するには
  1. ソースアカウントがロールを引き受けることを許可する信頼ポリシーを作成します。

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] }
  2. ロールを作成します。

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. es:DescribeDomain アクションのみを使用してアクセス許可ポリシーを作成します。

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. アクセス許可ポリシーをロールにアタッチします:

    aws iam put-role-policy \ --role-name OpenSearchUIAccessRole \ --policy-name ValidationOnly \ --policy-document file://permissions-policy.json

ステップ 2: VPC をセットアップする (ターゲットアカウント)

ターゲットアカウントに VPC がすでに存在する場合は、このステップをスキップします。

# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --region region # Create subnet aws ec2 create-subnet \ --vpc-id vpc-id \ --cidr-block 10.0.1.0/24 \ --availability-zone regiona \ --region region # Create security group aws ec2 create-security-group \ --group-name opensearch-vpc-sg \ --description "Security group for OpenSearch VPC domain" \ --vpc-id vpc-id \ --region region # Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-id security-group-id \ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --region region

VPC ドメインの作成について詳しく説明します。

ステップ 3: VPC ドメインを作成する (ターゲットアカウント)

aws opensearch create-domain \ --domain-name vpc-domain-name \ --engine-version OpenSearch_2.19 \ --cluster-config InstanceType=m5.large.search,InstanceCount=1 \ --ebs-options "EBSEnabled=true,VolumeType=gp3,VolumeSize=100" \ --vpc-options "SubnetIds=subnet-id,SecurityGroupIds=security-group-id" \ --advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"admin","MasterUserPassword":"master-password"}}' \ --node-to-node-encryption-options '{"Enabled":true}' \ --encryption-at-rest-options '{"Enabled":true}' \ --domain-endpoint-options '{"EnforceHTTPS":true,"TLSSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"}' \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"*"},"Action":"es:ESHttp*","Resource":"arn:aws:es:region:target-account-id:domain/vpc-domain-name/*"}]}' \ --region region

続行するActive前に、ドメインのステータスが になるまで待ちます。

ステップ 4: OpenSearch UI サービスプリンシパル (ターゲットアカウント) の VPC エンドポイントを承認する

重要

これは VPC ドメインに固有の重要なステップです。OpenSearch UI サービスには、VPC エンドポイントへのアクセスを明示的に許可する必要があります。

# Authorize the service principal aws opensearch authorize-vpc-endpoint-access \ --domain-name vpc-domain-name \ --service "application.opensearchservice.amazonaws.com" \ --region region # Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-name vpc-domain-name \ --region region

予想されるレスポンス

{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }

ステップ 5: OpenSearch UI アプリケーションを作成する (ソースアカウント)

aws opensearch create-application \ --region region \ --name "cross-account-vpc-iam-app" \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/vpc-domain-name", "dataSourceDescription":"Cross-account VPC domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"*\"]"}]'

ステップ 6: 検証とアクセス

アプリケーションの詳細を取得してエンドポイント URL を取得します。

aws opensearch get-application \ --region region \ --id application-id
  • レスポンスからアプリケーションエンドポイント URL に移動します。

  • IAM 認証情報を使用してサインインします。

  • IAM ユーザーは、独自の認証情報を使用してデータプレーンリクエストに署名します。

  • ターゲットドメインアクセスポリシーは、ユーザーがアクセスできるデータを制御します。

シナリオ 4: VPC ドメインにアクセスする IAM Identity Center ユーザー

ステップ 1: クロスアカウント IAM ロールを作成する (ターゲットアカウント)

ソースアカウントがドメイン検証のために引き受けることを許可する IAM ロールをターゲットアカウントに作成します。

クロスアカウントロールを作成するには
  1. ソースアカウントがロールを引き受けることを許可する信頼ポリシーを作成します。

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] }
  2. ロールを作成します。

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. es:DescribeDomain アクションのみを使用してアクセス許可ポリシーを作成します。

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. アクセス許可ポリシーをロールにアタッチします:

    aws iam put-role-policy \ --role-name OpenSearchUIAccessRole \ --policy-name ValidationOnly \ --policy-document file://permissions-policy.json

ステップ 2: VPC をセットアップする (ターゲットアカウント)

ターゲットアカウントに VPC がすでに存在する場合は、このステップをスキップします。

# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --region region # Create subnet aws ec2 create-subnet \ --vpc-id vpc-id \ --cidr-block 10.0.1.0/24 \ --availability-zone regiona \ --region region # Create security group aws ec2 create-security-group \ --group-name opensearch-vpc-sg \ --description "Security group for OpenSearch VPC domain" \ --vpc-id vpc-id \ --region region # Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-id security-group-id \ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --region region

VPC ドメインの作成について詳しく説明します。

ステップ 3: VPC ドメインを作成する (ターゲットアカウント)

と同じコマンドを使用しますがステップ 3: VPC ドメインを作成する (ターゲットアカウント)、アクセスポリシーを更新して、ソースアカウントからの IAM Identity Center アプリケーションロールを許可します。

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

続行するActive前に、ドメインのステータスが になるまで待ちます。

ステップ 4: OpenSearch UI サービスプリンシパル (ターゲットアカウント) の VPC エンドポイントを承認する

重要

これは VPC ドメインに固有の重要なステップです。OpenSearch UI サービスには、VPC エンドポイントへのアクセスを明示的に許可する必要があります。

# Authorize the service principal aws opensearch authorize-vpc-endpoint-access \ --domain-name vpc-domain-name \ --service "application.opensearchservice.amazonaws.com" \ --region region # Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-name vpc-domain-name \ --region region

予想されるレスポンス

{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }

ステップ 5: IAM Identity Center アプリケーションの IAM ロールを作成する (ソースアカウント)

OpenSearch UI が IAM Identity Center ユーザーデータプレーンアクセスに使用するソースアカウントに IAM ロールを作成します。

IAM Identity Center アプリケーションロールを作成するには
  1. 信頼ポリシーを作成します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:SetContext", "Condition": { "ForAllValues:ArnEquals": { "sts:RequestContextProviders": "arn:aws:iam::source-account-id:oidc-provider/portal.sso.region.amazonaws.com/apl/application-id" } } } ] }
  2. アクセス許可ポリシーを作成します。

    { "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] }
  3. ロールを作成し、ポリシーをアタッチします。

    aws iam create-role \ --role-name NeoIdCAppRole \ --assume-role-policy-document file://neoidc-trust-policy.json aws iam put-role-policy \ --role-name NeoIdCAppRole \ --policy-name NeoIdCAppPermissions \ --policy-document file://neoidc-permissions-policy.json

ステップ 6: IAM Identity Center を使用して OpenSearch UI アプリケーションを作成する (ソースアカウント)

aws opensearch create-application \ --region region \ --name "cross-account-vpc-idc-app" \ --iam-identity-center-options '{ "enabled":true, "iamIdentityCenterInstanceArn":"arn:aws:sso:::instance/ssoins-instance-id", "iamRoleForIdentityCenterApplicationArn":"arn:aws:iam::source-account-id:role/NeoIdCAppRole" }' \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/vpc-domain-name", "dataSourceDescription":"Cross-account VPC domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"*\"]"}]'

ステップ 7: IAM Identity Center ユーザーとグループを作成して割り当てる

IAM Identity Center ユーザーを作成する

以下のコマンドを実行してください。プレースホルダー値を、ユーザー自身の情報に置き換えます。

aws identitystore create-user \ --identity-store-id d-directory-id \ --user-name user-email \ --display-name "display-name" \ --name Formatted=string,FamilyName=last-name,GivenName=first-name \ --emails Value=user-email,Type=work,Primary=true
IAM Identity Center グループを作成し、ユーザーを追加する

以下の コマンドを実行します。

aws identitystore create-group \ --identity-store-id d-directory-id \ --display-name "OpenSearchUsers" \ --description "Users with OpenSearch access" aws identitystore create-group-membership \ --identity-store-id d-directory-id \ --group-id group-id \ --member-id UserId=user-id
ユーザーまたはグループをアプリケーションに割り当てる

次のコマンドを実行します。

aws sso-admin create-application-assignment \ --application-arn "arn:aws:sso:::source-account-id:application/ssoins-instance-id/apl-application-id" \ --principal-id user-id-or-group-id \ --principal-type USER
ターゲットドメインでバックエンドロールマッピングを設定する

IAM Identity Center グループをターゲットドメインの OpenSearch セキュリティロールにマッピングします。

curl -XPUT "https://domain-endpoint/_plugins/_security/api/rolesmapping/all_access" \ -u admin:master-password \ -H 'Content-Type: application/json' \ -d '{ "backend_roles": ["group-id"], "hosts": [], "users": [] }'

ステップ 8: 検証とアクセス

aws opensearch get-application \ --region region \ --id application-id
  • アプリケーションエンドポイント URL に移動します。

  • IAM Identity Center ユーザー認証情報を使用してサインインします。

  • IAM Identity Center ユーザーのデータリクエストは、クロスアカウントロールではなく、IAM Identity Center アプリケーションロールで署名されます。

  • ドメインコントロールデータアクセス許可のバックエンドロールマッピング。

アプリケーションの管理

クロスアカウントデータソースを使用してアプリケーションを更新する

以下のコマンドを実行してください。プレースホルダー値を、ユーザー自身の情報に置き換えます。

aws opensearch update-application \ --region region \ --id application-id \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/domain-1", "dataSourceDescription":"First cross-account domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" },{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/domain-2", "dataSourceDescription":"Second cross-account domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]'
重要

更新オペレーションは、データソース配列全体を置き換えます。保持するすべてのデータソースを含めます。

アプリケーションを一覧表示する

次のコマンドを実行します。

aws opensearch list-applications \ --region region
アプリケーションの削除

次のコマンドを実行します。

aws opensearch delete-application \ --region region \ --id application-id
VPC エンドポイントアクセスの取り消し

次のコマンドを実行します。

aws opensearch revoke-vpc-endpoint-access \ --domain-name vpc-domain-name \ --service "application.opensearchservice.amazonaws.com" \ --region region

クイックリファレンス

次の表は、ドメインタイプと認証方法の主な違いをまとめたものです。

VPC ドメインと比較したパブリックドメイン
側面 パブリックドメイン VPC ドメイン
VPC エンドポイント認可 不要 必須 – 認可する必要があります application.opensearchservice.amazonaws.com
ネットワーク設定 なし HTTPS (443) インバウンドの VPC、サブネット、セキュリティグループ
IAM アクセスポリシー 必須 必須
クロスアカウントロール クロスアカウントで必須 クロスアカウントで必須
IAM ユーザーと IAM Identity Center ユーザーの比較
側面 IAM ユーザー IAM Identity Center ユーザー
データプレーンの認証情報 ユーザー独自の IAM 認証情報 IAM Identity Center アプリケーションロール
アクセスコントロール ドメインアクセスポリシー ドメインアクセスポリシーとバックエンドロールマッピング
追加セットアップ なし IAM Identity Center アプリケーションロール、ユーザー/グループの作成、アプリケーションの割り当て、バックエンドロールマッピング
OpenSearch UI アプリケーション設定 IAM Identity Center オプションなし --iam-identity-center-options が必須

重要な注意事項

  • は、 と同じアカウントにあるiamRoleForDataSourceArn必要がありますdataSourceArn

  • iamRoleForDataSourceArn は、クロスアカウントデータソースにのみ必要です。同じアカウントデータソースの場合は省略します。

  • クロスアカウントロールには アクセスes:DescribeDomain許可のみが必要です。データプレーンへのアクセスには使用されません。

  • VPC ドメインの場合、IAM ポリシーと VPC エンドポイント認可の両方を設定する必要があります。

  • サポートされているエンジンバージョン: OpenSearch 1.3 以降。

トラブルシューティング

問題 解決方法
「ドメインにアクセスできません」でアプリケーションの作成が失敗する クロスアカウントロールに アクセスes:DescribeDomain許可があり、信頼ポリシーでソースアカウントが許可されていることを確認します。
VPC ドメインの関連付けが失敗する VPC エンドポイントが に対して承認されていることを確認しますapplication.opensearchservice.amazonaws.com
IAM ユーザーのデータプレーンアクセスが拒否されました ターゲットドメインアクセスポリシーが IAM ユーザーまたはロールプリンシパルを許可していることを確認します。
IAM Identity Center ユーザーのデータプレーンアクセスが拒否されました バックエンドロールマッピングに IAM Identity Center グループ ID が含まれ、ドメインポリシーで IAM Identity Center アプリケーションロールが許可されていることを確認します。
アカウントの不一致エラー iamRoleForDataSourceArn が のドメインと同じアカウントにあることを確認しますdataSourceArn