Come posso richiedere l'autenticazione a più fattori (MFA) per gli utenti IAM che utilizzano AWS CLI?

2 minuti di lettura
0

Ho creato una policy di autenticazione a più fattori (MFA) per limitare l'accesso ai servizi AWS agli utenti di AWS Identity and Access Management (IAM). La policy funziona con la Console di gestione AWS, ma non con l'Interfaccia della linea di comando AWS (AWS CLI). Come posso usare l'MFA con AWS CLI?

Descrizione breve

Il seguente esempio di policy IAM richiede agli utenti IAM di utilizzare l'autenticazione a più fattori (MFA) per accedere a servizi AWS specifici:

{
  "Sid": "BlockMostAccessUnlessSignedInWithMFA",
  "Effect": "Deny",
  "NotAction": [
    "iam:CreateVirtualMFADevice",
    "iam:DeleteVirtualMFADevice",
    "iam:ListVirtualMFADevices",
    "iam:EnableMFADevice",
    "iam:ResyncMFADevice",
    "iam:ListAccountAliases",
    "iam:ListUsers",
    "iam:ListSSHPublicKeys",
    "iam:ListAccessKeys",
    "iam:ListServiceSpecificCredentials",
    "iam:ListMFADevices",
    "iam:GetAccountSummary",
    "sts:GetSessionToken"
  ],
  "Resource": "*",
  "Condition": {
    "Bool": {
      "aws:MultiFactorAuthPresent": "false",
      "aws:ViaAWSService": "false"
    }
  }
}

Gli utenti IAM con Console di gestione AWS possono accedere ai servizi AWS inserendo le credenziali di autenticazione a più fattori (MFA). Tuttavia, gli utenti IAM con AWS CLI possono accedere ai servizi AWS anche senza inserire le credenziali di autenticazione a più fattori (MFA).

Risoluzione

Nota: se si verificano errori durante l'esecuzione dei comandi dell’interfaccia della linea di comando AWS, assicurati di utilizzare la versione più recente di AWS CLI.

La chiave MultiFactorAuthPresent non è presente nelle richieste effettuate utilizzando credenziali a lungo termine. Con l'operatore di condizione booleano, se la chiave non è presente nella policy, i valori non corrispondono. La chiave MultiFactorAuthPresent non nega l'accesso alle richieste effettuate utilizzando credenziali a lungo termine.

Gli utenti IAM che utilizzano la Console di gestione AWS generano credenziali temporanee che consentono l'accesso solo se viene utilizzata l'autenticazione a più fattori.

La condizione booleana consente di limitare l'accesso con un valore della chiave impostato su true o false. È possibile aggiungere l'operatore di condizione IfExists per verificare se la chiave MultiFactorAuthPresent è presente nella richiesta. Se la chiave MultiFactorAuthPresent non è presente, IfExists valuta l'elemento di condizione come true in modo simile al seguente:

"Effect" : "Deny",
"Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false", "aws:ViaAWSService":"false"} }

Nota: agli utenti IAM che utilizzano l'AWS CLI con credenziali a lungo termine viene negato l'accesso e devono utilizzare l'autenticazione a più fattori (MFA). Pertanto, assicurati di utilizzare un token MFA per autenticare la sessione CLI.


Informazioni correlate

Utilizzo dell’autenticazione a più fattori

AssumeRole

Abilitazione e gestione di dispositivi MFA virtuali (AWS CLI o API AWS)

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa