Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Acceso a datos multicuenta a dominios OpenSearch
Puede configurar sus aplicaciones de OpenSearch interfaz de usuario en una cuenta para acceder a los OpenSearch dominios de diferentes cuentas. Al crear una aplicación de OpenSearch interfaz de usuario con fuentes de datos multicuenta, se proporciona una iamRoleForDataSourceArn que apunta a una función de IAM en la cuenta de destino. OpenSearch La interfaz de usuario valida la solicitud asumiendo esta función y realizando una llamada es:DescribeDomain para verificar la accesibilidad del dominio. La función multicuenta se usa solo durante la asociación de fuentes de datos. El acceso al plano de datos se controla por separado mediante la política de acceso del dominio de destino.
La compatibilidad con fuentes de datos entre cuentas requiere que se habilite un control de acceso detallado en el dominio de destino. El control de acceso detallado proporciona una capa de autorización adicional que va más allá de la política de acceso al dominio, lo que le permite controlar el acceso a índices, documentos y campos individuales.
Conceptos clave
- Cuenta de origen
-
El Cuenta de AWS que aloja su OpenSearch aplicación de interfaz de usuario.
- Cuenta objetivo
-
Lugar Cuenta de AWS en el que reside el OpenSearch dominio.
- Función multicuenta
-
Un rol de IAM en la cuenta de destino que se usa únicamente durante la asociación de fuentes de datos. OpenSearch Al llamar
es:DescribeDomain, la interfaz de usuario asume esta función, que recupera el punto final del dominio y verifica que el control de acceso detallado esté habilitado. Se trata de un paso de descubrimiento y validación, no de un límite de seguridad. La función multicuenta nunca se utiliza para el acceso al plano de datos. Tras la asociación, todas las solicitudes del plano de datos están autorizadas por la política de acceso del dominio y las asignaciones de funciones de backend, independientemente de la función entre cuentas. - Función de aplicación de IAM Identity Center
-
Función de IAM en la cuenta de origen que se utiliza para acceder al plano de datos de los usuarios del IAM Identity Center.
Cómo funciona la suposición de roles entre cuentas
Al crear o actualizar una aplicación de OpenSearch interfaz de usuario con una fuente de datos multicuenta, la OpenSearch interfaz de usuario asume la función multicuenta en la cuenta de destino mediante las sesiones de acceso reenviado (FAS). FAS propaga la propia identidad de IAM del principal que realiza la llamada. sts:AssumeRole Esto significa:
-
La política de confianza de la cuenta de destino controla qué directores de cuentas de origen pueden asumir la función de cuentas cruzadas.
-
La sesión de rol asumida contiene la identidad de la persona que llama y que inició la
CreateApplicationsolicitud.UpdateApplication -
La función multicuenta solo se asume durante la asociación con la llamada.
es:DescribeDomainNo se utiliza para ninguna operación posterior del plano de datos.
Para acceder al plano de datos:
-
Los usuarios de IAM firman las solicitudes con sus propias credenciales de IAM. La política de acceso del dominio de destino autoriza estas solicitudes directamente.
-
Los usuarios del Centro de Identidad de IAM firman sus solicitudes con el rol de aplicación del Centro de Identidad de IAM (
iamRoleForIdentityCenterApplicationArn) en la cuenta de origen. La política de acceso del dominio de destino y las asignaciones de funciones de back-end autorizan estas solicitudes.
Requisitos previos
Antes de configurar el acceso a los datos entre cuentas, asegúrate de disponer de lo siguiente:
-
AWS CLI instalado y configurado
-
Acceso tanto al origen como al destino Cuenta de AWS
-
OpenSearch dominios con un control de acceso detallado habilitado. La asociación de fuentes de datos entre cuentas no se admite en dominios sin un control de acceso detallado.
-
Para los flujos del IAM Identity Center: una instancia de organización AWS IAM Identity Center
Escenarios
Elija el escenario que coincida con su método de autenticación y configuración de dominio:
Escenario 1: un usuario de IAM accede a un dominio público
Paso 1: Crear el rol de IAM multicuenta (cuenta de destino)
Cree un rol de IAM en la cuenta de destino que permita a la cuenta de origen asumirlo para la validación del dominio.
Para crear el rol multicuenta
-
Cree una política de confianza que permita a la cuenta de origen asumir el rol:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
Cree el rol:
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
Crea una política de permisos con solo la siguiente
es:DescribeDomainacción:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
Asocie la política de permisos al rol:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
Paso 2: Crea el OpenSearch dominio (cuenta de destino)
Cree un OpenSearch dominio en la cuenta de destino con un control de acceso detallado y un cifrado 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
Esta política de acceso limita el acceso al plano de datos a los principales de IAM desde la cuenta de origen. Para un acceso más restrictivo, sustituya el director raíz de la cuenta por un usuario o rol de IAM específico. ARNs El control de acceso detallado proporciona una capa de autorización adicional para controlar el acceso a los índices y documentos.
Espere a que el estado del dominio cambie antes de continuar. Active
Paso 3: Crear la aplicación de OpenSearch interfaz de usuario (cuenta de origen)
Cree la aplicación en la cuenta de origen con la fuente de datos multicuenta:
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":"[\"*\"]"}]'
Paso 4: Verificar y acceder
Recupere los detalles de la aplicación para obtener la URL del punto final:
aws opensearch get-application \ --regionregion\ --idapplication-id
-
Navegue hasta la URL del punto final de la aplicación desde la respuesta.
-
Inicie sesión con las credenciales de IAM.
-
El usuario de IAM firma las solicitudes del plano de datos con sus propias credenciales.
-
La política de acceso al dominio de destino controla los datos a los que puede acceder el usuario.
Escenario 2: un usuario del IAM Identity Center accede a un dominio público
Paso 1: Crear el rol de IAM multicuenta (cuenta de destino)
Cree un rol de IAM en la cuenta de destino que permita a la cuenta de origen asumirlo para la validación del dominio.
Para crear el rol multicuenta
-
Cree una política de confianza que permita a la cuenta de origen asumir el rol:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
Cree el rol:
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
Crea una política de permisos con solo la siguiente
es:DescribeDomainacción:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
Asocie la política de permisos al rol:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
Paso 2: Crea el OpenSearch dominio (cuenta de destino)
Crea un OpenSearch dominio en la cuenta de destino. Utilice el mismo comando quePaso 2: Crea el OpenSearch dominio (cuenta de destino), pero actualice la política de acceso para permitir el rol de aplicación del Centro de Identidad de IAM desde la cuenta de origen:
{ "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/*" }] }
Espere a que el estado del dominio cambie Active antes de continuar.
Paso 3: Cree la función de IAM para la aplicación IAM Identity Center (cuenta de origen)
Cree una función de IAM en la cuenta de origen que la OpenSearch interfaz de usuario utiliza para acceder al plano de datos de los usuarios del IAM Identity Center.
Para crear el rol de aplicación del Centro de Identidad de IAM
-
Cree una política de confianza:
{ "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" } } } ] } -
Cree una política de permisos:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] } -
Cree el rol y adjunte las 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
Paso 4: Cree la aplicación de OpenSearch interfaz de usuario con IAM Identity Center (cuenta de origen)
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":"[\"*\"]"}]'
Paso 5: Crear y asignar usuarios y grupos del Centro de Identidad de IAM
Cree un usuario del Centro de Identidad de IAM
Ejecute el comando siguiente. Sustituya placeholder
values por su propia información.
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
Cree un grupo del Centro de identidades de IAM y añada el usuario
Ejecute los siguientes 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
Asigne el usuario o el grupo a la aplicación
Use el siguiente 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
Configure la asignación de roles de backend en el dominio de destino
Asigne el grupo del centro de identidad de IAM a un rol OpenSearch de seguridad en el dominio 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": [] }'
Paso 6: Verificar y acceder
aws opensearch get-application \ --regionregion\ --idapplication-id
-
Navegue hasta la URL del punto final de la aplicación.
-
Inicie sesión con las credenciales de usuario del IAM Identity Center.
-
Las solicitudes de datos de los usuarios del IAM Identity Center se firman con el rol de aplicación del Centro de Identidad de IAM, no con el rol multicuenta.
-
Las asignaciones de funciones de backend en el dominio controlan los permisos de acceso a los datos.
Escenario 3: usuario de IAM que accede a un dominio de VPC
Paso 1: Crear el rol de IAM multicuenta (cuenta de destino)
Cree un rol de IAM en la cuenta de destino que permita a la cuenta de origen asumirlo para la validación del dominio.
Para crear el rol multicuenta
-
Cree una política de confianza que permita a la cuenta de origen asumir el rol:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
Cree el rol:
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
Crea una política de permisos con solo la siguiente
es:DescribeDomainacción:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
Asocie la política de permisos al rol:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
Paso 2: Configurar la VPC (cuenta de destino)
Omita este paso si ya existe una VPC en la cuenta 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
Más información sobre la creación de dominios de VPC.
Paso 3: Crear el dominio de VPC (cuenta 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
Esta política de acceso abarca el acceso al plano de datos a los principales de IAM desde la cuenta de origen. Para un acceso más restrictivo, sustituya el director raíz de la cuenta por un usuario o rol de IAM específico. ARNs El control de acceso detallado proporciona una capa de autorización adicional para controlar el acceso a los índices y documentos.
Espere a que el estado del dominio cambie antes de continuar. Active
Paso 4: Autorizar el punto final de la VPC para el principal del servicio de OpenSearch interfaz de usuario (cuenta de destino)
importante
Este es un paso fundamental que es exclusivo de los dominios de VPC. El servicio de OpenSearch interfaz de usuario debe estar autorizado explícitamente para acceder al punto final de la 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
Respuesta esperada:
{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }
Paso 5: Crear la aplicación de OpenSearch interfaz de usuario (cuenta de origen)
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":"[\"*\"]"}]'
Paso 6: Verificar y acceder
Recupere los detalles de la aplicación para obtener la URL del punto final:
aws opensearch get-application \ --regionregion\ --idapplication-id
-
Navegue hasta la URL del punto final de la aplicación desde la respuesta.
-
Inicie sesión con las credenciales de IAM.
-
El usuario de IAM firma las solicitudes del plano de datos con sus propias credenciales.
-
La política de acceso al dominio de destino controla los datos a los que puede acceder el usuario.
Escenario 4: Un usuario del IAM Identity Center accede a un dominio de VPC
Paso 1: Crear el rol de IAM multicuenta (cuenta de destino)
Cree un rol de IAM en la cuenta de destino que permita a la cuenta de origen asumirlo para la validación del dominio.
Para crear el rol multicuenta
-
Cree una política de confianza que permita a la cuenta de origen asumir el rol:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account-id:root" }, "Action": "sts:AssumeRole" }] } -
Cree el rol:
aws iam create-role \ --role-nameOpenSearchUIAccessRole\ --assume-role-policy-document file://trust-policy.json -
Crea una política de permisos con solo la siguiente
es:DescribeDomainacción:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] } -
Asocie la política de permisos al rol:
aws iam put-role-policy \ --role-nameOpenSearchUIAccessRole\ --policy-nameValidationOnly\ --policy-document file://permissions-policy.json
Paso 2: Configurar la VPC (cuenta de destino)
Omita este paso si ya existe una VPC en la cuenta 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
Más información sobre la creación de dominios de VPC.
Paso 3: Crear el dominio de VPC (cuenta de destino)
Utilice el mismo comando quePaso 3: Crear el dominio de VPC (cuenta de destino), pero actualice la política de acceso para permitir el rol de aplicación de IAM Identity Center desde la cuenta de origen:
{ "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/*" }] }
Espere a que el estado del dominio cambie Active antes de continuar.
Paso 4: Autorizar el punto final de la VPC para el principal del servicio de OpenSearch interfaz de usuario (cuenta de destino)
importante
Este es un paso fundamental que es exclusivo de los dominios de VPC. El servicio de OpenSearch interfaz de usuario debe estar autorizado explícitamente para acceder al punto final de la 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
Respuesta esperada:
{ "AuthorizedPrincipalList": [ { "PrincipalType": "AWS_SERVICE", "Principal": "application.opensearchservice.amazonaws.com" } ] }
Paso 5: Cree la función de IAM para la aplicación IAM Identity Center (cuenta de origen)
Cree una función de IAM en la cuenta de origen que la OpenSearch interfaz de usuario utiliza para acceder al plano de datos de los usuarios del IAM Identity Center.
Para crear el rol de aplicación del Centro de Identidad de IAM
-
Cree una política de confianza:
{ "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" } } } ] } -
Cree una política de permisos:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] } -
Cree el rol y adjunte las 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
Paso 6: Cree la aplicación de OpenSearch interfaz de usuario con IAM Identity Center (cuenta de origen)
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":"[\"*\"]"}]'
Paso 7: Crear y asignar usuarios y grupos del Centro de Identidad de IAM
Cree un usuario del Centro de Identidad de IAM
Ejecute el comando siguiente. Sustituya placeholder
values por su propia información.
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
Cree un grupo del Centro de identidades de IAM y añada el usuario
Ejecute los siguientes 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
Asigne el usuario o el grupo a la aplicación
Use el siguiente 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
Configure la asignación de roles de backend en el dominio de destino
Asigne el grupo del centro de identidad de IAM a un rol OpenSearch de seguridad en el dominio 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": [] }'
Paso 8: Verificar y acceder
aws opensearch get-application \ --regionregion\ --idapplication-id
-
Navegue hasta la URL del punto final de la aplicación.
-
Inicie sesión con las credenciales de usuario del IAM Identity Center.
-
Las solicitudes de datos de los usuarios del IAM Identity Center se firman con el rol de aplicación del Centro de Identidad de IAM, no con el rol multicuenta.
-
Las asignaciones de funciones de backend en el dominio controlan los permisos de acceso a los datos.
Administración de las aplicaciones de
Actualice una aplicación con fuentes de datos multicuenta
Ejecute el comando siguiente. Sustituya placeholder
values por su propia información.
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
La operación de actualización reemplaza toda la matriz de fuentes de datos. Incluya todas las fuentes de datos que desee conservar.
Enumerar aplicaciones
Use el siguiente comando:
aws opensearch list-applications \ --regionregion
Eliminación de una aplicación de
Use el siguiente comando:
aws opensearch delete-application \ --regionregion\ --idapplication-id
Revocar el acceso al punto final de la VPC
Use el siguiente comando:
aws opensearch revoke-vpc-endpoint-access \ --domain-namevpc-domain-name\ --service "application.opensearchservice.amazonaws.com" \ --regionregion
Referencia rápida
En las siguientes tablas se resumen las principales diferencias entre los tipos de dominio y los métodos de autenticación.
| Aspecto | Dominio público | Dominio de VPC |
|---|---|---|
| Autorización de puntos finales de VPC | No obligatorio | Obligatorio: debe autorizar application.opensearchservice.amazonaws.com |
| Configuración de la red | Ninguno | VPC, subred y grupo de seguridad con HTTPS (443) entrante |
| Política de acceso de IAM | Obligatorio | Obligatorio |
| Función multicuenta | Necesario para el uso de varias cuentas | Necesario para cuentas cruzadas |
| Aspecto | Usuario de IAM | Usuario de IAM Identity Center |
|---|---|---|
| Credenciales del plano de datos | Credenciales de IAM propias del usuario | Función de aplicación del IAM Identity Center |
| Control de acceso | Política de acceso al dominio | Política de acceso al dominio y asignación de funciones de back-end |
| Configuración adicional | Ninguno | Rol de aplicación de IAM Identity Center, user/group creación, asignación de aplicaciones, mapeo de roles de back-end |
| OpenSearch Configuración de aplicaciones de interfaz de usuario | No hay opciones de IAM Identity Center | --iam-identity-center-options obligatorio |
Notas importantes
-
iamRoleForDataSourceArnDebe estar en la misma cuenta que.dataSourceArn -
Solo
iamRoleForDataSourceArnes obligatorio para las fuentes de datos entre cuentas. Omita esta opción para las fuentes de datos de la misma cuenta. -
La función multicuenta solo necesita el permiso.
es:DescribeDomainNunca se usa para acceder al plano de datos. -
Para los dominios de VPC, se deben configurar tanto la política de IAM como la autorización de puntos de conexión de VPC.
-
Versiones de motor compatibles: OpenSearch 1.3 y superiores.
-
La asociación de fuentes de datos entre cuentas requiere que se habilite un control de acceso detallado en el dominio de destino.
Resolución de problemas
| Problema | Resolución |
|---|---|
| La creación de la aplicación falla y aparece el mensaje «No se puede acceder al dominio» | Compruebe que la función multicuenta tiene el es:DescribeDomain permiso y que la política de confianza permite la cuenta de origen. |
| Se produce un error en la asociación de dominios de VPC | Asegúrese de que el punto final de la VPC esté autorizado para. application.opensearchservice.amazonaws.com |
| Se ha denegado el acceso al plano de datos al usuario de IAM | Compruebe que la política de acceso al dominio de destino permita al usuario o rol principal de IAM. |
| Se ha denegado el acceso al plano de datos para el usuario del IAM Identity Center | Compruebe que la asignación de funciones de backend incluya el ID de grupo del IAM Identity Center y que la política de dominio permita la función de aplicación del IAM Identity Center. |
| Error de discordancia de cuentas | Asegúrese de que iamRoleForDataSourceArn está en la misma cuenta que el dominio. dataSourceArn |