La CLI può gestire molto questo per voi se si utilizzano i ruoli. Descritto qui: http://docs.aws.amazon.com/cli/latest/userguide/cli-roles.html
Nelle mie credenziali di file che ho:
[my_iam_user]
aws_access_key_id = AKIABLAHBLAHBLAHBLAH
aws_secret_access_key = <blah>
region = us-east-1
[my_admin_role]
role_arn = arn:aws:iam::123456789123:role/my_admin_role
source_profile = my_iam_user
mfa_serial = arn:aws:iam::123456789123:mfa/my_iam_user
region = us-east-1
Nota la voce mfa_serial
. Puoi ottenere questo valore dai tuoi dettagli utente nella console di AWS IAM. Questa voce indica alla CLI che è richiesto MFA per quel ruolo.
Quando chiamo aws s3 ls --profile my_admin_role
dice Enter MFA code:
, dopo aver incollato il codice restituisce l'elenco.
Nota: non ho trovato un modo per ottenere la CLI per chiedere MFA quando si chiama un profilo utente (--profile my_iam_user
) solo chiamando un profilo di ruolo attiva la richiesta MFA.
Il token MAE viene poi portato in avanti e il profilo utente può essere utilizzato così:
aws sts get-caller-identity --profile my_iam_user
# {
# "Account": "123456789123",
# "UserId": "AIDABLAHBLAHBLAHBLAH",
# "Arn": "arn:aws:iam::123456789123:user/my_iam_user"
# }
aws sts get-caller-identity --profile my_admin_role
# {
# "Account": "123456789123",
# "UserId": "AROABLAHBLAHBLAHBLAH:AWS-CLI-session-1234567890",
# "Arn": "arn:aws:sts::123456789123:assumed-role/my_admin_role/AWS-CLI-session-1234567890"
# }
fonte
2017-01-31 18:36:39