As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Acesso a dados entre contas a domínios OpenSearch
Você pode configurar seus aplicativos de OpenSearch interface de usuário em uma conta para acessar OpenSearch domínios em contas diferentes. Ao criar um aplicativo de OpenSearch interface de usuário com fontes de dados entre contas, você fornece um iamRoleForDataSourceArn que aponta para uma função do IAM na conta de destino. OpenSearch A interface do usuário valida a solicitação assumindo essa função e ligando es:DescribeDomain para verificar a acessibilidade do domínio. A função entre contas é usada somente durante a associação da fonte de dados. O acesso ao plano de dados é controlado separadamente pela política de acesso do domínio de destino.
O suporte a fontes de dados entre contas exige que um controle de acesso refinado seja ativado no domínio de destino. O controle de acesso refinado fornece uma camada de autorização adicional além da política de acesso ao domínio, permitindo que você controle o acesso a índices, documentos e campos individuais.
Principais conceitos
- Conta de origem
-
O Conta da AWS que hospeda seu aplicativo de OpenSearch interface do usuário.
- Conta de destino
-
O Conta da AWS local onde o OpenSearch domínio reside.
- Função entre contas
-
Uma função do IAM na conta de destino que é usada somente durante a associação da fonte de dados. OpenSearch A interface do usuário assume essa função para chamar
es:DescribeDomain, o que recupera o endpoint do domínio e verifica se o controle de acesso refinado está ativado. Essa é uma etapa de descoberta e validação, não um limite de segurança. A função entre contas nunca é usada para acesso ao plano de dados. Após a associação, todas as solicitações do plano de dados são autorizadas pela política de acesso do domínio e pelos mapeamentos de funções de back-end, independentemente da função entre contas. - Função do aplicativo IAM Identity Center
-
Uma função do IAM na conta de origem que é usada para acesso ao plano de dados do usuário do IAM Identity Center.
Como funciona a suposição de funções entre contas
Quando você cria ou atualiza um aplicativo de OpenSearch interface de usuário com uma fonte de dados entre contas, a OpenSearch interface do usuário assume a função entre contas na conta de destino usando sessões de acesso encaminhado (FAS). O FAS propaga a identidade IAM do próprio diretor chamador para a sts:AssumeRole chamada. Isso significa que:
-
A política de confiança da conta de destino controla quais diretores da conta de origem podem assumir a função entre contas.
-
A sessão de função assumida carrega a identidade do chamador que iniciou a
UpdateApplicationsolicitaçãoCreateApplicationou. -
A função entre contas é assumida somente durante a associação à chamada
es:DescribeDomain. Ele não é usado para nenhuma operação subsequente do plano de dados.
Para acesso ao plano de dados:
-
Os usuários do IAM assinam solicitações com suas próprias credenciais do IAM. A política de acesso do domínio de destino autoriza essas solicitações diretamente.
-
Os usuários do IAM Identity Center têm suas solicitações assinadas com a função do aplicativo do IAM Identity Center (
iamRoleForIdentityCenterApplicationArn) na conta de origem. A política de acesso e os mapeamentos de funções de back-end do domínio de destino autorizam essas solicitações.
Pré-requisitos
Antes de configurar o acesso a dados entre contas, verifique se você tem o seguinte:
-
AWS CLI instalado e configurado
-
Acesso à origem e ao destino Conta da AWS
-
OpenSearch domínios com controle de acesso refinado ativado. A associação de fontes de dados entre contas não é suportada para domínios sem controle de acesso refinado.
-
Para fluxos do IAM Identity Center: uma instância Centro de Identidade do AWS IAM organizacional
Cenários
Escolha o cenário que corresponda ao seu método de autenticação e à configuração do domínio:
Cenário 1: usuário do IAM acessando um domínio público
Etapa 1: criar a função IAM entre contas (conta de destino)
Crie uma função do IAM na conta de destino que permita que a conta de origem a assuma para validação do domínio.
Para criar a função entre contas
-
Crie uma política de confiança que permita que a conta de origem assuma a função:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
Crie a função:
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
Crie uma política de permissões com apenas a
es:DescribeDomainação:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
Anexe a política de permissões ao perfil:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
Etapa 2: criar o OpenSearch domínio (conta de destino)
Crie um OpenSearch domínio na conta de destino com controle de acesso refinado e criptografia habilitados:
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
Essa política de acesso define o escopo do acesso do plano de dados aos diretores do IAM a partir da conta de origem. Para um acesso mais restritivo, substitua o principal raiz da conta por um usuário ou função ARNs específica do IAM. O controle de acesso refinado fornece uma camada de autorização adicional para controlar o acesso a índices e documentos.
Aguarde até que o status do domínio se torne Active antes de continuar.
Etapa 3: criar o aplicativo de OpenSearch interface do usuário (conta de origem)
Crie o aplicativo na conta de origem com a fonte de dados entre contas:
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":"[\"*\"]"}]'
Etapa 4: verificar e acessar
Recupere os detalhes do aplicativo para obter o URL do endpoint:
aws opensearch get-application \ --regionregion\ --idapplication-id
-
Navegue até o URL do endpoint do aplicativo a partir da resposta.
-
Faça login com as credenciais do IAM.
-
O usuário do IAM assina as solicitações do plano de dados com suas próprias credenciais.
-
A política de acesso ao domínio de destino controla quais dados o usuário pode acessar.
Cenário 2: usuário do IAM Identity Center acessando um domínio público
Etapa 1: criar a função IAM entre contas (conta de destino)
Crie uma função do IAM na conta de destino que permita que a conta de origem a assuma para validação do domínio.
Para criar a função entre contas
-
Crie uma política de confiança que permita que a conta de origem assuma a função:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
Crie a função:
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
Crie uma política de permissões com apenas a
es:DescribeDomainação:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
Anexe a política de permissões ao perfil:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
Etapa 2: criar o OpenSearch domínio (conta de destino)
Crie um OpenSearch domínio na conta de destino. Use o mesmo comando deEtapa 2: criar o OpenSearch domínio (conta de destino), mas atualize a política de acesso para permitir o papel do aplicativo IAM Identity Center na conta de origem:
{ "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/*" }] }
Aguarde até que o status do domínio se torne Active antes de continuar.
Etapa 3: criar a função do IAM para o aplicativo IAM Identity Center (conta de origem)
Crie uma função do IAM na conta de origem que a OpenSearch UI usa para acessar o plano de dados do usuário do IAM Identity Center.
Para criar a função do aplicativo IAM Identity Center
-
Crie uma política de confiança:
{ "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" } } } ] } -
Crie uma política de permissões:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] } -
Crie a função e anexe as políticas:
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
Etapa 4: criar o aplicativo de OpenSearch interface do usuário com o IAM Identity Center (conta de origem)
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":"[\"*\"]"}]'
Etapa 5: criar e atribuir usuários e grupos do IAM Identity Center
Crie um usuário do IAM Identity Center
Execute o comando a seguir. Substitua placeholder
values por suas próprias informações.
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
Crie um grupo do IAM Identity Center e adicione o usuário
Execute os seguintes comandos :
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
Atribua o usuário ou grupo ao aplicativo
Execute este comando: .
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
Configurar o mapeamento de funções de back-end no domínio de destino
Mapeie o grupo do IAM Identity Center para uma função de OpenSearch segurança no domínio de destino:
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": [] }'
Etapa 6: verificar e acessar
aws opensearch get-application \ --regionregion\ --idapplication-id
-
Navegue até o URL do endpoint do aplicativo.
-
Faça login com as credenciais de usuário do IAM Identity Center.
-
As solicitações de dados dos usuários do IAM Identity Center são assinadas com a função de aplicativo do IAM Identity Center, não com a função entre contas.
-
Mapeamentos de funções de back-end nas permissões de acesso aos dados de controle de domínio.
Cenário 3: usuário do IAM acessando um domínio VPC
Etapa 1: criar a função IAM entre contas (conta de destino)
Crie uma função do IAM na conta de destino que permita que a conta de origem a assuma para validação do domínio.
Para criar a função entre contas
-
Crie uma política de confiança que permita que a conta de origem assuma a função:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
Crie a função:
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
Crie uma política de permissões com apenas a
es:DescribeDomainação:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
Anexe a política de permissões ao perfil:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
Etapa 2: configurar a VPC (conta de destino)
Ignore essa etapa se já existir uma VPC na conta de destino.
# 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
Saiba mais sobre a criação de domínios VPC.
Etapa 3: criar o domínio VPC (conta de destino)
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
Essa política de acesso define o escopo do acesso do plano de dados aos diretores do IAM a partir da conta de origem. Para um acesso mais restritivo, substitua o principal raiz da conta por um usuário ou função ARNs específica do IAM. O controle de acesso refinado fornece uma camada de autorização adicional para controlar o acesso a índices e documentos.
Aguarde até que o status do domínio se torne Active antes de continuar.
Etapa 4: autorizar o VPC endpoint para o principal do serviço de interface OpenSearch do usuário (conta de destino)
Importante
Essa é uma etapa crítica exclusiva dos domínios VPC. O serviço de OpenSearch interface do usuário deve ser explicitamente autorizado a acessar o VPC endpoint.
# 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
Resposta esperada:
{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }
Etapa 5: criar o aplicativo de OpenSearch interface do usuário (conta de origem)
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":"[\"*\"]"}]'
Etapa 6: verificar e acessar
Recupere os detalhes do aplicativo para obter o URL do endpoint:
aws opensearch get-application \ --regionregion\ --idapplication-id
-
Navegue até o URL do endpoint do aplicativo a partir da resposta.
-
Faça login com as credenciais do IAM.
-
O usuário do IAM assina as solicitações do plano de dados com suas próprias credenciais.
-
A política de acesso ao domínio de destino controla quais dados o usuário pode acessar.
Cenário 4: usuário do IAM Identity Center acessando um domínio VPC
Etapa 1: criar a função IAM entre contas (conta de destino)
Crie uma função do IAM na conta de destino que permita que a conta de origem a assuma para validação do domínio.
Para criar a função entre contas
-
Crie uma política de confiança que permita que a conta de origem assuma a função:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
Crie a função:
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
Crie uma política de permissões com apenas a
es:DescribeDomainação:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
Anexe a política de permissões ao perfil:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
Etapa 2: configurar a VPC (conta de destino)
Ignore essa etapa se já existir uma VPC na conta de destino.
# 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
Saiba mais sobre a criação de domínios VPC.
Etapa 3: criar o domínio VPC (conta de destino)
Use o mesmo comando deEtapa 3: criar o domínio VPC (conta de destino), mas atualize a política de acesso para permitir o papel do aplicativo IAM Identity Center na conta de origem:
{ "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/*" }] }
Aguarde até que o status do domínio se torne Active antes de continuar.
Etapa 4: autorizar o VPC endpoint para o principal do serviço de interface OpenSearch do usuário (conta de destino)
Importante
Essa é uma etapa crítica exclusiva dos domínios VPC. O serviço de OpenSearch interface do usuário deve ser explicitamente autorizado a acessar o VPC endpoint.
# 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
Resposta esperada:
{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }
Etapa 5: criar a função do IAM para o aplicativo IAM Identity Center (conta de origem)
Crie uma função do IAM na conta de origem que a OpenSearch UI usa para acessar o plano de dados do usuário do IAM Identity Center.
Para criar a função do aplicativo IAM Identity Center
-
Crie uma política de confiança:
{ "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" } } } ] } -
Crie uma política de permissões:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] } -
Crie a função e anexe as políticas:
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
Etapa 6: criar o aplicativo de OpenSearch interface do usuário com o IAM Identity Center (conta de origem)
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":"[\"*\"]"}]'
Etapa 7: criar e atribuir usuários e grupos do IAM Identity Center
Crie um usuário do IAM Identity Center
Execute o comando a seguir. Substitua placeholder
values por suas próprias informações.
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
Crie um grupo do IAM Identity Center e adicione o usuário
Execute os seguintes comandos :
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
Atribua o usuário ou grupo ao aplicativo
Execute este comando: .
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
Configurar o mapeamento de funções de back-end no domínio de destino
Mapeie o grupo do IAM Identity Center para uma função de OpenSearch segurança no domínio de destino:
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": [] }'
Etapa 8: verificar e acessar
aws opensearch get-application \ --regionregion\ --idapplication-id
-
Navegue até o URL do endpoint do aplicativo.
-
Faça login com as credenciais de usuário do IAM Identity Center.
-
As solicitações de dados dos usuários do IAM Identity Center são assinadas com a função de aplicativo do IAM Identity Center, não com a função entre contas.
-
Mapeamentos de funções de back-end nas permissões de acesso aos dados de controle de domínio.
Como gerenciar aplicações do
Atualizar um aplicativo com fontes de dados entre contas
Execute o comando a seguir. Substitua placeholder
values por suas próprias informações.
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
A operação de atualização substitui toda a matriz de fontes de dados. Inclua todas as fontes de dados que você deseja manter.
Listar aplicativos
Execute este comando: .
aws opensearch list-applications \ --regionregion
Deleta a aplicação
Execute este comando: .
aws opensearch delete-application \ --regionregion\ --idapplication-id
Revogar o acesso ao VPC endpoint
Execute este comando: .
aws opensearch revoke-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --regionregion
Referência rápida
As tabelas a seguir resumem as principais diferenças entre os tipos de domínio e os métodos de autenticação.
| Aspecto | Domínio público | Domínio VPC |
|---|---|---|
| Autorização de VPC endpoint | Não obrigatório | Obrigatório — deve autorizar application.opensearchservice.amazonaws.com |
| Configuração da rede | Nenhum | VPC, sub-rede, grupo de segurança com entrada HTTPS (443) |
| Política de acesso do IAM | Obrigatório | Obrigatório |
| Função entre contas | Obrigatório para contas cruzadas | Obrigatório para contas cruzadas |
| Aspecto | IAM user (Usuário do IAM) | Usuários do IAM Identity Center |
|---|---|---|
| Credenciais do plano de dados | Credenciais do IAM do próprio usuário | Função do aplicativo IAM Identity Center |
| Controle de acesso | Política de acesso ao domínio | Política de acesso ao domínio e mapeamentos de funções de back-end |
| Configuração adicional | Nenhum | Função do aplicativo IAM Identity Center, user/group criação, atribuição de aplicativos, mapeamento de funções de back-end |
| OpenSearch Configuração do aplicativo de interface do usuário | Nenhuma opção do IAM Identity Center | --iam-identity-center-options obrigatório |
Observações importantes
-
O
iamRoleForDataSourceArndeve estar na mesma conta dodataSourceArn. -
Isso só
iamRoleForDataSourceArné necessário para fontes de dados entre contas. Omita-o para fontes de dados da mesma conta. -
A função entre contas só precisa da
es:DescribeDomainpermissão. Ele nunca é usado para acesso ao plano de dados. -
Para domínios VPC, tanto a política do IAM quanto a autorização do VPC endpoint devem ser configuradas.
-
Versões de motor suportadas: OpenSearch 1.3 e superiores.
-
A associação de fontes de dados entre contas exige que um controle de acesso refinado seja ativado no domínio de destino.
Solução de problemas
| Problema | Resolução |
|---|---|
| A criação do aplicativo falha com “Não é possível acessar o domínio” | Verifique se a função entre contas tem a es:DescribeDomain permissão e se a política de confiança permite a conta de origem. |
| Falha na associação de domínio VPC | Certifique-se de que o VPC endpoint esteja autorizado para. application.opensearchservice.amazonaws.com |
| Acesso ao plano de dados negado para usuário do IAM | Verifique se a política de acesso ao domínio de destino permite o usuário ou o responsável pela função do IAM. |
| Acesso ao plano de dados negado para o usuário do IAM Identity Center | Verifique se o mapeamento da função de back-end inclui o ID do grupo do IAM Identity Center e se a política de domínio permite a função do aplicativo do IAM Identity Center. |
| Erro de incompatibilidade de conta | Certifique-se de que iamRoleForDataSourceArn esteja na mesma conta do domínio emdataSourceArn. |