

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Accesso ai dati interregionali ai domini OpenSearch
<a name="application-cross-region-data-access-domains"></a>

Puoi configurare le tue applicazioni OpenSearch UI in una sola Regione AWS per accedere a OpenSearch domini in diversi s. Regione AWS Ciò consente di creare dashboard unificate che aggregano i dati dei OpenSearch domini su più server all'interno della stessa partizione Regione AWS. Il supporto di origini dati interregionali richiede l'attivazione di un controllo granulare degli accessi sul dominio di destinazione. Il controllo granulare degli accessi fornisce un livello di autorizzazione aggiuntivo oltre alla politica di accesso al dominio, che consente di controllare l'accesso a singoli indici, documenti e campi.

## Concetti chiave
<a name="cross-region-key-concepts"></a>

Regione di applicazione  
La posizione Regione AWS in cui è ospitata l'applicazione dell' OpenSearch interfaccia utente.

Regione di destinazione  
La posizione Regione AWS in cui risiede il OpenSearch dominio. Può trattarsi di qualsiasi regione all'interno della stessa partizione, indipendentemente dal fatto che l' OpenSearch interfaccia utente sia disponibile in quella regione.

Ruolo tra account  
Un ruolo IAM nell'account di destinazione che viene utilizzato solo durante l'associazione dell'origine dati. OpenSearch L'interfaccia utente assume questo ruolo per la chiamata`es:DescribeDomain`, che recupera l'endpoint del dominio e verifica che il controllo granulare degli accessi sia abilitato. Questo ruolo è richiesto solo quando il dominio si trova in un account diverso dall'applicazione. Per ulteriori informazioni, consulta [Accesso ai dati tra account diversi ai domini OpenSearch](application-cross-account-data-access-domains.md).

Ruolo dell'applicazione IAM Identity Center  
Un ruolo IAM nell'account dell'applicazione utilizzato per l'accesso al piano dati degli utenti di IAM Identity Center.

Regioni supportate (per domini VPC)  
Per i domini VPC, devi elencare gli indirizzi in cui sono ospitate le applicazioni dell' OpenSearch interfaccia utente quando Regione AWS autorizzi l'endpoint VPC. Questo elenco di autorizzazioni è necessario per consentire all' OpenSearch interfaccia utente di effettuare chiamate al dominio VPC.

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

Prima di configurare l'accesso ai dati tra diverse regioni, assicurati di disporre di quanto segue:
+ AWS CLI installato e configurato
+ Accesso alla Account AWS regione dell'applicazione e alla regione di destinazione
+ OpenSearch domini con controllo granulare degli accessi abilitato. L'associazione di origini dati in più regioni è supportata solo per i domini con controllo granulare degli accessi abilitato.
+ Per scenari con più account: accesso sia all'origine che alla destinazione Account AWS
+ Per i flussi di IAM Identity Center: un'istanza AWS IAM Identity Center organizzativa. L'applicazione OpenSearch UI deve trovarsi nella stessa regione dell'istanza IAM Identity Center.

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

Scegli lo scenario che corrisponde al tuo metodo di autenticazione e alla configurazione del dominio:
+ [Scenario 1: utente IAM che accede a un dominio pubblico in una regione diversa](#cross-region-scenario-1)
+ [Scenario 2: utente di IAM Identity Center che accede a un dominio pubblico in una regione diversa](#cross-region-scenario-2)
+ [Scenario 3: utente IAM che accede a un dominio VPC in una regione diversa](#cross-region-scenario-3)
+ [Scenario 4: utente IAM Identity Center che accede a un dominio VPC in una regione diversa](#cross-region-scenario-4)

Ogni scenario riguarda l'accesso interregionale dello stesso account. Per l'accesso tra più account, combina i passaggi di questi scenari con la configurazione dei ruoli tra account diversi descritta in. [Accesso ai dati tra account diversi ai domini OpenSearch](application-cross-account-data-access-domains.md)

## Scenario 1: utente IAM che accede a un dominio pubblico in una regione diversa
<a name="cross-region-scenario-1"></a>

In questo scenario, OpenSearch crei un'applicazione UI in una regione e la connetti a un OpenSearch dominio pubblico in un'altra regione all'interno dello stesso account.

### Passaggio 1: creare il OpenSearch dominio (regione di destinazione)
<a name="cross-region-scenario-1-step-1"></a>

Crea un OpenSearch dominio nella regione di destinazione con il controllo granulare degli accessi abilitato. Ambita la policy di accesso alla radice dell'account o ai principali IAM specifici.

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

Attendi che lo stato del dominio diventi tale `Active` prima di procedere.

### Fase 2: Creare l'applicazione OpenSearch UI (regione dell'applicazione)
<a name="cross-region-scenario-1-step-2"></a>

Crea l'applicazione nella regione dell'applicazione con l'origine dati interregionale. La regione viene estratta automaticamente dall'ARN dell'origine dati.

```
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}}\"]"}]'
```

### Fase 3: Verifica e accesso
<a name="cross-region-scenario-1-step-3"></a>

Recupera i dettagli dell'applicazione per ottenere l'URL dell'endpoint:

```
aws opensearch get-application \
  --region {{application-region}} \
  --id {{application-id}}
```
+ Passa all'URL dell'endpoint dell'applicazione dalla risposta.
+ Accedi con le credenziali IAM.
+ L'utente IAM firma le richieste del piano dati con le proprie credenziali.
+ La policy di accesso del dominio di destinazione e le mappature dei ruoli di backend controllano a quali dati l'utente può accedere.

## Scenario 2: utente di IAM Identity Center che accede a un dominio pubblico in una regione diversa
<a name="cross-region-scenario-2"></a>

In questo scenario, OpenSearch crei un'applicazione UI con autenticazione IAM Identity Center in una regione e la connetti a un OpenSearch dominio pubblico in un'altra regione all'interno dello stesso account.

### Passaggio 1: creare il OpenSearch dominio con IAM Identity Center abilitato (regione di destinazione)
<a name="cross-region-scenario-2-step-1"></a>

Crea un OpenSearch dominio nella regione di destinazione con un controllo granulare degli accessi e l'integrazione con IAM Identity Center abilitata. Utilizza il `--identity-center-options` parametro con `IdentityCenterInstanceRegion` per specificare la regione in cui si trova l'istanza di IAM Identity Center. Questa regione deve essere la stessa in cui è ospitata l'applicazione OpenSearch UI.

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

Attendi che lo stato del dominio diventi tale `Active` prima di procedere.

### Fase 2: Creare il ruolo IAM per l'applicazione IAM Identity Center
<a name="cross-region-scenario-2-step-2"></a>

Crea un ruolo IAM che l' OpenSearch interfaccia utente utilizza per l'accesso al piano dati degli utenti di IAM Identity Center.

**Per creare il ruolo applicativo IAM Identity Center**

1. Crea una politica di fiducia utilizzando solo la `sts:AssumeRole` dichiarazione. Aggiornerai questa politica per aggiungere l'`sts:SetContext`istruzione dopo aver creato l'applicazione nel passaggio successivo.

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

1. Crea una politica di autorizzazioni:

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

1. Crea il ruolo e allega le politiche:

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

### Fase 3: Creare l'applicazione OpenSearch UI con IAM Identity Center (regione dell'applicazione)
<a name="cross-region-scenario-2-step-3"></a>

**Nota**  
Assicurati che l'istanza di IAM Identity Center si trovi nella stessa regione della regione dell'applicazione OpenSearch UI.

```
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}}\"]"}]'
```

Dopo aver creato l'applicazione, annota l'ID dell'applicazione SSO contenuto nella risposta. Quindi aggiorna la policy di fiducia sul ruolo dell'applicazione IAM Identity Center per aggiungere la `sts:SetContext` dichiarazione:

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

### Fase 4: Creare e assegnare utenti e gruppi di IAM Identity Center
<a name="cross-region-scenario-2-step-4"></a>

**Crea un utente IAM Identity Center**  
Eseguire il seguente comando seguente. Sostituisci {{placeholder values}} con le informazioni appropriate.

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

**Crea un gruppo IAM Identity Center e aggiungi l'utente**  
Esegui i comandi seguenti:

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

**Assegna l'utente o il gruppo all'applicazione**  
Esegui il comando seguente:

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

**Configura la mappatura dei ruoli di backend sul dominio di destinazione**  
Mappa il gruppo IAM Identity Center su un ruolo OpenSearch di sicurezza nel dominio di destinazione:

```
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}}"]}]'
```

### Fase 5: Verifica e accesso
<a name="cross-region-scenario-2-step-5"></a>

Recupera i dettagli dell'applicazione per ottenere l'URL dell'endpoint:

```
aws opensearch get-application \
  --region {{application-region}} \
  --id {{application-id}}
```
+ Passa all'URL dell'endpoint dell'applicazione.
+ Accedi con le credenziali utente di IAM Identity Center.
+ Le richieste di dati degli utenti di IAM Identity Center vengono firmate con il ruolo applicativo IAM Identity Center.
+ Le mappature dei ruoli di backend sul dominio controllano le autorizzazioni di accesso ai dati.

## Scenario 3: utente IAM che accede a un dominio VPC in una regione diversa
<a name="cross-region-scenario-3"></a>

In questo scenario, OpenSearch crei un'applicazione UI in una regione e la connetti a un OpenSearch dominio VPC in un'altra regione all'interno dello stesso account. I domini VPC richiedono una configurazione di rete aggiuntiva e un'autorizzazione esplicita degli endpoint VPC con supporto interregionale.

### Fase 1: Configurare il VPC (regione di destinazione)
<a name="cross-region-scenario-3-step-1"></a>

Salta questo passaggio se esiste già un VPC nella regione di destinazione.

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

Scopri di più sulla [creazione di domini VPC](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html).

### Fase 2: Creare il dominio VPC (regione di destinazione)
<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}}
```

Attendi che lo stato del dominio diventi tale `Active` prima di procedere.

### Fase 3: Autorizzazione dell'endpoint VPC per il servizio principale OpenSearch dell'interfaccia utente con supporto interregionale (regione di destinazione)
<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}}
```

Risposta prevista:

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

### Fase 4: Creare l'applicazione OpenSearch UI (regione dell'applicazione)
<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}}\"]"}]'
```

### Fase 5: Verifica e accesso
<a name="cross-region-scenario-3-step-5"></a>

Recupera i dettagli dell'applicazione per ottenere l'URL dell'endpoint:

```
aws opensearch get-application \
  --region {{application-region}} \
  --id {{application-id}}
```
+ Passa all'URL dell'endpoint dell'applicazione dalla risposta.
+ Accedi con le credenziali IAM.
+ L'utente IAM firma le richieste del piano dati con le proprie credenziali.
+ La policy di accesso del dominio di destinazione e le mappature dei ruoli di backend controllano a quali dati l'utente può accedere.

## Scenario 4: utente IAM Identity Center che accede a un dominio VPC in una regione diversa
<a name="cross-region-scenario-4"></a>

In questo scenario, OpenSearch crei un'applicazione UI con autenticazione IAM Identity Center in una regione e la connetti a un OpenSearch dominio VPC in un'altra regione all'interno dello stesso account.

### Fase 1: Configurare il VPC (regione di destinazione)
<a name="cross-region-scenario-4-step-1"></a>

Salta questo passaggio se esiste già un VPC nella regione di destinazione.

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

Scopri di più sulla [creazione di domini VPC](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html).

### Fase 2: Creare il dominio VPC con IAM Identity Center abilitato (regione di destinazione)
<a name="cross-region-scenario-4-step-2"></a>

Crea un OpenSearch dominio nella regione di destinazione con controllo granulare degli accessi, integrazione con IAM Identity Center e configurazione VPC abilitati. Aggiorna la policy di accesso per consentire il ruolo dell'applicazione IAM Identity Center e aggiungi il parametro: `--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}}
```

Attendi che lo stato del dominio diventi tale `Active` prima di procedere.

### Fase 3: Autorizzazione dell'endpoint VPC per il servizio principale OpenSearch dell'interfaccia utente con supporto interregionale (regione di destinazione)
<a name="cross-region-scenario-4-step-3"></a>

**Importante**  
Si tratta di un passaggio fondamentale che riguarda esclusivamente i domini VPC con accesso interregionale. Il servizio OpenSearch UI deve essere esplicitamente autorizzato ad accedere all'endpoint VPC ed è necessario includere la regione dell'applicazione nell'elenco. `SupportedRegions`

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

Risposta prevista:

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

### Fase 4: Creare il ruolo IAM per l'applicazione IAM Identity Center
<a name="cross-region-scenario-4-step-4"></a>

Crea un ruolo IAM che l' OpenSearch interfaccia utente utilizza per l'accesso al piano dati degli utenti di IAM Identity Center.

**Per creare il ruolo applicativo IAM Identity Center**

1. Crea una politica di fiducia utilizzando solo la `sts:AssumeRole` dichiarazione. Aggiornerai questa politica per aggiungere l'`sts:SetContext`istruzione dopo aver creato l'applicazione nel passaggio successivo.

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

1. Crea una politica di autorizzazioni:

   ```
   {
     "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. Crea il ruolo e allega le politiche:

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

### Fase 5: Creare l'applicazione OpenSearch UI con IAM Identity Center (regione dell'applicazione)
<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}}\"]"}]'
```

Dopo aver creato l'applicazione, annota l'ID dell'applicazione SSO contenuto nella risposta. Quindi aggiorna la policy di fiducia sul ruolo dell'applicazione IAM Identity Center per aggiungere la `sts:SetContext` dichiarazione:

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

### Fase 6: Creare e assegnare utenti e gruppi di IAM Identity Center
<a name="cross-region-scenario-4-step-6"></a>

Segui gli stessi passaggi [Fase 4: Creare e assegnare utenti e gruppi di IAM Identity Center](#cross-region-scenario-2-step-4) per creare utenti e gruppi, assegnarli all'applicazione e configurare la mappatura dei ruoli di backend sul dominio di destinazione.

### Passaggio 7: verifica e accesso
<a name="cross-region-scenario-4-step-7"></a>

Recupera i dettagli dell'applicazione per ottenere l'URL dell'endpoint:

```
aws opensearch get-application \
  --region {{application-region}} \
  --id {{application-id}}
```
+ Passa all'URL dell'endpoint dell'applicazione.
+ Accedi con le credenziali utente di IAM Identity Center.
+ Le richieste di dati degli utenti di IAM Identity Center vengono firmate con il ruolo applicativo IAM Identity Center.
+ Le mappature dei ruoli di backend sul dominio controllano le autorizzazioni di accesso ai dati.

## Gestione delle applicazioni
<a name="cross-region-managing-applications"></a>

**Aggiorna un'applicazione con fonti di dati interregionali**  
Eseguire il seguente comando seguente. Sostituisci {{placeholder values}} con le informazioni appropriate.

```
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}}"
  }]'
```

**Importante**  
L'operazione di aggiornamento sostituisce l'intero array di fonti di dati. Includi tutte le fonti di dati che desideri conservare.

**Elenca le applicazioni**  
Esegui il comando seguente:

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

**Eliminazione di un'applicazione**  
Esegui il comando seguente:

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

**Revoca l'accesso agli endpoint VPC per regioni specifiche**  
Per revocare l'accesso interregionale per messaggi specifici Regione AWS mantenendone altri, utilizza il parametro relativo alle regioni da revocare`--service-options`:

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

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

Le tabelle seguenti riassumono le principali differenze tra i tipi di dominio, i metodi di autenticazione e l'accesso alla stessa area rispetto a quello interregionale.


**Dominio pubblico rispetto al dominio VPC**  

| Aspetto | Dominio pubblico | Dominio VPC | 
| --- | --- | --- | 
| Autorizzazione degli endpoint VPC | Campo non obbligatorio | Obbligatoria: deve autorizzare con application.opensearchservice.amazonaws.com SupportedRegions | 
| Configurazione della rete | Nessuno | VPC, sottorete, gruppo di sicurezza con HTTPS (443) in ingresso | 
| Politica di accesso IAM | Richiesto | Richiesto | 


**Utente IAM rispetto all'utente IAM Identity Center**  

| Aspetto | Utente IAM | Utente IAM Identity Center | 
| --- | --- | --- | 
| Credenziali del piano dati | Credenziali IAM proprie dell'utente | Ruolo applicativo IAM Identity Center | 
| Controllo accessi | Policy di accesso al dominio e mappatura dei ruoli di backend | Politica di accesso al dominio e mappature dei ruoli di backend | 
| Vincolo della regione dell'applicazione | Qualsiasi regione | Deve trovarsi nella stessa regione dell'istanza IAM Identity Center | 
| Configurazione del dominio | Standard | Richiede --identity-center-options con IdentityCenterInstanceRegion | 
| Configurazione aggiuntiva | Nessuno | Ruolo dell'applicazione IAM Identity Center, user/group creazione, assegnazione delle applicazioni, mappatura dei ruoli di backend | 


**Stessa regione rispetto a quella interregionale**  

| Aspetto | Stessa regione | Interregione | 
| --- | --- | --- | 
| Fonte dati ARN | Stessa regione dell'applicazione | Regione diversa dall'applicazione (stessa partizione) | 
| Autorizzazione degli endpoint VPC | Ometti --service-options | Includi --service-options con SupportedRegions | 
| Configurazione del dominio IAM Identity Center | IdentityCenterInstanceRegion facoltativo | IdentityCenterInstanceRegion obbligatorio | 
| Supporto tra partizioni | N/D | Non supportato: le fonti di dati devono trovarsi nella stessa partizione | 

## Note importanti
<a name="cross-region-important-notes"></a>
+ L'associazione di origini dati tra regioni richiede l'attivazione di un controllo granulare degli accessi sul dominio di destinazione.
+ Le fonti di dati interregionali devono trovarsi all'interno della stessa partizione. L'accesso tra partizioni (ad esempio, da `aws` a`aws-cn`) non è supportato.
+ La regione dell'origine dati viene estratta automaticamente dall'ARN dell'origine dati. Non è necessario alcun parametro Region aggiuntivo in or. `CreateApplication` `UpdateApplication` APIs
+ Per le sorgenti dati interregionali dello stesso account, `iamRoleForDataSourceArn` non è obbligatorio. È necessario solo per fonti di dati tra account diversi.
+ Per i domini VPC, è necessario includere la regione dell'applicazione nel `SupportedRegions` parametro durante la chiamata. `AuthorizeVpcEndpointAccess` L'omissione `--service-options` autorizza solo l'accesso alla stessa regione.
+ Per i flussi di IAM Identity Center, l'applicazione OpenSearch UI deve trovarsi nella stessa regione dell'istanza IAM Identity Center.
+ Per i flussi IAM Identity Center con domini interregionali, il dominio di destinazione deve essere incluso `--identity-center-options` per consentire l'`IdentityCenterInstanceRegion`introspezione dei token tra regioni.
+ Versioni del motore supportate: 1.3 e successive. OpenSearch 

## Risoluzione dei problemi
<a name="cross-region-troubleshooting"></a>


| Problema | Risoluzione | 
| --- | --- | 
| La creazione dell'applicazione non riesce con «Impossibile accedere al dominio» | Verifica che il dominio esista nella regione di destinazione e che il controllo granulare degli accessi sia abilitato. Per gli scenari con più account, verifica che il ruolo tra account disponga dell'es:DescribeDomainautorizzazione e che la politica di attendibilità consenta l'account di origine. | 
| L'accesso al dominio VPC non riesce per più regioni | Assicurati che l'endpoint VPC sia autorizzato application.opensearchservice.amazonaws.com con la regione dell'applicazione inclusa. SupportedRegions | 
| Accesso al piano dati negato per l'utente IAM | Verifica che la policy di accesso al dominio di destinazione consenta l'utente o il responsabile del ruolo IAM e che le mappature granulari dei ruoli del backend per il controllo degli accessi garantiscano le autorizzazioni appropriate. | 
| Accesso al piano dati negato per l'utente IAM Identity Center | Verifica che la mappatura dei ruoli di backend includa l'ID del gruppo IAM Identity Center, che la policy del dominio consenta il ruolo dell'applicazione IAM Identity Center e IdentityCenterInstanceRegion sia impostata correttamente sulla stessa regione dell'applicazione OpenSearch UI sul dominio. | 
| Fonte di dati tra partizioni rifiutata | L'accesso tra partizioni non è supportato. Assicurati che l'ARN dell'origine dati si trovi nella stessa partizione dell'applicazione. | 
| L'autenticazione IAM Identity Center non riesce per un dominio interregionale | Verifica che IdentityCenterInstanceRegion sia impostata la regione corretta in cui è abilitata l'istanza di IAM Identity Center. Anche l'applicazione dell' OpenSearch interfaccia utente deve trovarsi nella stessa regione. | 