Manage multiple accounts in AWS


Buen dia,

Hoy les quiero compartir como poder acceder a multiples cuentas de amazon desde 1 sola creando un swicht_role y a la vez otorgar permisos especificos a un grupo de usuarios.

La idea de este post es poder separar tus cuentas por ambiente , este es un ejemplo de como poder tener multiples cuentas separadas por ejemplo una cuenta por cada ambiente o simplemente diferentes cuentas:

#Atencion: El link que vamos a generar el usuario lo tiene que guardar cuando se lo pasemos porque la configuracion se guarda en una cookie y si borra el historial pierde el acceso, pero se soluciona volviendo a ingresar al LINK.

Example1 – Seperando Cuentas por ambientes:

Example2 – Tener acceso a diferentes cuentas desde una sola esto nos evitara loguearnos en todas las cuentas:

 

Si tu deseo es lograr algo asi este es tu post 🙂 Manos a la obra.

 

OBJETIVO PRINCIAL : Lograr acceso para un grupo de usuarios del account ITSHELL al account ITSHELLWS.

Abrimos la cuenta ‘ITSHELLWS’ que es la que vamos a compartir:

Lo primero que vamos a realizar es crear un nuevo rol lo voy a llamar ‘developers-itshell’.

Voy a seleccionar el acceso que le voy a otorgar a la cuenta en mi caso quiero acceso limitado:

Creamos el ROL , yo en mi caso le puse una descripcion para diferenciarlo:

Ingresamos al role creado ‘developers-itshell’ y lo vamos a editar clickeando en Edit trust relationship.

#ATENCION: Vamos a copiar el ROLE ARN en un editor de texto porque lo vamos a necesitar mas adelante.

Dentro de edit trust vamos escribir el siguiento codigo cambiando el account ID por el de la cuenta que va a poder acceder a este ambiente.

#NOTA: Cuando hablo de cuentas me refiero a la cuenta principal ya que con acceso a 1 vamos a crear un grupo que comparte acceso a usuarios de esa misma root account.

Example otorgando acceso a una sola root acount.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::412865213072:root"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Example otorgando acceso a varias cuentas root account .

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::412865213072:root",
          "arn:aws:iam::623123453434:root",
          "arn:aws:iam::323123992183:root"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]

El resultado final seria algo asi y guardamos :

Ahora vamos a ingresar en la cuenta que vamos a dar acceso a nuestro grupo de desarrolladores.

Logueamos en ‘ITSHELL’:

Primero vamos a crear una nueva politica llamada ‘policy_acces_to_itshellws’ con el siguiente codigo y luego le vamos agregar una descripcion para saber q funcion cumple.

CODE Politica: policy_access_to_itshellws

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": [
                "arn:aws:iam::881653854182:role/developers-itshell"
            ]
        }
    ]
}

Luego de crear la politica vamos a crear un grupo llamado ‘developers-to-itshellws.org’ y le vamos attachar la politica creada en el paso anterior.

Ya con el grupo creado podemos deberiamos ver algo asi:

Ahora voy a crear un usuario al cual le voy a dar acceso al grupo creado anteriormente.

Ya con el usuario creado y el acceso otorgado en el grupo deberiamos tener algo asi:

Cerramos la cuenta admin de itshell y logueamos como el usuario good_developer creado anteriormente:

Ingresamos en la cuenta creada y en el ambiente ‘itshell’ no tiene acceso a nada ya que no le dimos permisos.

Ahora nos logueamos en ITSHELLWS y buscamos el rol que creamos al principio ( Si los hice volver al principio, pero no va a ser en vano porque vamos a copiar el Link.

Volvemos al navegador donde teniamos logueada la cuenta de good_developer y accedemos al Link.

Nos va a mostrar algo asi donde podemos editar el nombre,color ,etc . Pero vamos a dejarlo default y click a cambiar funcion. 

Y listo ya tendriamos acceso a la otra account root que tenia el otro ambiente con acceso limitado al permiso que seleccionamos en mi caso era ‘Ec2ReadOnlyAccess’.

Ingresamos a EC2 y podemos ver las instancias! Eso significa que funciono.

Intentamos de ingresar a s3 y Access Denied. NICE!!

Por ultimo vamos a añadir al chrome una extension para poder editar los nombres y colores de nuestros swicht_accounts.

Click en la extension instalada y editamos el Account , Display Name y el color a gusto, donde dice role no tenemos que tocar nada!

Listo ya tenemos nuestro multiaccount – con acceso limitado. (uno puede otorgar el acceso que quiera y añadir mas usuarios al grupo)

Para darle acceso a otro usuario tenemos q añadirlo al grupo y luego pasarle el link donde configuramos la funcion swicht_account.

ENJOY!!

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.