

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Regionsübergreifender Datenzugriff auf Domains OpenSearch
<a name="application-cross-region-data-access-domains"></a>

Sie können Ihre OpenSearch UI-Anwendungen in einer einzigen konfigurieren AWS-Region , um auf OpenSearch Domains in verschiedenen AWS-Region s zuzugreifen. Auf diese Weise können Sie einheitliche Dashboards erstellen, die Daten aus OpenSearch Domänen über mehrere AWS-Region s innerhalb derselben Partition aggregieren. Für die Unterstützung regionsübergreifender Datenquellen muss in der Zieldomäne eine differenzierte Zugriffskontrolle aktiviert sein. Eine differenzierte Zugriffskontrolle bietet eine zusätzliche Autorisierungsebene, die über die Domänenzugriffsrichtlinie hinausgeht und es Ihnen ermöglicht, den Zugriff auf einzelne Indizes, Dokumente und Felder zu kontrollieren.

## Die wichtigsten Konzepte
<a name="cross-region-key-concepts"></a>

Region der Anwendung  
Der AWS-Region Ort, an dem Ihre OpenSearch UI-Anwendung gehostet wird.

Zielregion  
Der AWS-Region Ort, an dem sich die OpenSearch Domain befindet. Dies kann eine beliebige Region innerhalb derselben Partition sein, unabhängig davon, ob die OpenSearch Benutzeroberfläche in dieser Region verfügbar ist.

Kontoübergreifende Rolle  
Eine IAM-Rolle im Zielkonto, die nur während der Datenquellenzuweisung verwendet wird. OpenSearch UI übernimmt diese Rolle beim Aufrufen`es:DescribeDomain`, wodurch der Domänenendpunkt abgerufen und überprüft wird, ob die detaillierte Zugriffskontrolle aktiviert ist. Diese Rolle ist nur erforderlich, wenn sich die Domäne in einem anderen Konto befindet als die Anwendung. Weitere Informationen finden Sie unter [Kontoübergreifender Datenzugriff auf Domains OpenSearch](application-cross-account-data-access-domains.md).

IAM Identity Center-Anwendungsrolle  
Eine IAM-Rolle im Anwendungskonto, die für den Zugriff auf die Benutzerdatenebene von IAM Identity Center verwendet wird.

Unterstützte Regionen (für VPC-Domänen)  
Für VPC-Domänen müssen Sie bei der Autorisierung des VPC-Endpunkts die AWS-Region s zulassen, auf denen Ihre OpenSearch UI-Anwendungen gehostet werden. Diese Zulassungsliste ist erforderlich, damit die OpenSearch Benutzeroberfläche Aufrufe an die VPC-Domäne tätigen kann.

## Voraussetzungen
<a name="cross-region-prerequisites"></a>

Bevor Sie den regionsübergreifenden Datenzugriff einrichten, stellen Sie sicher, dass Sie über Folgendes verfügen:
+ AWS CLI installiert und konfiguriert
+ Zugriff auf die sowohl AWS-Konto in der Anwendungsregion als auch in der Zielregion
+ OpenSearch Domänen mit aktivierter detaillierter Zugriffskontrolle. Die Zuordnung von Datenquellen mit mehreren Regionen wird nur für Domänen unterstützt, für die eine differenzierte Zugriffskontrolle aktiviert ist.
+ Für kontenübergreifende Szenarien: Zugriff sowohl auf die Quell- als auch auf die Zieldateien AWS-Konto
+ Für IAM Identity Center-Flows: Eine AWS IAM Identity Center Organisationsinstanz. Die OpenSearch UI-Anwendung muss sich in derselben Region wie die IAM Identity Center-Instanz befinden.

## Szenarien
<a name="cross-region-scenarios"></a>

Wählen Sie das Szenario aus, das Ihrer Authentifizierungsmethode und Domänenkonfiguration entspricht:
+ [Szenario 1: IAM-Benutzer greift auf eine öffentliche Domain in einer anderen Region zu](#cross-region-scenario-1)
+ [Szenario 2: Ein IAM Identity Center-Benutzer greift auf eine öffentliche Domain in einer anderen Region zu](#cross-region-scenario-2)
+ [Szenario 3: IAM-Benutzer greift auf eine VPC-Domain in einer anderen Region zu](#cross-region-scenario-3)
+ [Szenario 4: IAM Identity Center-Benutzer, der auf eine VPC-Domäne in einer anderen Region zugreift](#cross-region-scenario-4)

Jedes Szenario deckt den regionsübergreifenden Zugriff desselben Kontos ab. Kombinieren Sie für einen kontoübergreifenden regionsübergreifenden Zugriff die Schritte in diesen Szenarien mit der Einrichtung der kontenübergreifenden Rollen, wie unter beschrieben. [Kontoübergreifender Datenzugriff auf Domains OpenSearch](application-cross-account-data-access-domains.md)

## Szenario 1: IAM-Benutzer greift auf eine öffentliche Domain in einer anderen Region zu
<a name="cross-region-scenario-1"></a>

In diesem Szenario erstellen Sie eine OpenSearch UI-Anwendung in einer Region und verbinden sie mit einer öffentlichen OpenSearch Domain in einer anderen Region innerhalb desselben Kontos.

### Schritt 1: Erstellen Sie die OpenSearch Domain (Zielregion)
<a name="cross-region-scenario-1-step-1"></a>

Erstellen Sie eine OpenSearch Domain in der Zielregion mit aktivierter feinkörniger Zugriffskontrolle. Richten Sie die Zugriffsrichtlinie auf den Kontostamm oder bestimmte IAM-Prinzipale ein.

```
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":"arn:aws:iam::{{account-id}}:root"},"Action":"es:ESHttp*","Resource":"arn:aws:es:{{target-region}}:{{account-id}}:domain/{{domain-name}}/*"}]}' \
  --region {{target-region}}
```

Warten Sie, bis der Domainstatus erreicht ist, `Active` bevor Sie fortfahren.

### Schritt 2: Erstellen Sie die OpenSearch UI-Anwendung (Anwendungsregion)
<a name="cross-region-scenario-1-step-2"></a>

Erstellen Sie die Anwendung in der Anwendungsregion mit der regionsübergreifenden Datenquelle. Die Region wird automatisch aus der Datenquelle ARN extrahiert.

```
aws opensearch create-application \
  --region {{application-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}}\"]"}]'
```

### Schritt 3: Verifizieren und darauf zugreifen
<a name="cross-region-scenario-1-step-3"></a>

Rufen Sie die Anwendungsdetails ab, um die Endpunkt-URL abzurufen:

```
aws opensearch get-application \
  --region {{application-region}} \
  --id {{application-id}}
```
+ Navigieren Sie in der Antwort zur URL des Anwendungsendpunkts.
+ Melden Sie sich mit IAM-Anmeldeinformationen an.
+ Der IAM-Benutzer signiert Datenebenenanfragen mit seinen eigenen Anmeldeinformationen.
+ Die Zugriffsrichtlinie und die Backend-Rollenzuordnungen der Zieldomäne steuern, auf welche Daten der Benutzer zugreifen kann.

## Szenario 2: Ein IAM Identity Center-Benutzer greift auf eine öffentliche Domain in einer anderen Region zu
<a name="cross-region-scenario-2"></a>

In diesem Szenario erstellen Sie eine OpenSearch UI-Anwendung mit IAM Identity Center-Authentifizierung in einer Region und verbinden sie mit einer öffentlichen OpenSearch Domain in einer anderen Region innerhalb desselben Kontos.

### Schritt 1: Erstellen Sie die OpenSearch Domain mit aktiviertem IAM Identity Center (Zielregion)
<a name="cross-region-scenario-2-step-1"></a>

Erstellen Sie eine OpenSearch Domain in der Zielregion mit detaillierter Zugriffskontrolle und aktivierter IAM Identity Center-Integration. Verwenden Sie den `--identity-center-options` Parameter with`IdentityCenterInstanceRegion`, um die Region anzugeben, in der sich Ihre IAM Identity Center-Instanz befindet. Diese Region sollte mit der Region identisch sein, in der die OpenSearch UI-Anwendung gehostet wird.

```
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"}' \
  --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}}/*"}]}' \
  --region {{target-region}}
```

Warten Sie, bis der Domainstatus erreicht ist, `Active` bevor Sie fortfahren.

### Schritt 2: Erstellen Sie die IAM-Rolle für die IAM Identity Center-Anwendung
<a name="cross-region-scenario-2-step-2"></a>

Erstellen Sie eine IAM-Rolle, die OpenSearch UI für den Zugriff auf die Benutzerdatenebene von IAM Identity Center verwendet.

**Um die IAM Identity Center-Anwendungsrolle zu erstellen**

1. Erstellen Sie eine Vertrauensrichtlinie, die nur die `sts:AssumeRole` Anweisung enthält. Sie werden diese Richtlinie aktualisieren, um die `sts:SetContext` Erklärung hinzuzufügen, nachdem Sie die Anwendung im nächsten Schritt erstellt haben.

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "application.opensearchservice.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

1. Erstellen Sie eine Berechtigungsrichtlinie:

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [{
       "Sid": "OpenSearchDomain",
       "Effect": "Allow",
       "Action": ["es:ESHttp*"],
       "Resource": "arn:aws:es:{{target-region}}:{{account-id}}:domain/{{domain-name}}/*"
     }]
   }
   ```

1. Erstellen Sie die Rolle und fügen Sie die Richtlinien hinzu:

   ```
   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}}
   ```

### Schritt 3: Erstellen Sie die OpenSearch UI-Anwendung mit IAM Identity Center (Anwendungsregion)
<a name="cross-region-scenario-2-step-3"></a>

**Anmerkung**  
Stellen Sie sicher, dass sich die IAM Identity Center-Instanz in derselben Region wie die Region der OpenSearch UI-Anwendung befindet.

```
aws opensearch create-application \
  --region {{application-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}}\"]"}]'
```

Notieren Sie sich nach der Erstellung der Anwendung die SSO-Anwendungs-ID aus der Antwort. Aktualisieren Sie anschließend die Vertrauensrichtlinie für die IAM Identity Center-Anwendungsrolle, um die folgende `sts:SetContext` Aussage hinzuzufügen:

```
{
  "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-name {{NeoIdCAppRole}} \
  --policy-document file://{{updated-trust-policy.json}}
```

### Schritt 4: IAM Identity Center-Benutzer und -Gruppen erstellen und zuweisen
<a name="cross-region-scenario-2-step-4"></a>

**Erstellen Sie einen IAM Identity Center-Benutzer**  
Führen Sie den folgenden Befehl aus. Ersetzen Sie {{placeholder values}} durch Ihre Informationen.

```
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
```

**Erstellen Sie eine IAM Identity Center-Gruppe und fügen Sie den Benutzer hinzu**  
Führen Sie die folgenden Befehle aus:

```
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}}
```

**Weisen Sie den Benutzer oder die Gruppe der Anwendung zu**  
Führen Sie den folgenden Befehl aus:

```
aws sso-admin create-application-assignment \
  --application-arn "arn:aws:sso::{{account-id}}:application/ssoins-{{instance-id}}/apl-{{application-id}}" \
  --principal-id {{user-id-or-group-id}} \
  --principal-type {{USER}}
```

**Konfigurieren Sie die Back-End-Rollenzuordnung auf der Zieldomäne**  
Ordnen Sie die IAM Identity Center-Gruppe einer OpenSearch Sicherheitsrolle in der Zieldomäne zu:

```
curl -XPATCH "https://{{domain-endpoint}}/_plugins/_security/api/rolesmapping/all_access" \
  -u {{admin}}:{{master-password}} \
  -H 'Content-Type: application/json' \
  -d '[{"op": "add", "path": "/backend_roles", "value": ["{{group-id}}"]}]'
```

### Schritt 5: Überprüfen und Zugreifen
<a name="cross-region-scenario-2-step-5"></a>

Rufen Sie die Anwendungsdetails ab, um die Endpunkt-URL abzurufen:

```
aws opensearch get-application \
  --region {{application-region}} \
  --id {{application-id}}
```
+ Navigieren Sie zur URL des Anwendungsendpunkts.
+ Melden Sie sich mit den Benutzeranmeldedaten für das IAM Identity Center an.
+ Datenanfragen von IAM Identity Center-Benutzern werden mit der IAM Identity Center-Anwendungsrolle signiert.
+ Backend-Rollenzuordnungen auf der Domain steuern die Datenzugriffsberechtigungen.

## Szenario 3: IAM-Benutzer greift auf eine VPC-Domain in einer anderen Region zu
<a name="cross-region-scenario-3"></a>

In diesem Szenario erstellen Sie eine OpenSearch UI-Anwendung in einer Region und verbinden sie mit einer OpenSearch VPC-Domäne in einer anderen Region innerhalb desselben Kontos. VPC-Domänen erfordern eine zusätzliche Netzwerkkonfiguration und eine explizite VPC-Endpunktautorisierung mit regionsübergreifender Unterstützung.

### Schritt 1: VPC einrichten (Zielregion)
<a name="cross-region-scenario-3-step-1"></a>

Überspringen Sie diesen Schritt, wenn in der Zielregion bereits eine VPC vorhanden ist.

```
# Create VPC
aws ec2 create-vpc \
  --cidr-block 10.0.0.0/16 \
  --region {{target-region}}

# Create subnet
aws ec2 create-subnet \
  --vpc-id {{vpc-id}} \
  --cidr-block 10.0.1.0/24 \
  --availability-zone {{target-region}}a \
  --region {{target-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 {{target-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 {{target-region}}
```

Erfahren Sie mehr über die [Erstellung von VPC-Domains](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html).

### Schritt 2: VPC-Domain erstellen (Zielregion)
<a name="cross-region-scenario-3-step-2"></a>

```
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":"arn:aws:iam::{{account-id}}:root"},"Action":"es:ESHttp*","Resource":"arn:aws:es:{{target-region}}:{{account-id}}:domain/{{vpc-domain-name}}/*"}]}' \
  --region {{target-region}}
```

Warten Sie, bis der Domainstatus erreicht ist, `Active` bevor Sie fortfahren.

### Schritt 3: Autorisieren Sie den VPC-Endpunkt für den OpenSearch UI-Serviceprinzipal mit regionsübergreifender Unterstützung (Zielregion)
<a name="cross-region-scenario-3-step-3"></a>

```
# Authorize the service principal with cross-region support
aws opensearch authorize-vpc-endpoint-access \
  --domain-name {{vpc-domain-name}} \
  --service "application.opensearchservice.amazonaws.com" \
  --service-options '{"SupportedRegions":["{{target-region}}","{{application-region}}"]}' \
  --region {{target-region}}

# Verify authorization
aws opensearch list-vpc-endpoint-access \
  --domain-name {{vpc-domain-name}} \
  --region {{target-region}}
```

Erwartete Antwort:

```
{
  "AuthorizedPrincipalList": [
    {
      "PrincipalType": "AWS_SERVICE",
      "Principal": "application.opensearchservice.amazonaws.com",
      "ServiceOptions": {
        "SupportedRegions": ["{{target-region}}", "{{application-region}}"]
      }
    }
  ]
}
```

### Schritt 4: Erstellen Sie die OpenSearch UI-Anwendung (Anwendungsregion)
<a name="cross-region-scenario-3-step-4"></a>

```
aws opensearch create-application \
  --region {{application-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}}\"]"}]'
```

### Schritt 5: Verifizieren und darauf zugreifen
<a name="cross-region-scenario-3-step-5"></a>

Rufen Sie die Anwendungsdetails ab, um die Endpunkt-URL abzurufen:

```
aws opensearch get-application \
  --region {{application-region}} \
  --id {{application-id}}
```
+ Navigieren Sie in der Antwort zur URL des Anwendungsendpunkts.
+ Melden Sie sich mit IAM-Anmeldeinformationen an.
+ Der IAM-Benutzer signiert Datenebenenanfragen mit seinen eigenen Anmeldeinformationen.
+ Die Zugriffsrichtlinie und die Backend-Rollenzuordnungen der Zieldomäne steuern, auf welche Daten der Benutzer zugreifen kann.

## Szenario 4: IAM Identity Center-Benutzer, der auf eine VPC-Domäne in einer anderen Region zugreift
<a name="cross-region-scenario-4"></a>

In diesem Szenario erstellen Sie eine OpenSearch UI-Anwendung mit IAM Identity Center-Authentifizierung in einer Region und verbinden sie mit einer OpenSearch VPC-Domäne in einer anderen Region innerhalb desselben Kontos.

### Schritt 1: VPC einrichten (Zielregion)
<a name="cross-region-scenario-4-step-1"></a>

Überspringen Sie diesen Schritt, wenn in der Zielregion bereits eine VPC vorhanden ist.

```
# Create VPC
aws ec2 create-vpc \
  --cidr-block 10.0.0.0/16 \
  --region {{target-region}}

# Create subnet
aws ec2 create-subnet \
  --vpc-id {{vpc-id}} \
  --cidr-block 10.0.1.0/24 \
  --availability-zone {{target-region}}a \
  --region {{target-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 {{target-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 {{target-region}}
```

Erfahren Sie mehr über die [Erstellung von VPC-Domains](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html).

### Schritt 2: VPC-Domäne mit aktiviertem IAM Identity Center erstellen (Zielregion)
<a name="cross-region-scenario-4-step-2"></a>

Erstellen Sie eine OpenSearch Domain in der Zielregion mit detaillierter Zugriffskontrolle, IAM Identity Center-Integration und aktivierter VPC-Konfiguration. Aktualisieren Sie die Zugriffsrichtlinie, um die IAM Identity Center-Anwendungsrolle zuzulassen, und fügen Sie den folgenden Parameter hinzu: `--identity-center-options`

```
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"}' \
  --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}}/*"}]}' \
  --region {{target-region}}
```

Warten Sie, bis der Domainstatus erreicht ist, `Active` bevor Sie fortfahren.

### Schritt 3: Autorisieren Sie den VPC-Endpunkt für den OpenSearch UI-Serviceprinzipal mit regionsübergreifender Unterstützung (Zielregion)
<a name="cross-region-scenario-4-step-3"></a>

**Wichtig**  
Dies ist ein kritischer Schritt, der nur VPC-Domains mit regionsübergreifendem Zugriff betrifft. Der OpenSearch UI-Service muss explizit autorisiert sein, auf den VPC-Endpunkt zuzugreifen, und Sie müssen die Anwendungsregion in die `SupportedRegions` Liste aufnehmen.

```
# Authorize the service principal with cross-region support
aws opensearch authorize-vpc-endpoint-access \
  --domain-name {{vpc-domain-name}} \
  --service "application.opensearchservice.amazonaws.com" \
  --service-options '{"SupportedRegions":["{{target-region}}","{{application-region}}"]}' \
  --region {{target-region}}

# Verify authorization
aws opensearch list-vpc-endpoint-access \
  --domain-name {{vpc-domain-name}} \
  --region {{target-region}}
```

Erwartete Antwort:

```
{
  "AuthorizedPrincipalList": [
    {
      "PrincipalType": "AWS_SERVICE",
      "Principal": "application.opensearchservice.amazonaws.com",
      "ServiceOptions": {
        "SupportedRegions": ["{{target-region}}", "{{application-region}}"]
      }
    }
  ]
}
```

### Schritt 4: Erstellen Sie die IAM-Rolle für die IAM Identity Center-Anwendung
<a name="cross-region-scenario-4-step-4"></a>

Erstellen Sie eine IAM-Rolle, die OpenSearch UI für den Zugriff auf die Benutzerdatenebene von IAM Identity Center verwendet.

**Um die IAM Identity Center-Anwendungsrolle zu erstellen**

1. Erstellen Sie eine Vertrauensrichtlinie, die nur die `sts:AssumeRole` Anweisung enthält. Sie werden diese Richtlinie aktualisieren, um die `sts:SetContext` Erklärung hinzuzufügen, nachdem Sie die Anwendung im nächsten Schritt erstellt haben.

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "application.opensearchservice.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

1. Erstellen Sie eine Berechtigungsrichtlinie:

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [{
       "Sid": "OpenSearchDomain",
       "Effect": "Allow",
       "Action": ["es:ESHttp*"],
       "Resource": "arn:aws:es:{{target-region}}:{{account-id}}:domain/{{vpc-domain-name}}/*"
     }]
   }
   ```

1. Erstellen Sie die Rolle und fügen Sie die Richtlinien hinzu:

   ```
   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}}
   ```

### Schritt 5: Erstellen Sie die OpenSearch UI-Anwendung mit IAM Identity Center (Anwendungsregion)
<a name="cross-region-scenario-4-step-5"></a>

```
aws opensearch create-application \
  --region {{application-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}}\"]"}]'
```

Notieren Sie sich nach der Erstellung der Anwendung die SSO-Anwendungs-ID aus der Antwort. Aktualisieren Sie anschließend die Vertrauensrichtlinie für die IAM Identity Center-Anwendungsrolle, um die folgende `sts:SetContext` Aussage hinzuzufügen:

```
{
  "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-name {{NeoIdCAppRole}} \
  --policy-document file://{{updated-trust-policy.json}}
```

### Schritt 6: IAM Identity Center-Benutzer und -Gruppen erstellen und zuweisen
<a name="cross-region-scenario-4-step-6"></a>

Gehen Sie genauso vor wie [Schritt 4: IAM Identity Center-Benutzer und -Gruppen erstellen und zuweisen](#cross-region-scenario-2-step-4) beim Erstellen von Benutzern und Gruppen, beim Zuweisen dieser Benutzer zur Anwendung und beim Konfigurieren der Backend-Rollenzuordnung auf der Zieldomäne.

### Schritt 7: Überprüfen und Zugreifen
<a name="cross-region-scenario-4-step-7"></a>

Rufen Sie die Anwendungsdetails ab, um die Endpunkt-URL abzurufen:

```
aws opensearch get-application \
  --region {{application-region}} \
  --id {{application-id}}
```
+ Navigieren Sie zur URL des Anwendungsendpunkts.
+ Melden Sie sich mit den Benutzeranmeldedaten für das IAM Identity Center an.
+ Datenanfragen von IAM Identity Center-Benutzern werden mit der IAM Identity Center-Anwendungsrolle signiert.
+ Backend-Rollenzuordnungen auf der Domain steuern die Datenzugriffsberechtigungen.

## Verwalten von -Anwendungen
<a name="cross-region-managing-applications"></a>

**Aktualisieren Sie eine Anwendung mit regionsübergreifenden Datenquellen**  
Führen Sie den folgenden Befehl aus. Ersetzen Sie {{placeholder values}} durch Ihre Informationen.

```
aws opensearch update-application \
  --region {{application-region}} \
  --id {{application-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}}"
  }]'
```

**Wichtig**  
Der Aktualisierungsvorgang ersetzt das gesamte Datenquellen-Array. Schließt alle Datenquellen ein, die Sie behalten möchten.

**Anwendungen auflisten**  
Führen Sie den folgenden Befehl aus:

```
aws opensearch list-applications \
  --region {{application-region}}
```

**Löschen einer Anwendung**  
Führen Sie den folgenden Befehl aus:

```
aws opensearch delete-application \
  --region {{application-region}} \
  --id {{application-id}}
```

**Widerrufen Sie den VPC-Endpunktzugriff für bestimmte Regionen**  
Um den regionsübergreifenden Zugriff für bestimmte AWS-Region s zu widerrufen und gleichzeitig andere zu behalten, verwenden Sie den `--service-options` Parameter mit den zu widerrufenden Regionen:

```
aws opensearch revoke-vpc-endpoint-access \
  --domain-name {{vpc-domain-name}} \
  --service "application.opensearchservice.amazonaws.com" \
  --service-options '{"SupportedRegions":["{{region-to-revoke}}"]}' \
  --region {{target-region}}
```

## Kurzreferenz
<a name="cross-region-quick-reference"></a>

In den folgenden Tabellen werden die wichtigsten Unterschiede zwischen Domaintypen, Authentifizierungsmethoden und regionsübergreifendem Zugriff zusammengefasst.


**Public Domain im Vergleich zu VPC-Domain**  

| Aspekt | Öffentlich zugänglich | VPC-Domäne | 
| --- | --- | --- | 
| VPC-Endpunktautorisierung | Nicht erforderlich | Erforderlich — muss autorisiert application.opensearchservice.amazonaws.com werden mit SupportedRegions | 
| Netzwerk-Setup | Keine | VPC, Subnetz, Sicherheitsgruppe mit eingehendem HTTPS (443) | 
| IAM-Zugriffsrichtlinie | Erforderlich | Erforderlich | 


**IAM-Benutzer im Vergleich zu IAM Identity Center-Benutzer**  

| Aspekt | IAM-Benutzer | IAM Identity Center-Benutzer | 
| --- | --- | --- | 
| Anmeldeinformationen auf der Datenebene | Eigene IAM-Anmeldeinformationen des Benutzers | IAM Identity Center-Anwendungsrolle | 
| Zugriffskontrolle | Zuordnungen von Domänenzugriffsrichtlinien und Back-End-Rollen | Zuordnungen von Domänenzugriffsrichtlinien und Back-End-Rollen | 
| Einschränkung der Anwendungsregion | Beliebige Region | Muss sich in derselben Region wie die IAM Identity Center-Instanz befinden | 
| Domain-Konfiguration | Standard | Erfordert --identity-center-options mit IdentityCenterInstanceRegion | 
| Zusätzliche Einrichtung | Keine | IAM Identity Center-Anwendungsrolle, user/group Erstellung, Anwendungszuweisung, Rollenzuweisung im Backend | 


**Gleiche Region im Vergleich zu regionsübergreifend**  

| Aspekt | Gleiche Region | Regionsübergreifend | 
| --- | --- | --- | 
| Datenquellen-ARN | Gleiche Region wie die Anwendung | Andere Region als die Anwendung (gleiche Partition) | 
| VPC-Endpunktautorisierung | Auslassen --service-options | Einschließen --service-options mit SupportedRegions | 
| IAM Identity Center-Domänenkonfiguration | IdentityCenterInstanceRegion optional | IdentityCenterInstanceRegion erforderlich | 
| Partitionsübergreifende Unterstützung | – | Nicht unterstützt — Datenquellen müssen sich in derselben Partition befinden | 

## Wichtige Hinweise
<a name="cross-region-important-notes"></a>
+ Für die regionsübergreifende Datenquellenzuweisung muss eine differenzierte Zugriffskontrolle in der Zieldomäne aktiviert sein.
+ Regionsübergreifende Datenquellen müssen sich in derselben Partition befinden. Partitionsübergreifender Zugriff (z. B. von `aws` bis`aws-cn`) wird nicht unterstützt.
+ Die Datenquellenregion wird automatisch aus dem Datenquellen-ARN extrahiert. Für `CreateApplication` oder ist kein zusätzlicher Region-Parameter erforderlich `UpdateApplication` APIs.
+ Für regionsübergreifende Datenquellen mit demselben Konto `iamRoleForDataSourceArn` ist dies nicht erforderlich. Es wird nur für kontenübergreifende Datenquellen benötigt.
+ Für VPC-Domänen müssen Sie beim Aufrufen `AuthorizeVpcEndpointAccess` die Anwendungsregion in den `SupportedRegions` Parameter aufnehmen. Wenn Sie dies auslassen, wird nur der Zugriff auf `--service-options` dieselbe Region autorisiert.
+ Für IAM Identity Center-Flows muss sich die OpenSearch UI-Anwendung in derselben Region wie die IAM Identity Center-Instanz befinden.
+ Bei IAM Identity Center-Flows mit regionsübergreifenden Domänen muss die Zieldomäne `IdentityCenterInstanceRegion` in enthalten sein, um eine regionsübergreifende Token-Introspektion `--identity-center-options` zu ermöglichen.
+ Unterstützte Engine-Versionen: 1.3 und höher. OpenSearch 

## Fehlerbehebung
<a name="cross-region-troubleshooting"></a>


| Problem | Auflösung | 
| --- | --- | 
| Die Anwendungserstellung schlägt mit der Meldung „Zugriff auf die Domäne nicht möglich“ fehl | Stellen Sie sicher, dass die Domäne in der Zielregion existiert und dass die differenzierte Zugriffskontrolle aktiviert ist. Vergewissern Sie sich bei kontenübergreifenden Szenarien, dass die kontenübergreifende Rolle über die erforderlichen es:DescribeDomain Berechtigungen verfügt und die Vertrauensrichtlinie das Quellkonto zulässt. | 
| Der VPC-Domänenzugriff schlägt regionsübergreifend fehl | Stellen Sie sicher, dass der VPC-Endpunkt für application.opensearchservice.amazonaws.com die Anwendungsregion autorisiert ist, in SupportedRegions der enthalten ist. | 
| Der Zugriff auf die Datenebene wurde dem IAM-Benutzer verweigert | Vergewissern Sie sich, dass die Zugriffsrichtlinie für die Zieldomäne den IAM-Benutzer oder Rollenprinzipal zulässt und ob die detaillierten Rollenzuordnungen für die Zugriffskontrolle im Backend die entsprechenden Berechtigungen gewähren. | 
| Der Zugriff auf die Datenebene wurde dem IAM Identity Center-Benutzer verweigert | Stellen Sie sicher, dass die Back-End-Rollenzuordnung die IAM Identity Center-Gruppen-ID enthält, dass die Domänenrichtlinie die IAM Identity Center-Anwendungsrolle zulässt und dass sie IdentityCenterInstanceRegion korrekt auf dieselbe Region wie die OpenSearch UI-Anwendung in der Domäne eingestellt ist. | 
| Partitionsübergreifende Datenquelle wurde abgelehnt | Partitionsübergreifender Zugriff wird nicht unterstützt. Stellen Sie sicher, dass sich der Datenquellen-ARN in derselben Partition wie die Anwendung befindet. | 
| Die IAM Identity Center-Authentifizierung schlägt für eine regionsübergreifende Domäne fehl | Stellen Sie sicher, dass die richtige Region ausgewählt IdentityCenterInstanceRegion ist, in der Ihre IAM Identity Center-Instanz aktiviert ist. Die OpenSearch UI-Anwendung muss sich ebenfalls in derselben Region befinden. | 