AWS CLI via MFA

Följande är instruktioner för att ställa in AWS MFA och efterföljande installation och konfiguration av AWS CLI.

Tyvärr tog den här obligatoriska processen hälften av min arbetsdag. För att andra osäkra AWS-användare 😉 som jag själv inte ska slösa bort värdefull tid på det grundläggande, bestämde jag mig för att skriva en instruktion.

Även för sandbox-kontot är inställningen MFA — det är vanligtvis ett obligatoriskt krav. För oss är det så.

Inställning av MFA

  1. Installera kompatibel mobilapp
  2. Gå till AWS-konsolen
  3. My Security Credentials -> Tilldela MFA-enhet
    AWS CLI via MFA
  4. Virtuell MFA-enhet
    AWS CLI via MFA
  5. Följ instruktionerna på skärmen
    AWS CLI via MFA
    AWS CLI via MFA
  6. Den virtuella enheten är klar
    AWS CLI via MFA

Installation av AWS CLI

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

Konfigurering av namngiven profil

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

  1. My Security Credentials -> Skapa åtkomstnyckel
    AWS CLI via MFA
  2. Kopiera nyckeln till urklipp. Den kommer att behövas i nästa steg
  3. $ aws configure --profile

AWS CLI via MFA

  1. Kopiera ARN för den virtuella enheten
    AWS CLI via MFA
  2. aws sts get-session-token --profile --serial-number --token-code
    Engångskoden ska tas från den mobilapp som konfigurerades tidigare.
  3. Kommandot kommer att ge JSON, vars separata fält måste sättas in i motsvarande miljövariabler AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN

Jag bestämde mig för att automatisera via ˜/.bash_profile
För att analysera JSON kräver detta skript 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 '

Användning:

$ aws-login-dev

Jag hoppas att denna instruktion hjälper dig att undvika långa svängar i den officiella dokumentationen 😉

Källa: habr.com

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster