翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 ロールをターゲットアカウントに作成します。
クロスアカウントロールを作成するには
-
ソースアカウントがロールを引き受けることを許可する信頼ポリシーを作成します。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
ロールを作成します。
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
es:DescribeDomainアクションのみを使用してアクセス許可ポリシーを作成します。{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
アクセス許可ポリシーをロールにアタッチします:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
ステップ 2: OpenSearch ドメインを作成する (ターゲットアカウント)
きめ細かなアクセスコントロールと暗号化を有効にして、ターゲットアカウントに OpenSearch ドメインを作成します。
aws opensearch create-domain \ --domain-namedomain-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/*"}]}' \ --regionregion
続行するActive前に、ドメインのステータスが になるまで待ちます。
ステップ 3: OpenSearch UI アプリケーションを作成する (ソースアカウント)
クロスアカウントデータソースを使用してソースアカウントにアプリケーションを作成します。
aws opensearch create-application \ --regionregion\ --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 \ --regionregion\ --idapplication-id
-
レスポンスからアプリケーションエンドポイント URL に移動します。
-
IAM 認証情報を使用してサインインします。
-
IAM ユーザーは、独自の認証情報を使用してデータプレーンリクエストに署名します。
-
ターゲットドメインアクセスポリシーは、ユーザーがアクセスできるデータを制御します。
シナリオ 2: パブリックドメインにアクセスする IAM Identity Center ユーザー
ステップ 1: クロスアカウント IAM ロールを作成する (ターゲットアカウント)
ソースアカウントがドメイン検証のために引き受けることを許可する IAM ロールをターゲットアカウントに作成します。
クロスアカウントロールを作成するには
-
ソースアカウントがロールを引き受けることを許可する信頼ポリシーを作成します。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
ロールを作成します。
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
es:DescribeDomainアクションのみを使用してアクセス許可ポリシーを作成します。{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
アクセス許可ポリシーをロールにアタッチします:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --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 アプリケーションロールを作成するには
-
信頼ポリシーを作成します。
{ "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" } } } ] } -
アクセス許可ポリシーを作成します。
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] } -
ロールを作成し、ポリシーをアタッチします。
aws iam create-role \ --role-nameNeoIdCAppRole\ --assume-role-policy-document file://neoidc-trust-policy.jsonaws iam put-role-policy \ --role-nameNeoIdCAppRole\ --policy-nameNeoIdCAppPermissions\ --policy-document file://neoidc-permissions-policy.json
ステップ 4: IAM Identity Center を使用して OpenSearch UI アプリケーションを作成する (ソースアカウント)
aws opensearch create-application \ --regionregion\ --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-idd-directory-id\ --user-nameuser-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-idd-directory-id\ --display-name "OpenSearchUsers" \ --description "Users with OpenSearch access" aws identitystore create-group-membership \ --identity-store-idd-directory-id\ --group-idgroup-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-iduser-id-or-group-id\ --principal-typeUSER
ターゲットドメインでバックエンドロールマッピングを設定する
IAM Identity Center グループをターゲットドメインの OpenSearch セキュリティロールにマッピングします。
curl -XPUT "https://domain-endpoint/_plugins/_security/api/rolesmapping/all_access" \ -uadmin:master-password\ -H 'Content-Type: application/json' \ -d '{ "backend_roles": ["group-id"], "hosts": [], "users": [] }'
ステップ 6: 検証とアクセス
aws opensearch get-application \ --regionregion\ --idapplication-id
-
アプリケーションエンドポイント URL に移動します。
-
IAM Identity Center ユーザー認証情報を使用してサインインします。
-
IAM Identity Center ユーザーのデータリクエストは、クロスアカウントロールではなく、IAM Identity Center アプリケーションロールで署名されます。
-
ドメインコントロールデータアクセス許可のバックエンドロールマッピング。
シナリオ 3: VPC ドメインにアクセスする IAM ユーザー
ステップ 1: クロスアカウント IAM ロールを作成する (ターゲットアカウント)
ソースアカウントがドメイン検証のために引き受けることを許可する IAM ロールをターゲットアカウントに作成します。
クロスアカウントロールを作成するには
-
ソースアカウントがロールを引き受けることを許可する信頼ポリシーを作成します。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
ロールを作成します。
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
es:DescribeDomainアクションのみを使用してアクセス許可ポリシーを作成します。{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
アクセス許可ポリシーをロールにアタッチします:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
ステップ 2: VPC をセットアップする (ターゲットアカウント)
ターゲットアカウントに VPC がすでに存在する場合は、このステップをスキップします。
# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --regionregion# Create subnet aws ec2 create-subnet \ --vpc-idvpc-id\ --cidr-block 10.0.1.0/24 \ --availability-zoneregiona \ --regionregion# Create security group aws ec2 create-security-group \ --group-nameopensearch-vpc-sg\ --description "Security group for OpenSearch VPC domain" \ --vpc-idvpc-id\ --regionregion# Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-idsecurity-group-id\ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --regionregion
VPC ドメインの作成について詳しく説明します。
ステップ 3: VPC ドメインを作成する (ターゲットアカウント)
aws opensearch create-domain \ --domain-namevpc-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/*"}]}' \ --regionregion
続行するActive前に、ドメインのステータスが になるまで待ちます。
ステップ 4: OpenSearch UI サービスプリンシパル (ターゲットアカウント) の VPC エンドポイントを承認する
重要
これは VPC ドメインに固有の重要なステップです。OpenSearch UI サービスには、VPC エンドポイントへのアクセスを明示的に許可する必要があります。
# Authorize the service principal aws opensearch authorize-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --regionregion# Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-namevpc-domain-name\ --regionregion
予想されるレスポンス
{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }
ステップ 5: OpenSearch UI アプリケーションを作成する (ソースアカウント)
aws opensearch create-application \ --regionregion\ --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 \ --regionregion\ --idapplication-id
-
レスポンスからアプリケーションエンドポイント URL に移動します。
-
IAM 認証情報を使用してサインインします。
-
IAM ユーザーは、独自の認証情報を使用してデータプレーンリクエストに署名します。
-
ターゲットドメインアクセスポリシーは、ユーザーがアクセスできるデータを制御します。
シナリオ 4: VPC ドメインにアクセスする IAM Identity Center ユーザー
ステップ 1: クロスアカウント IAM ロールを作成する (ターゲットアカウント)
ソースアカウントがドメイン検証のために引き受けることを許可する IAM ロールをターゲットアカウントに作成します。
クロスアカウントロールを作成するには
-
ソースアカウントがロールを引き受けることを許可する信頼ポリシーを作成します。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
ロールを作成します。
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
es:DescribeDomainアクションのみを使用してアクセス許可ポリシーを作成します。{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
アクセス許可ポリシーをロールにアタッチします:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
ステップ 2: VPC をセットアップする (ターゲットアカウント)
ターゲットアカウントに VPC がすでに存在する場合は、このステップをスキップします。
# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --regionregion# Create subnet aws ec2 create-subnet \ --vpc-idvpc-id\ --cidr-block 10.0.1.0/24 \ --availability-zoneregiona \ --regionregion# Create security group aws ec2 create-security-group \ --group-nameopensearch-vpc-sg\ --description "Security group for OpenSearch VPC domain" \ --vpc-idvpc-id\ --regionregion# Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-idsecurity-group-id\ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --regionregion
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-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --regionregion# Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-namevpc-domain-name\ --regionregion
予想されるレスポンス
{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }
ステップ 5: IAM Identity Center アプリケーションの IAM ロールを作成する (ソースアカウント)
OpenSearch UI が IAM Identity Center ユーザーデータプレーンアクセスに使用するソースアカウントに IAM ロールを作成します。
IAM Identity Center アプリケーションロールを作成するには
-
信頼ポリシーを作成します。
{ "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" } } } ] } -
アクセス許可ポリシーを作成します。
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] } -
ロールを作成し、ポリシーをアタッチします。
aws iam create-role \ --role-nameNeoIdCAppRole\ --assume-role-policy-document file://neoidc-trust-policy.jsonaws iam put-role-policy \ --role-nameNeoIdCAppRole\ --policy-nameNeoIdCAppPermissions\ --policy-document file://neoidc-permissions-policy.json
ステップ 6: IAM Identity Center を使用して OpenSearch UI アプリケーションを作成する (ソースアカウント)
aws opensearch create-application \ --regionregion\ --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-idd-directory-id\ --user-nameuser-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-idd-directory-id\ --display-name "OpenSearchUsers" \ --description "Users with OpenSearch access" aws identitystore create-group-membership \ --identity-store-idd-directory-id\ --group-idgroup-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-iduser-id-or-group-id\ --principal-typeUSER
ターゲットドメインでバックエンドロールマッピングを設定する
IAM Identity Center グループをターゲットドメインの OpenSearch セキュリティロールにマッピングします。
curl -XPUT "https://domain-endpoint/_plugins/_security/api/rolesmapping/all_access" \ -uadmin:master-password\ -H 'Content-Type: application/json' \ -d '{ "backend_roles": ["group-id"], "hosts": [], "users": [] }'
ステップ 8: 検証とアクセス
aws opensearch get-application \ --regionregion\ --idapplication-id
-
アプリケーションエンドポイント URL に移動します。
-
IAM Identity Center ユーザー認証情報を使用してサインインします。
-
IAM Identity Center ユーザーのデータリクエストは、クロスアカウントロールではなく、IAM Identity Center アプリケーションロールで署名されます。
-
ドメインコントロールデータアクセス許可のバックエンドロールマッピング。
アプリケーションの管理
クロスアカウントデータソースを使用してアプリケーションを更新する
以下のコマンドを実行してください。プレースホルダー値を、ユーザー自身の情報に置き換えます。
aws opensearch update-application \ --regionregion\ --idapplication-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 \ --regionregion
アプリケーションの削除
次のコマンドを実行します。
aws opensearch delete-application \ --regionregion\ --idapplication-id
VPC エンドポイントアクセスの取り消し
次のコマンドを実行します。
aws opensearch revoke-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --regionregion
クイックリファレンス
次の表は、ドメインタイプと認証方法の主な違いをまとめたものです。
| 側面 | パブリックドメイン | VPC ドメイン |
|---|---|---|
| VPC エンドポイント認可 | 不要 | 必須 – 認可する必要があります application.opensearchservice.amazonaws.com |
| ネットワーク設定 | なし | HTTPS (443) インバウンドの VPC、サブネット、セキュリティグループ |
| IAM アクセスポリシー | 必須 | 必須 |
| クロスアカウントロール | クロスアカウントで必須 | クロスアカウントで必須 |
| 側面 | 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。 |