AWS CLI a través de MFA

A continuación se presenta una guía para configurar AWS MFA y la posterior instalación y configuración de AWS CLI.

Desafortunadamente, me llevó media jornada laboral completar este procedimiento obligatorio. Para que otros usuarios poco seguros de AWS 😉, como yo mismo, no pierdan tiempo valioso en cosas triviales, decidí elaborar esta guía.

Incluso para una cuenta de sandbox, la configuración MFA es, por lo general, un requisito obligatorio. Así es en nuestro caso.

Configuración de MFA

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

Instalación de AWS CLI

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

Configuración de un perfil nombrado

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

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

AWS CLI a través de MFA

  1. Copia el ARN del dispositivo virtual
    AWS CLI a través de MFA
  2. aws sts get-session-token --profile --serial-number --token-code
    El código de un solo uso debe tomarse de la aplicación móvil que se configuró anteriormente.
  3. El comando devolverá JSON, cuyos campos individuales deben asignarse a las variables de entorno AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN.

Decidí automatizarlo 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 '

Uso:

$ aws-login-dev

Espero que esta guía te ayude a evitar perderte en la documentación oficial 😉.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster