¿Cómo puedo delegar el acceso a Amazon OpenSearch Service en las cuentas de AWS mediante roles de IAM?

Actualización más reciente: 05-08-2021

Deseo compartir los recursos de Amazon OpenSearch Service (sucesor de Amazon Elasticsearch Service) de mi cuenta con usuarios de otra cuenta. ¿Cómo se puede hacer?

Descripción breve

La forma más sencilla de habilitar el acceso entre cuentas para su dominio de OpenSearch Service es configurar el control entre cuentas mediante un rol de AWS Identity and Access Management (IAM). Al agregar un rol de IAM en la cuenta de destino, puede permitir que los usuarios de cuentas de confianza accedan al dominio del servicio OpenSearch en la cuenta de destino. De este modo, los distintos usuarios de su organización pueden acceder a la estación de registro central y administrarla mediante el cambio de roles de IAM en la consola de AWS.

El siguiente es el proceso para que los usuarios accedan a los recursos de su dominio mediante un rol de IAM:

  1. Cree un rol en la cuenta A al que se le permita acceder al dominio de destino.
  2. Cree un usuario en la cuenta B al que se le permita asumir un rol en la cuenta A.
  3. Conceda acceso a los usuarios de la cuenta B para que utilicen el rol de acceso al dominio de destino mediante el cambio de roles.

Nota: La cuenta A es la cuenta en la que reside el dominio de destino. La cuenta B se refiere a la cuenta desde la que los usuarios acceden a la estación central de registro.

Resolución

Nota: Si recibe errores al ejecutar comandos de AWS Command Line Interface (AWS CLI), asegúrese de que utiliza la versión más reciente de AWS CLI.

Crear un rol y otorgar permisos para administrar el dominio

En este ejemplo, creamos un rol llamado CrossAccount-test y concedemos permisos completos para administrar la prueba de dominio.

{
    "Version": "2012-10-17",
    "Statement": [
       
        {
            "Effect": "Allow",
            "Action": [
               
        "es:*"
            ],
            "Resource": “arn:aws:es:<Region>:<Account A-ID>:domain/test/*"
       
        }
    ]
}

Editar la relación de confianza del rol

A continuación, edite la relación de confianza del rol CrossAccount-test.

Nota: Cambie el número de cuenta y el nombre de usuario según corresponda.

{
 
        "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service":
        "es.amazonaws.com",
        "AWS": [
          "arn:aws:iam::<Account B-ID>:root",

         
        "arn:aws:iam::<Account B-ID>:user/<User Name>"
        ]
      },
      "Action": "sts:AssumeRole"
   
        }
  ]
{
 
        "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service":
        "es.amazonaws.com",
        "AWS": [
          "arn:aws:iam::<Account B-ID>:root",

         
        "arn:aws:iam::<Account B-ID>:user/<User Name>"
        ]
      },
      "Action": "sts:AssumeRole"
   
        }
  ]
}

En los pasos 1 y 2, define al usuario de la cuenta B como entidad de confianza y concede permisos completos para permitir que los usuarios de confianza accedan a su dominio en la cuenta A.

Conceder acceso a los usuarios de la cuenta B

En la cuenta B, cree un usuario o grupo con los siguientes permisos:

{
    "Version": "2012-10-17",
    "Statement": {
       
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::<Account A-ID>:role/<CrossAccount-test>"
   
        }
}

Al agregar esta instrucción de política, permite la acción AssumeRole en el rol CrossAccount-test de la cuenta A.

Nota: Asegúrese de cambiar el ACCOUNT A-ID (ID DE LA CUENTA A) del elemento Recurso por el ID de cuenta de AWS de la cuenta A.

Edición de la política de acceso de OpenSearch Service para permitir que el rol acceda al dominio

Hasta ahora, confía en la cuenta B para que asuma el rol en la cuenta A. A continuación, permita que este rol acceda al dominio.

Edite la política de acceso de OpenSearch Service e ingrese lo siguiente:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
     
        "Principal": {
        "AWS": [
          "arn:aws:iam::<Account A-ID>:role/<CrossAccount-test>"
       
        ]
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:<region>:<Account A-ID>:domain/<Domain Name>/*"
   
        }
  ]
}

Pruebe el acceso mediante el cambio de roles

Ahora que ha habilitado la compatibilidad entre cuentas, cambie los roles para probar el acceso:

  1. Copie el ARN de CrossAccount-test en el portapapeles.
  2. Inicie sesión en la cuenta B mediante la consola de AWS.
  3. En la pestaña Usuario, seleccione Cambiar rol en la lista desplegable.
  4. En la página Cambiar rol, ingrese el ID de cuenta de la cuenta A y el nombre del rol. En este ejemplo, el nombre del rol es CrossAccount-test.
  5. Elija Cambiar rol.

Nota: Si la cuenta B necesita funcionar en el entorno de la cuenta A en la línea de comandos, puede cambiar de rol mediante la AWS CLI. Para obtener más información, consulte Cambiar roles (AWS CLI).

Los permisos de usuario cambian inmediatamente a los permitidos por el rol que creó en la cuenta A. Al configurar el acceso entre cuentas de esta forma, los usuarios no tendrán que crear usuarios de IAM individuales en cuentas distintas. Tampoco debe cerrar sesión en una cuenta e iniciar sesión en otra para acceder a un recurso.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?