CLI de AWS a través de MFA

A continuación encontrará instrucciones para configurar AWS MFA y luego instalar y configurar AWS CLI.

Lamentablemente, este trámite obligatorio me llevó la mitad de mi jornada laboral. Para que otros usuarios inseguros de AWS 😉, como yo, no pierdan un tiempo precioso en trivialidades, decidí compilar instrucciones.

Incluso para la configuración de cuenta sandbox MFA Este suele ser un requisito obligatorio. Así es con nosotros.

Configurar MFA

  1. Establecer aplicación móvil compatible
  2. Ir Consola de AWS
  3. Mis credenciales de seguridad -> Asignar dispositivo MFA
    CLI de AWS a través de MFA
  4. Dispositivo MFA virtual
    CLI de AWS a través de MFA
  5. Sigue las instrucciones en la pantalla
    CLI de AWS a través de MFA
    CLI de AWS a través de MFA
  6. El dispositivo virtual está listo
    CLI de AWS a través de MFA

Instalación de AWS CLI

https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html

Configurar un perfil con nombre

https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html

  1. Mis credenciales de seguridad -> Crear clave de acceso
    CLI de AWS a través de MFA
  2. Copie la clave a su portapapeles. Lo necesitarás en el siguiente paso.
  3. $ aws configure --profile <your profile name>

CLI de AWS a través de MFA

  1. Copie el ARN del dispositivo virtual
    CLI de AWS a través de MFA
  2. aws sts get-session-token --profile <имя профиля> --serial-number <ARN виртуального устройства> --token-code <одноразовый пароль>
    La contraseña de un solo uso debe obtenerse de la aplicación móvil configurada anteriormente.
  3. El comando generará JSON, cuyos campos individuales deben sustituirse en las variables de entorno correspondientes AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN

Decidí automatizar a través de ~/.bash_profile
Para analizar JSON, este script requiere jq.

#!/usr/bin/env bash

aws_login() {
    session=$(aws sts get-session-token "$@")
    echo "${session}"
    AWS_ACCESS_KEY_ID=$(echo "${session}" | jq -r '.Credentials.AccessKeyId')
    export AWS_ACCESS_KEY_ID
    AWS_SECRET_ACCESS_KEY=$(echo "${session}" | jq -r '.Credentials.SecretAccessKey')
    export AWS_SECRET_ACCESS_KEY
    AWS_SESSION_TOKEN=$(echo "${session}" | jq -r '.Credentials.SessionToken')
    export AWS_SESSION_TOKEN
}

alias aws-login-dev='aws_login --profile <имя dev профиля> --serial-number <ARN виртуального устройства> --token-code '
alias aws-login-prod='aws_login --profile <имя prod профиля> --serial-number <ARN виртуального устройства> --token-code '

Использование:

$ aws-login-dev <одноразовый пароль>

Espero que esta instrucción le ayude a evitar largas deambulaciones por la documentación oficial 😉

Fuente: habr.com

Añadir un comentario