View a markdown version of this page

Acceso a datos multicuenta a dominios OpenSearch - OpenSearch Servicio Amazon

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 llamares: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 CreateApplication solicitud. UpdateApplication

  • La función multicuenta solo se asume durante la asociación con la llamada. es:DescribeDomain No 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
  1. 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" }] }
  2. Cree el rol:

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. Crea una política de permisos con solo la siguiente es:DescribeDomain acción:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. Asocie la política de permisos al rol:

    aws iam put-role-policy \ --role-name OpenSearchUIAccessRole \ --policy-name ValidationOnly \ --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-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::source-account-id:root"},"Action":"es:ESHttp*","Resource":"arn:aws:es:region:target-account-id:domain/domain-name/*"}]}' \ --region region
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 \ --region region \ --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 \ --region region \ --id application-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
  1. 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" }] }
  2. Cree el rol:

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. Crea una política de permisos con solo la siguiente es:DescribeDomain acción:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. Asocie la política de permisos al rol:

    aws iam put-role-policy \ --role-name OpenSearchUIAccessRole \ --policy-name ValidationOnly \ --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
  1. 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" } } } ] }
  2. Cree una política de permisos:

    { "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] }
  3. Cree el rol y adjunte las políticas:

    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

Paso 4: Cree la aplicación de OpenSearch interfaz de usuario con IAM Identity Center (cuenta de origen)

aws opensearch create-application \ --region region \ --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-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
Cree un grupo del Centro de identidades de IAM y añada el usuario

Ejecute los siguientes comandos :

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
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-id user-id-or-group-id \ --principal-type USER
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" \ -u admin:master-password \ -H 'Content-Type: application/json' \ -d '{ "backend_roles": ["group-id"], "hosts": [], "users": [] }'

Paso 6: Verificar y acceder

aws opensearch get-application \ --region region \ --id application-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
  1. 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" }] }
  2. Cree el rol:

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. Crea una política de permisos con solo la siguiente es:DescribeDomain acción:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. Asocie la política de permisos al rol:

    aws iam put-role-policy \ --role-name OpenSearchUIAccessRole \ --policy-name ValidationOnly \ --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 \ --region region # Create subnet aws ec2 create-subnet \ --vpc-id vpc-id \ --cidr-block 10.0.1.0/24 \ --availability-zone regiona \ --region 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 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 region

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-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::source-account-id:root"},"Action":"es:ESHttp*","Resource":"arn:aws:es:region:target-account-id:domain/vpc-domain-name/*"}]}' \ --region region
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-name vpc-domain-name \ --service "application.opensearchservice.amazonaws.com" \ --region region # Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-name vpc-domain-name \ --region region

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 \ --region region \ --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 \ --region region \ --id application-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
  1. 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" }] }
  2. Cree el rol:

    aws iam create-role \ --role-name OpenSearchUIAccessRole \ --assume-role-policy-document file://trust-policy.json
  3. Crea una política de permisos con solo la siguiente es:DescribeDomain acción:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:region:target-account-id:domain/*" }] }
  4. Asocie la política de permisos al rol:

    aws iam put-role-policy \ --role-name OpenSearchUIAccessRole \ --policy-name ValidationOnly \ --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 \ --region region # Create subnet aws ec2 create-subnet \ --vpc-id vpc-id \ --cidr-block 10.0.1.0/24 \ --availability-zone regiona \ --region 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 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 region

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-name vpc-domain-name \ --service "application.opensearchservice.amazonaws.com" \ --region region # Verify authorization aws opensearch list-vpc-endpoint-access \ --domain-name vpc-domain-name \ --region region

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
  1. 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" } } } ] }
  2. Cree una política de permisos:

    { "Version": "2012-10-17", "Statement": [{ "Sid": "OpenSearchDomain", "Effect": "Allow", "Action": ["es:ESHttp*"], "Resource": "*" }] }
  3. Cree el rol y adjunte las políticas:

    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

Paso 6: Cree la aplicación de OpenSearch interfaz de usuario con IAM Identity Center (cuenta de origen)

aws opensearch create-application \ --region region \ --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-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
Cree un grupo del Centro de identidades de IAM y añada el usuario

Ejecute los siguientes comandos :

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
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-id user-id-or-group-id \ --principal-type USER
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" \ -u admin:master-password \ -H 'Content-Type: application/json' \ -d '{ "backend_roles": ["group-id"], "hosts": [], "users": [] }'

Paso 8: Verificar y acceder

aws opensearch get-application \ --region region \ --id application-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 \ --region region \ --id application-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 \ --region region
Eliminación de una aplicación de

Use el siguiente comando:

aws opensearch delete-application \ --region region \ --id application-id
Revocar el acceso al punto final de la VPC

Use el siguiente comando:

aws opensearch revoke-vpc-endpoint-access \ --domain-name vpc-domain-name \ --service "application.opensearchservice.amazonaws.com" \ --region region

Referencia rápida

En las siguientes tablas se resumen las principales diferencias entre los tipos de dominio y los métodos de autenticación.

Dominio público comparado con el dominio de VPC
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
Un usuario de IAM comparado con un usuario de IAM Identity Center
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 iamRoleForDataSourceArn es 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:DescribeDomain Nunca 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