AWS CLI via MFA

A seguir está o guia para a configuração do AWS MFA e a instalação e configuração do AWS CLI.

Infelizmente, eu gastei meio dia de trabalho nesse procedimento obrigatório. Para que outros usuários do AWS não tão confiantes 😉 como eu mesmo, não percam tempo precioso com o básico, decidi elaborar este guia.

Mesmo para uma conta sandbox, a configuração MFA é, na maioria das vezes, um requisito obrigatório. Assim é aqui.

Configuração do MFA

  1. Instale aplicativo móvel compatível
  2. Acesse console do AWS
  3. Meus 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

Instalação do AWS CLI

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

Configuração do perfil nomeado

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

  1. Meus Credenciais de Segurança -> Criar chave de acesso
    AWS CLI via MFA
  2. Copie a chave para a área de transferência. Ela será necessária na próxima etapa
  3. $ aws configure --profile

AWS CLI via MFA

  1. Copie o ARN do dispositivo virtual
    AWS CLI via MFA
  2. aws sts get-session-token --profile --serial-number --token-code
    O código de uso único deve ser obtido do aplicativo móvel configurado anteriormente.
  3. O comando retornará um JSON, cujos campos individuais devem ser inseridos nas variáveis de ambiente AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN

Decidi automatizar através do ~/.bash_profile
Para analisar o 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 '

Uso:

$ aws-login-dev

Espero que este guia ajude você a evitar longas buscas na documentação oficial 😉

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster