Cross-region data access to OpenSearch domains
You can configure your OpenSearch UI applications in one Amazon Web Services Region to access OpenSearch domains in different Amazon Web Services Regions. This enables you to create unified dashboards that aggregate data from OpenSearch domains across multiple Amazon Web Services Regions within the same partition. Cross-region data source support requires fine-grained access control to be enabled on the target domain. Fine-grained access control provides an additional authorization layer beyond the domain access policy, allowing you to control access to individual indices, documents, and fields.
Key concepts
- Application Region
-
The Amazon Web Services Region where your OpenSearch UI application is hosted.
- Target Region
-
The Amazon Web Services Region where the OpenSearch domain resides. This can be any Region within the same partition, regardless of whether OpenSearch UI is available in that Region.
- Cross-account role
-
An IAM role in the target account that is used during data source association only. OpenSearch UI assumes this role to call
es:DescribeDomain, which retrieves the domain endpoint and verifies that fine-grained access control is enabled. This role is only required when the domain is in a different account from the application. For more information, see Cross-account data access to OpenSearch domains. - IAM Identity Center application role
-
An IAM role in the application account that is used for IAM Identity Center user data plane access.
- Supported Regions (for VPC domains)
-
For VPC domains, you must allowlist the Amazon Web Services Regions where your OpenSearch UI applications are hosted when authorizing the VPC endpoint. This allowlisting is required so that OpenSearch UI can make calls to the VPC domain.
Prerequisites
Before you set up cross-region data access, ensure that you have the following:
-
Amazon CLI installed and configured
-
Access to the Amazon Web Services account in both the application Region and the target Region
-
OpenSearch domains with fine-grained access control enabled. Multi-region data source association is only supported for domains with fine-grained access control enabled.
-
For cross-account scenarios: Access to both the source and target Amazon Web Services accounts
-
For IAM Identity Center flows: An Amazon IAM Identity Center organization instance. The OpenSearch UI application must be in the same Region as the IAM Identity Center instance.
Scenarios
Choose the scenario that matches your authentication method and domain configuration:
-
Scenario 1: IAM user accessing a public domain in a different Region
-
Scenario 2: IAM Identity Center user accessing a public domain in a different Region
-
Scenario 3: IAM user accessing a VPC domain in a different Region
-
Scenario 4: IAM Identity Center user accessing a VPC domain in a different Region
Each scenario covers same-account cross-region access. For cross-account cross-region access, combine the steps in these scenarios with the cross-account role setup described in Cross-account data access to OpenSearch domains.
Scenario 1: IAM user accessing a public domain in a different Region
In this scenario, you create an OpenSearch UI application in one Region and connect it to a public OpenSearch domain in a different Region within the same account.
Step 1: Create the OpenSearch domain (target Region)
Create an OpenSearch domain in the target Region with fine-grained access control enabled. Scope the access policy to the account root or specific IAM principals.
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":"arn:aws:iam::account-id:root"},"Action":"es:ESHttp*","Resource":"arn:aws:es:target-region:account-id:domain/domain-name/*"}]}' \ --regiontarget-region
Wait for the domain status to become Active before
proceeding.
Step 2: Create the OpenSearch UI application (application Region)
Create the application in the application Region with the cross-region data source. The Region is extracted from the data source ARN automatically.
aws opensearch create-application \ --regionapplication-region\ --name "cross-region-iam-app" \ --data-sources '[{ "dataSourceArn":"arn:aws:es:target-region:account-id:domain/domain-name", "dataSourceDescription":"Cross-region domain" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"test-user\"]"}]'
Step 3: Verify and access
Retrieve the application details to get the endpoint URL:
aws opensearch get-application \ --regionapplication-region\ --idapplication-id
-
Navigate to the application endpoint URL from the response.
-
Sign in with IAM credentials.
-
The IAM user signs data plane requests with their own credentials.
-
The target domain's access policy and backend role mappings control what data the user can access.
Scenario 2: IAM Identity Center user accessing a public domain in a different Region
In this scenario, you create an OpenSearch UI application with IAM Identity Center authentication in one Region and connect it to a public OpenSearch domain in a different Region within the same account.
Step 1: Create the OpenSearch domain with IAM Identity Center enabled (target Region)
Create an OpenSearch domain in the target Region with fine-grained access
control and IAM Identity Center integration enabled. Use the
--identity-center-options parameter with
IdentityCenterInstanceRegion to specify the Region where your
IAM Identity Center instance is located. This Region should be the same as where the
OpenSearch UI application is hosted.
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"}' \ --identity-center-options '{"EnabledAPIAccess":true,"IdentityCenterInstanceARN":"arn:aws:sso:::instance/ssoins-instance-id","IdentityCenterInstanceRegion":"idc-region","RolesKey":"GroupId","SubjectKey":"UserId"}' \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::account-id:role/NeoIdCAppRole"},"Action":"es:ESHttp*","Resource":"arn:aws:es:target-region:account-id:domain/domain-name/*"}]}' \ --regiontarget-region
Wait for the domain status to become Active before
proceeding.
Step 2: Create the IAM role for IAM Identity Center application
Create an IAM role that OpenSearch UI uses for IAM Identity Center user data plane access.
To create the IAM Identity Center application role
-
Create a trust policy with only the
sts:AssumeRolestatement. You will update this policy to add thests:SetContextstatement after creating the application in the next step.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
Create a permissions policy:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "arn:aws:es:target-region:account-id:domain/domain-name/*" }] } -
Create the role and attach the policies:
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
Step 3: Create the OpenSearch UI application with IAM Identity Center (application Region)
Note
Ensure that the IAM Identity Center instance is located in the same Region as the OpenSearch UI application Region.
aws opensearch create-application \ --regionapplication-region\ --name "cross-region-idc-app" \ --iam-identity-center-options '{ "enabled":true, "iamIdentityCenterInstanceArn":"arn:aws:sso:::instance/ssoins-instance-id", "iamRoleForIdentityCenterApplicationArn":"arn:aws:iam::account-id:role/NeoIdCAppRole" }' \ --data-sources '[{ "dataSourceArn":"arn:aws:es:target-region:account-id:domain/domain-name", "dataSourceDescription":"Cross-region domain" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"test-user\"]"}]'
After the application is created, note the SSO application ID from the
response. Then update the trust policy on the IAM Identity Center application role to add
the sts:SetContext statement:
{ "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::account-id:oidc-provider/portal.sso.idc-region.amazonaws.com/apl/application-id" } } } ] }
aws iam update-assume-role-policy \ --role-nameNeoIdCAppRole\ --policy-document file://updated-trust-policy.json
Step 4: Create and assign IAM Identity Center users and groups
Create an IAM Identity Center user
Run the following command. Replace the placeholder
values with your own information.
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
Create an IAM Identity Center group and add the user
Run the following commands:
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
Assign the user or group to the application
Run the following command:
aws sso-admin create-application-assignment \ --application-arn "arn:aws:sso::account-id:application/ssoins-instance-id/apl-application-id" \ --principal-iduser-id-or-group-id\ --principal-typeUSER
Configure backend role mapping on the target domain
Map the IAM Identity Center group to an OpenSearch security role on the target domain:
curl -XPATCH "https://domain-endpoint/_plugins/_security/api/rolesmapping/all_access" \ -uadmin:master-password\ -H 'Content-Type: application/json' \ -d '[{"op": "add", "path": "/backend_roles", "value": ["group-id"]}]'
Step 5: Verify and access
Retrieve the application details to get the endpoint URL:
aws opensearch get-application \ --regionapplication-region\ --idapplication-id
-
Navigate to the application endpoint URL.
-
Sign in with IAM Identity Center user credentials.
-
IAM Identity Center users' data requests are signed with the IAM Identity Center application role.
-
Backend role mappings on the domain control data access permissions.
Scenario 3: IAM user accessing a VPC domain in a different Region
In this scenario, you create an OpenSearch UI application in one Region and connect it to a VPC OpenSearch domain in a different Region within the same account. VPC domains require additional network configuration and explicit VPC endpoint authorization with cross-region support.
Step 1: Set up the VPC (target Region)
Skip this step if a VPC already exists in the target Region.
# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --regiontarget-region# Create subnet aws ec2 create-subnet \ --vpc-idvpc-id\ --cidr-block 10.0.1.0/24 \ --availability-zonetarget-regiona \ --regiontarget-region# Create security group aws ec2 create-security-group \ --group-nameopensearch-vpc-sg\ --description "Security group for OpenSearch VPC domain" \ --vpc-idvpc-id\ --regiontarget-region# Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-idsecurity-group-id\ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --regiontarget-region
Learn more about VPC domain creation
Step 2: Create the VPC domain (target Region)
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":"arn:aws:iam::account-id:root"},"Action":"es:ESHttp*","Resource":"arn:aws:es:target-region:account-id:domain/vpc-domain-name/*"}]}' \ --regiontarget-region
Wait for the domain status to become Active before
proceeding.
Step 3: Authorize the VPC endpoint for the OpenSearch UI service principal with cross-region support (target Region)
# Authorize the service principal with cross-region support aws opensearch authorize-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --service-options '{"SupportedRegions":["target-region","application-region"]}' \ --regiontarget-region# Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-namevpc-domain-name\ --regiontarget-region
Expected response:
{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com", "ServiceOptions": { "SupportedRegions": ["target-region", "application-region"] } } ] }
Step 4: Create the OpenSearch UI application (application Region)
aws opensearch create-application \ --regionapplication-region\ --name "cross-region-vpc-iam-app" \ --data-sources '[{ "dataSourceArn":"arn:aws:es:target-region:account-id:domain/vpc-domain-name", "dataSourceDescription":"Cross-region VPC domain" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"test-user\"]"}]'
Step 5: Verify and access
Retrieve the application details to get the endpoint URL:
aws opensearch get-application \ --regionapplication-region\ --idapplication-id
-
Navigate to the application endpoint URL from the response.
-
Sign in with IAM credentials.
-
The IAM user signs data plane requests with their own credentials.
-
The target domain's access policy and backend role mappings control what data the user can access.
Scenario 4: IAM Identity Center user accessing a VPC domain in a different Region
In this scenario, you create an OpenSearch UI application with IAM Identity Center authentication in one Region and connect it to a VPC OpenSearch domain in a different Region within the same account.
Step 1: Set up the VPC (target Region)
Skip this step if a VPC already exists in the target Region.
# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --regiontarget-region# Create subnet aws ec2 create-subnet \ --vpc-idvpc-id\ --cidr-block 10.0.1.0/24 \ --availability-zonetarget-regiona \ --regiontarget-region# Create security group aws ec2 create-security-group \ --group-nameopensearch-vpc-sg\ --description "Security group for OpenSearch VPC domain" \ --vpc-idvpc-id\ --regiontarget-region# Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-idsecurity-group-id\ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --regiontarget-region
Learn more about VPC domain creation
Step 2: Create the VPC domain with IAM Identity Center enabled (target Region)
Create an OpenSearch domain in the target Region with fine-grained access
control, IAM Identity Center integration, and VPC configuration enabled. Update the access
policy to allow the IAM Identity Center application role and add the
--identity-center-options parameter:
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"}' \ --identity-center-options '{"EnabledAPIAccess":true,"IdentityCenterInstanceARN":"arn:aws:sso:::instance/ssoins-instance-id","IdentityCenterInstanceRegion":"idc-region","RolesKey":"GroupId","SubjectKey":"UserId"}' \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::account-id:role/NeoIdCAppRole"},"Action":"es:ESHttp*","Resource":"arn:aws:es:target-region:account-id:domain/vpc-domain-name/*"}]}' \ --regiontarget-region
Wait for the domain status to become Active before
proceeding.
Step 3: Authorize the VPC endpoint for the OpenSearch UI service principal with cross-region support (target Region)
Important
This is a critical step that is unique to VPC domains with cross-region
access. The OpenSearch UI service must be explicitly authorized to access
the VPC endpoint, and you must include the application Region in the
SupportedRegions list.
# Authorize the service principal with cross-region support aws opensearch authorize-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --service-options '{"SupportedRegions":["target-region","application-region"]}' \ --regiontarget-region# Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-namevpc-domain-name\ --regiontarget-region
Expected response:
{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com", "ServiceOptions": { "SupportedRegions": ["target-region", "application-region"] } } ] }
Step 4: Create the IAM role for IAM Identity Center application
Create an IAM role that OpenSearch UI uses for IAM Identity Center user data plane access.
To create the IAM Identity Center application role
-
Create a trust policy with only the
sts:AssumeRolestatement. You will update this policy to add thests:SetContextstatement after creating the application in the next step.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
Create a permissions policy:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "arn:aws:es:target-region:account-id:domain/vpc-domain-name/*" }] } -
Create the role and attach the policies:
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
Step 5: Create the OpenSearch UI application with IAM Identity Center (application Region)
aws opensearch create-application \ --regionapplication-region\ --name "cross-region-vpc-idc-app" \ --iam-identity-center-options '{ "enabled":true, "iamIdentityCenterInstanceArn":"arn:aws:sso:::instance/ssoins-instance-id", "iamRoleForIdentityCenterApplicationArn":"arn:aws:iam::account-id:role/NeoIdCAppRole" }' \ --data-sources '[{ "dataSourceArn":"arn:aws:es:target-region:account-id:domain/vpc-domain-name", "dataSourceDescription":"Cross-region VPC domain" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"test-user\"]"}]'
After the application is created, note the SSO application ID from the
response. Then update the trust policy on the IAM Identity Center application role to add
the sts:SetContext statement:
{ "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::account-id:oidc-provider/portal.sso.idc-region.amazonaws.com/apl/application-id" } } } ] }
aws iam update-assume-role-policy \ --role-nameNeoIdCAppRole\ --policy-document file://updated-trust-policy.json
Step 6: Create and assign IAM Identity Center users and groups
Follow the same steps as Step 4: Create and assign IAM Identity Center users and groups to create users, groups, assign them to the application, and configure backend role mapping on the target domain.
Step 7: Verify and access
Retrieve the application details to get the endpoint URL:
aws opensearch get-application \ --regionapplication-region\ --idapplication-id
-
Navigate to the application endpoint URL.
-
Sign in with IAM Identity Center user credentials.
-
IAM Identity Center users' data requests are signed with the IAM Identity Center application role.
-
Backend role mappings on the domain control data access permissions.
Managing applications
Update an application with cross-region data sources
Run the following command. Replace the placeholder
values with your own information.
aws opensearch update-application \ --regionapplication-region\ --idapplication-id\ --data-sources '[{ "dataSourceArn":"arn:aws:es:target-region-1:account-id:domain/domain-1", "dataSourceDescription":"Domain in target Region 1" },{ "dataSourceArn":"arn:aws:es:target-region-2:account-id:domain/domain-2", "dataSourceDescription":"Domain in target Region 2" }]'
Important
The update operation replaces the entire data sources array. Include all data sources that you want to keep.
List applications
Run the following command:
aws opensearch list-applications \ --regionapplication-region
Delete an application
Run the following command:
aws opensearch delete-application \ --regionapplication-region\ --idapplication-id
Revoke VPC endpoint access for specific Regions
To revoke cross-region access for specific Amazon Web Services Regions while keeping
others, use the --service-options parameter with the Regions to
revoke:
aws opensearch revoke-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --service-options '{"SupportedRegions":["region-to-revoke"]}' \ --regiontarget-region
Quick reference
The following tables summarize the key differences between domain types, authentication methods, and same-region versus cross-region access.
| Aspect | Public domain | VPC domain |
|---|---|---|
| VPC endpoint authorization | Not required | Required – must authorize
application.opensearchservice.amazonaws.com with
SupportedRegions |
| Network setup | None | VPC, subnet, security group with HTTPS (443) inbound |
| IAM access policy | Required | Required |
| Aspect | IAM user | IAM Identity Center user |
|---|---|---|
| Data plane credentials | User's own IAM credentials | IAM Identity Center application role |
| Access control | Domain access policy and backend role mappings | Domain access policy and backend role mappings |
| Application Region constraint | Any Region | Must be in the same Region as the IAM Identity Center instance |
| Domain configuration | Standard | Requires --identity-center-options with
IdentityCenterInstanceRegion |
| Additional setup | None | IAM Identity Center application role, user/group creation, application assignment, backend role mapping |
| Aspect | Same-region | Cross-region |
|---|---|---|
| Data source ARN | Same Region as application | Different Region from application (same partition) |
| VPC endpoint authorization | Omit --service-options |
Include --service-options with
SupportedRegions |
| IAM Identity Center domain configuration | IdentityCenterInstanceRegion optional |
IdentityCenterInstanceRegion required |
| Cross-partition support | N/A | Not supported – data sources must be in the same partition |
Important notes
-
Cross-region data source association requires fine-grained access control to be enabled on the target domain.
-
Cross-region data sources must be within the same partition. Cross-partition access (for example, from
awstoaws-cn) is not supported. -
The data source Region is extracted from the data source ARN automatically. No additional Region parameter is needed in the
CreateApplicationorUpdateApplicationAPIs. -
For same-account cross-region data sources,
iamRoleForDataSourceArnis not required. It is only needed for cross-account data sources. -
For VPC domains, you must include the application Region in the
SupportedRegionsparameter when callingAuthorizeVpcEndpointAccess. Omitting--service-optionsauthorizes only same-Region access. -
For IAM Identity Center flows, the OpenSearch UI application must be in the same Region as the IAM Identity Center instance.
-
For IAM Identity Center flows with cross-region domains, the target domain must include
IdentityCenterInstanceRegionin--identity-center-optionsto enable cross-region token introspection. -
Supported engine versions: OpenSearch 1.3 and above.
Troubleshooting
| Issue | Resolution |
|---|---|
| Application creation fails with "Unable to access domain" | Verify that the domain exists in the target Region and that
fine-grained access control is enabled. For cross-account scenarios,
verify the cross-account role has the
es:DescribeDomain permission and the trust policy
allows the source account. |
| VPC domain access fails for cross-region | Ensure that the VPC endpoint is authorized for
application.opensearchservice.amazonaws.com with the
application Region included in
SupportedRegions. |
| Data plane access denied for IAM user | Check that the target domain access policy allows the IAM user or role principal, and that the fine-grained access control backend role mappings grant the appropriate permissions. |
| Data plane access denied for IAM Identity Center user | Verify that the backend role mapping includes the IAM Identity Center group
ID, the domain policy allows the IAM Identity Center application role, and
IdentityCenterInstanceRegion is correctly set to the
same Region as the OpenSearch UI application on the
domain. |
| Cross-partition data source rejected | Cross-partition access is not supported. Ensure the data source ARN is in the same partition as the application. |
| IAM Identity Center authentication fails for cross-region domain | Verify that IdentityCenterInstanceRegion is set to
the correct Region where your IAM Identity Center instance is enabled. The
OpenSearch UI application must also be in this same
Region. |