AWS CLI via MFA

A seguir, serão apresentadas instruções para configurar o AWS MFA e, em seguida, instalar e configurar o AWS CLI.

Infelizmente, esse procedimento obrigatório me ocupou metade do meu dia de trabalho. Para que outros usuários inseguros da AWS 😉, como eu, não percam um tempo precioso com trivialidades, resolvi compilar instruções.

Mesmo para configuração de conta sandbox MFA Geralmente este é um requisito obrigatório. É assim que acontece conosco.

Configurando MFA

  1. Conjunto aplicativo móvel compatível
  2. Vamos para Console AWS
  3. Minhas credenciais de segurança -> Atribuir dispositivo MFA
    AWS CLI via MFA
  4. Dispositivo MFA virtual
    AWS CLI via MFA
  5. Siga as instruções na tela
    AWS CLI via MFA
    AWS CLI via MFA
  6. O dispositivo virtual está pronto
    AWS CLI via MFA

Instalando AWS CLI

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

Configurando um perfil nomeado

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

  1. Minhas credenciais de segurança -> Criar chave de acesso
    AWS CLI via MFA
  2. Copie a chave para sua área de transferência. Você precisará dele na próxima etapa
  3. $ aws configure --profile <your profile name>

AWS CLI via MFA

  1. Copie o ARN do dispositivo virtual
    AWS CLI via MFA
  2. aws sts get-session-token --profile <имя профиля> --serial-number <ARN виртуального устройства> --token-code <одноразовый пароль>
    A senha de uso único deve ser obtida do aplicativo móvel configurado anteriormente.
  3. O comando produzirá JSON, cujos campos individuais devem ser substituídos nas variáveis ​​de ambiente correspondentes AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN

Eu decidi automatizar através ~/.bash_profile
Para analisar JSON, este script requer 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 instrução ajude você a evitar longas divagações pela documentação oficial 😉

Fonte: habr.com

Adicionar um comentário