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 tra account diversi ai domini OpenSearch
Puoi configurare le applicazioni OpenSearch dell'interfaccia utente in un unico account per accedere ai OpenSearch domini di account diversi. Quando OpenSearch crei un'applicazione UI con fonti di dati tra account diversi, fornisci un elemento iamRoleForDataSourceArn che rimanda a un ruolo IAM nell'account di destinazione. OpenSearch L'interfaccia utente convalida la richiesta assumendo questo ruolo e chiamando es:DescribeDomain per verificare l'accessibilità del dominio. Il ruolo tra account diversi viene utilizzato solo durante l'associazione delle fonti di dati. L'accesso al piano dati è controllato separatamente dalla politica di accesso del dominio di destinazione.
Il supporto di origini dati tra account diversi 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
- Account di origine
-
Il Account AWS che ospita la tua applicazione OpenSearch UI.
- Account Target
-
Il Account AWS luogo in cui risiede il OpenSearch dominio.
- 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. Si tratta di una fase di scoperta e convalida, non di un limite di sicurezza. Il ruolo tra account diversi non viene mai utilizzato per l'accesso al piano dati. Dopo l'associazione, tutte le richieste del piano dati sono autorizzate dalla politica di accesso del dominio e dalle mappature dei ruoli di backend, indipendentemente dal ruolo tra account. - Ruolo dell'applicazione IAM Identity Center
-
Un ruolo IAM nell'account di origine utilizzato per l'accesso al piano dati degli utenti di IAM Identity Center.
Come funziona l'ipotesi di ruolo tra account
Quando crei o aggiorni un'applicazione OpenSearch UI con un'origine dati multiaccount, l' OpenSearch interfaccia utente assume il ruolo tra account nell'account di destinazione utilizzando Forwarded Access Sessions (FAS). FAS propaga l'identità IAM del principale chiamante alla chiamata. sts:AssumeRole Ciò significa che:
-
La policy di fiducia dell'account di destinazione controlla quali principali account di origine possono assumere il ruolo tra account.
-
La sessione di ruolo assunta riporta l'identità del chiamante che ha avviato la richiesta or.
CreateApplicationUpdateApplication -
Il ruolo tra account diversi viene assunto solo durante l'associazione alla chiamata.
es:DescribeDomainNon viene utilizzato per operazioni successive sul piano dati.
Per l'accesso al piano dati:
-
Gli utenti IAM firmano le richieste con le proprie credenziali IAM. La politica di accesso del dominio di destinazione autorizza direttamente queste richieste.
-
Gli utenti di IAM Identity Center fanno firmare le loro richieste con il ruolo applicativo IAM Identity Center (
iamRoleForIdentityCenterApplicationArn) nell'account di origine. La policy di accesso e le mappature dei ruoli di backend del dominio di destinazione autorizzano queste richieste.
Prerequisiti
Prima di configurare l'accesso ai dati tra account diversi, assicurati di disporre di quanto segue:
-
AWS CLI installato e configurato
-
Accesso sia ai file di origine che a quelli Account AWS di destinazione
-
OpenSearch domini con controllo granulare degli accessi abilitato. L'associazione delle fonti di dati tra account non è supportata per i domini senza controllo granulare degli accessi.
-
Per i flussi di IAM Identity Center: un'istanza organizzativa AWS IAM Identity Center
Scenari
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
Fase 1: Creare il ruolo IAM per più account (account di destinazione)
Crea un ruolo IAM nell'account di destinazione che consenta all'account di origine di assumerlo per la convalida del dominio.
Per creare il ruolo tra account
-
Crea una politica di fiducia che consenta all'account di origine di assumere il ruolo:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
Crea il ruolo:
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
Crea una politica di autorizzazioni con la sola
es:DescribeDomainazione:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
Allega la politica delle autorizzazioni al ruolo:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
Fase 2: Creare il OpenSearch dominio (account di destinazione)
Crea un OpenSearch dominio nell'account di destinazione con il controllo granulare degli accessi e la crittografia abilitati:
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::source-account-id:root"},"Action":"es:ESHttp*","Resource":"arn:aws:es:region:target-account-id:domain/domain-name/*"}]}' \ --regionregion
Nota
Questa policy di accesso riguarda l'accesso dal piano dati ai principali IAM dal piano dati dall'account di origine. Per un accesso più restrittivo, sostituisci il principale principale dell'account con un utente o un ruolo IAM specifico. ARNs Il controllo granulare degli accessi fornisce un livello di autorizzazione aggiuntivo per controllare l'accesso a indici e documenti.
Attendi che lo stato del dominio diventi tale prima di procedere. Active
Fase 3: Creare l'applicazione OpenSearch UI (account di origine)
Crea l'applicazione nell'account di origine con l'origine dati tra account:
aws opensearch create-application \ --regionregion\ --name "cross-account-iam-app" \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/domain-name", "dataSourceDescription":"Cross-account domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"*\"]"}]'
Fase 4: Verifica e accedi
Recupera i dettagli dell'applicazione per ottenere l'URL dell'endpoint:
aws opensearch get-application \ --regionregion\ --idapplication-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 al dominio di destinazione controlla a quali dati l'utente può accedere.
Scenario 2: utente di IAM Identity Center che accede a un dominio pubblico
Fase 1: Creare il ruolo IAM per più account (account di destinazione)
Crea un ruolo IAM nell'account di destinazione che consenta all'account di origine di assumerlo per la convalida del dominio.
Per creare il ruolo tra account
-
Crea una politica di fiducia che consenta all'account di origine di assumere il ruolo:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
Crea il ruolo:
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
Crea una politica di autorizzazioni con la sola
es:DescribeDomainazione:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
Allega la politica delle autorizzazioni al ruolo:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
Fase 2: Creare il OpenSearch dominio (account di destinazione)
Crea un OpenSearch dominio nell'account di destinazione. Utilizza lo stesso comandoFase 2: Creare il OpenSearch dominio (account di destinazione), ma aggiorna la policy di accesso per consentire il ruolo dell'applicazione IAM Identity Center dall'account di origine:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:role/NeoIdCAppRole" }, "Action": "es:ESHttp*", "Resource": "arn:aws:es:region:target-account-id:domain/domain-name/*" }] }
Attendi che lo stato del dominio diventi tale Active prima di procedere.
Fase 3: Creare il ruolo IAM per l'applicazione IAM Identity Center (account di origine)
Crea un ruolo IAM nell'account di origine 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
-
Crea una politica di fiducia:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:SetContext", "Condition": { "ForAllValues:ArnEquals": { "sts:RequestContextProviders": "arn:aws:iam::source-account-id:oidc-provider/portal.sso.region.amazonaws.com/apl/application-id" } } } ] } -
Crea una politica di autorizzazioni:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] } -
Crea il ruolo e allega le politiche:
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
Fase 4: Creare l'applicazione OpenSearch UI con IAM Identity Center (account di origine)
aws opensearch create-application \ --regionregion\ --name "cross-account-idc-app" \ --iam-identity-center-options '{ "enabled":true, "iamIdentityCenterInstanceArn":"arn:aws:sso:::instance/ssoins-instance-id", "iamRoleForIdentityCenterApplicationArn":"arn:aws:iam::source-account-id:role/NeoIdCAppRole" }' \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/domain-name", "dataSourceDescription":"Cross-account domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"*\"]"}]'
Fase 5: Creare e assegnare utenti e gruppi di IAM Identity Center
Crea un utente IAM Identity Center
Eseguire il seguente comando seguente. Sostituisci placeholder
values con le informazioni appropriate.
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
Crea un gruppo IAM Identity Center e aggiungi l'utente
Esegui i comandi seguenti:
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
Assegna l'utente o il gruppo all'applicazione
Esegui il comando seguente:
aws sso-admin create-application-assignment \ --application-arn "arn:aws:sso:::source-account-id:application/ssoins-instance-id/apl-application-id" \ --principal-iduser-id-or-group-id\ --principal-typeUSER
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 -XPUT "https://domain-endpoint/_plugins/_security/api/rolesmapping/all_access" \ -uadmin:master-password\ -H 'Content-Type: application/json' \ -d '{ "backend_roles": ["group-id"], "hosts": [], "users": [] }'
Fase 6: Verifica e accesso
aws opensearch get-application \ --regionregion\ --idapplication-id
-
Vai 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, non con il ruolo tra account.
-
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
Fase 1: Creare il ruolo IAM per più account (account di destinazione)
Crea un ruolo IAM nell'account di destinazione che consenta all'account di origine di assumerlo per la convalida del dominio.
Per creare il ruolo tra account
-
Crea una politica di fiducia che consenta all'account di origine di assumere il ruolo:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
Crea il ruolo:
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
Crea una politica di autorizzazioni con la sola
es:DescribeDomainazione:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
Allega la politica delle autorizzazioni al ruolo:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
Fase 2: Configurare il VPC (account di destinazione)
Salta questo passaggio se nell'account di destinazione esiste già un VPC.
# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --regionregion# Create subnet aws ec2 create-subnet \ --vpc-idvpc-id\ --cidr-block 10.0.1.0/24 \ --availability-zoneregiona \ --regionregion# Create security group aws ec2 create-security-group \ --group-nameopensearch-vpc-sg\ --description "Security group for OpenSearch VPC domain" \ --vpc-idvpc-id\ --regionregion# Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-idsecurity-group-id\ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --regionregion
Scopri di più sulla creazione di domini VPC.
Fase 3: Creare il dominio VPC (account di destinazione)
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::source-account-id:root"},"Action":"es:ESHttp*","Resource":"arn:aws:es:region:target-account-id:domain/vpc-domain-name/*"}]}' \ --regionregion
Nota
Questa politica di accesso riguarda l'accesso dal piano dati ai principali IAM dall'account di origine. Per un accesso più restrittivo, sostituisci il principale principale dell'account con un utente o un ruolo IAM specifico. ARNs Il controllo granulare degli accessi fornisce un livello di autorizzazione aggiuntivo per controllare l'accesso a indici e documenti.
Attendi che lo stato del dominio diventi tale prima di procedere. Active
Passaggio 4: autorizzare l'endpoint VPC per il principale OpenSearch del servizio UI (account di destinazione)
Importante
Si tratta di un passaggio fondamentale che riguarda esclusivamente i domini VPC. Il servizio OpenSearch UI deve essere esplicitamente autorizzato ad accedere all'endpoint VPC.
# Authorize the service principal aws opensearch authorize-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --regionregion# Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-namevpc-domain-name\ --regionregion
Risposta prevista:
{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }
Fase 5: Creare l'applicazione OpenSearch UI (account di origine)
aws opensearch create-application \ --regionregion\ --name "cross-account-vpc-iam-app" \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/vpc-domain-name", "dataSourceDescription":"Cross-account VPC domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"*\"]"}]'
Passaggio 6: verifica e accesso
Recupera i dettagli dell'applicazione per ottenere l'URL dell'endpoint:
aws opensearch get-application \ --regionregion\ --idapplication-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 al dominio di destinazione controlla a quali dati l'utente può accedere.
Scenario 4: utente IAM Identity Center che accede a un dominio VPC
Fase 1: Creare il ruolo IAM per più account (account di destinazione)
Crea un ruolo IAM nell'account di destinazione che consenta all'account di origine di assumerlo per la convalida del dominio.
Per creare il ruolo tra account
-
Crea una politica di fiducia che consenta all'account di origine di assumere il ruolo:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
Crea il ruolo:
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
Crea una politica di autorizzazioni con la sola
es:DescribeDomainazione:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
Allega la politica delle autorizzazioni al ruolo:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
Fase 2: Configurare il VPC (account di destinazione)
Salta questo passaggio se nell'account di destinazione esiste già un VPC.
# Create VPC aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --regionregion# Create subnet aws ec2 create-subnet \ --vpc-idvpc-id\ --cidr-block 10.0.1.0/24 \ --availability-zoneregiona \ --regionregion# Create security group aws ec2 create-security-group \ --group-nameopensearch-vpc-sg\ --description "Security group for OpenSearch VPC domain" \ --vpc-idvpc-id\ --regionregion# Allow inbound HTTPS aws ec2 authorize-security-group-ingress \ --group-idsecurity-group-id\ --protocol tcp \ --port 443 \ --cidr 10.0.0.0/16 \ --regionregion
Scopri di più sulla creazione di domini VPC.
Fase 3: Creare il dominio VPC (account di destinazione)
Utilizza lo stesso comandoFase 3: Creare il dominio VPC (account di destinazione), ma aggiorna la policy di accesso per consentire il ruolo dell'applicazione IAM Identity Center dall'account di origine:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:role/NeoIdCAppRole" }, "Action": "es:ESHttp*", "Resource": "arn:aws:es:region:target-account-id:domain/vpc-domain-name/*" }] }
Attendi che lo stato del dominio diventi tale Active prima di procedere.
Passaggio 4: autorizzare l'endpoint VPC per il principale OpenSearch del servizio UI (account di destinazione)
Importante
Si tratta di un passaggio fondamentale che riguarda esclusivamente i domini VPC. Il servizio OpenSearch UI deve essere esplicitamente autorizzato ad accedere all'endpoint VPC.
# Authorize the service principal aws opensearch authorize-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --regionregion# Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-namevpc-domain-name\ --regionregion
Risposta prevista:
{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }
Fase 5: Creare il ruolo IAM per l'applicazione IAM Identity Center (account di origine)
Crea un ruolo IAM nell'account di origine 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
-
Crea una politica di fiducia:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "application.opensearchservice.amazonaws.com" }, "Action": "sts:SetContext", "Condition": { "ForAllValues:ArnEquals": { "sts:RequestContextProviders": "arn:aws:iam::source-account-id:oidc-provider/portal.sso.region.amazonaws.com/apl/application-id" } } } ] } -
Crea una politica di autorizzazioni:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] } -
Crea il ruolo e allega le politiche:
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
Fase 6: Creare l'applicazione OpenSearch UI con IAM Identity Center (account di origine)
aws opensearch create-application \ --regionregion\ --name "cross-account-vpc-idc-app" \ --iam-identity-center-options '{ "enabled":true, "iamIdentityCenterInstanceArn":"arn:aws:sso:::instance/ssoins-instance-id", "iamRoleForIdentityCenterApplicationArn":"arn:aws:iam::source-account-id:role/NeoIdCAppRole" }' \ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/vpc-domain-name", "dataSourceDescription":"Cross-account VPC domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]' \ --app-configs '[{"key":"opensearchDashboards.dashboardAdmin.users","value":"[\"*\"]"}]'
Fase 7: Creare e assegnare utenti e gruppi di IAM Identity Center
Crea un utente IAM Identity Center
Eseguire il seguente comando seguente. Sostituisci placeholder
values con le informazioni appropriate.
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
Crea un gruppo IAM Identity Center e aggiungi l'utente
Esegui i comandi seguenti:
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
Assegna l'utente o il gruppo all'applicazione
Esegui il comando seguente:
aws sso-admin create-application-assignment \ --application-arn "arn:aws:sso:::source-account-id:application/ssoins-instance-id/apl-application-id" \ --principal-iduser-id-or-group-id\ --principal-typeUSER
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 -XPUT "https://domain-endpoint/_plugins/_security/api/rolesmapping/all_access" \ -uadmin:master-password\ -H 'Content-Type: application/json' \ -d '{ "backend_roles": ["group-id"], "hosts": [], "users": [] }'
Fase 8: Verifica e accesso
aws opensearch get-application \ --regionregion\ --idapplication-id
-
Vai 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, non con il ruolo tra account.
-
Le mappature dei ruoli di backend sul dominio controllano le autorizzazioni di accesso ai dati.
Gestione delle applicazioni
Aggiorna un'applicazione con fonti di dati tra account diversi
Eseguire il seguente comando seguente. Sostituisci placeholder
values con le informazioni appropriate.
aws opensearch update-application \ --regionregion\ --idapplication-id\ --data-sources '[{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/domain-1", "dataSourceDescription":"First cross-account domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" },{ "dataSourceArn":"arn:aws:es:region:target-account-id:domain/domain-2", "dataSourceDescription":"Second cross-account domain", "iamRoleForDataSourceArn":"arn:aws:iam::target-account-id:role/OpenSearchUIAccessRole" }]'
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 \ --regionregion
Eliminazione di un'applicazione
Esegui il comando seguente:
aws opensearch delete-application \ --regionregion\ --idapplication-id
Revoca l'accesso agli endpoint VPC
Esegui il comando seguente:
aws opensearch revoke-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --regionregion
Riferimento rapido
Le tabelle seguenti riassumono le principali differenze tra i tipi di dominio e i metodi di autenticazione.
| Aspetto | Dominio pubblico | Dominio VPC |
|---|---|---|
| Autorizzazione degli endpoint VPC | Campo non obbligatorio | Obbligatoria: deve autorizzare application.opensearchservice.amazonaws.com |
| Configurazione della rete | Nessuno | VPC, sottorete, gruppo di sicurezza con HTTPS (443) in ingresso |
| Politica di accesso IAM | Richiesto | Richiesto |
| Ruolo tra account | Obbligatorio per più account | Obbligatorio per più account |
| 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 | Policy di accesso al dominio e mappatura dei ruoli di backend |
| Configurazione aggiuntiva | Nessuno | Ruolo dell'applicazione IAM Identity Center, user/group creazione, assegnazione delle applicazioni, mappatura dei ruoli di backend |
| OpenSearch Configurazione dell'applicazione UI | Nessuna opzione IAM Identity Center | --iam-identity-center-options obbligatorio |
Note importanti
-
iamRoleForDataSourceArnDeve essere nello stesso account deldataSourceArn. -
iamRoleForDataSourceArnÈ richiesto solo per le fonti di dati tra account diversi. Omettilo per le fonti di dati dello stesso account. -
Il ruolo tra account diversi richiede solo l'autorizzazione.
es:DescribeDomainNon viene mai utilizzato per l'accesso al piano dati. -
Per i domini VPC, è necessario configurare sia la policy IAM che l'autorizzazione degli endpoint VPC.
-
Versioni del motore supportate: OpenSearch 1.3 e successive.
-
L'associazione delle fonti di dati tra account richiede l'attivazione di un controllo granulare degli accessi sul dominio di destinazione.
Risoluzione dei problemi
| Problema | Risoluzione |
|---|---|
| La creazione dell'applicazione non riesce con «Impossibile accedere al dominio» | Verifica che il ruolo interaccount disponga dell'es:DescribeDomainautorizzazione e che la politica di attendibilità consenta l'accesso all'account di origine. |
| L'associazione del dominio VPC non riesce | Assicurati che l'endpoint VPC sia autorizzato per. application.opensearchservice.amazonaws.com |
| 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. |
| 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 e che la policy del dominio consenta il ruolo dell'applicazione IAM Identity Center. |
| Errore di mancata corrispondenza dell'account | Assicurati che iamRoleForDataSourceArn si trovi nello stesso account del dominio indataSourceArn. |