AWS: consente agli utenti IAM autenticati tramite MFA di gestire le proprie credenziali nella pagina Credenziali di sicurezza - AWS Identity and Access Management

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS: consente agli utenti IAM autenticati tramite MFA di gestire le proprie credenziali nella pagina Credenziali di sicurezza

Questo esempio mostra come è possibile creare una policy basata sull'identità che consenta agli utenti IAM autenticati tramite l'autenticazione a più fattori (MFA) di gestire le proprie credenziali nella pagina Credenziali di sicurezza. Questa pagina della AWS Management Console mostra informazioni sull'account, come l'ID account e l'ID utente canonico. Gli utenti possono anche visualizzare e modificare le password, le chiavi di accesso, i dispositivi MFA, i certificati X.509, le chiavi SSH e le credenziali Git. Questa policy di esempio include le autorizzazioni necessarie per visualizzare e modificare tutte le informazioni sulla pagina. Richiede inoltre che l'utente si configuri e si autentichi tramite MFA prima di eseguire qualsiasi altra operazione in. AWS Per consentire agli utenti di gestire le proprie credenziali senza MFA, consulta AWS: consente agli utenti IAM di gestire le proprie credenziali nella pagina Credenziali di sicurezza.

Per informazioni su come gli utenti possono accedere alla pagina delle credenziali di sicurezza, consulta. Come gli utenti IAM possono cambiare le proprie password (console)

Nota
  • Questo criterio di esempio non consente agli utenti di reimpostare una password durante AWS Management Console il primo accesso. Ti consigliamo di non concedere autorizzazioni ai nuovi utenti fino a quando non hanno effettuato l'accesso. Per ulteriori informazioni, consulta Come posso creare IAM utenti in modo sicuro?. Inoltre, ciò impedisce agli utenti con una password scaduta di reimpostare la password durante l'accesso. Per consentire questa operazione, aggiungere iam:ChangePassword e iam:GetAccountPasswordPolicy all'istruzione DenyAllExceptListedIfNoMFA. Tuttavia, non ti consigliamo di farlo perché consentire agli utenti di cambiare la password senza MFA può costituire un rischio per la sicurezza.

  • Se intendi utilizzare questa policy per l'accesso programmatico, devi chiamare GetSessionToken per l'autenticazione con l'MFA. Per ulteriori informazioni, consulta APIAccesso sicuro con MFA.

Che cosa fa questa policy?

  • L'istruzione AllowViewAccountInfo consente all'utente di visualizzare le informazioni a livello di account. Queste autorizzazioni devono essere nella propria istruzione perché non supportano o non devono specificare l'ARN di una risorsa. Le autorizzazioni specificano invece "Resource" : "*". Questa istruzione include le seguenti operazioni che consentono all'utente di visualizzare informazioni specifiche:

    • GetAccountPasswordPolicy: visualizza i requisiti della password dell'account cambiando la propria password utente IAM.

    • ListVirtualMFADevices: consente di visualizzare i dettagli di un dispositivo MFA virtuale abilitato per l'utente.

  • L'istruzione AllowManageOwnPasswords consente all'utente di modificare la propria password. Questa istruzione include anche l'operazione GetUser, obbligatoria per visualizzare la maggior parte delle informazioni nella pagina My security credentials (Le mie credenziali di sicurezza).

  • L'istruzione AllowManageOwnAccessKeys consente all'utente di creare, aggiornare ed eliminare le proprie chiavi di accesso. L'utente può anche ottenere informazioni su quando è stata utilizzata l'ultima volta la chiave di accesso specificata.

  • L'istruzione AllowManageOwnSigningCertificates consente all'utente di caricare, aggiornare ed eliminare i propri certificati di firma.

  • L'AllowManageOwnSSHPublicKeysistruzione consente all'utente di caricare, aggiornare ed eliminare le proprie chiavi pubbliche SSH per CodeCommit.

  • L'AllowManageOwnGitCredentialsistruzione consente all'utente di creare, aggiornare ed eliminare le proprie credenziali Git per CodeCommit.

  • L'istruzione AllowManageOwnVirtualMFADevice consente all'utente di creare il proprio dispositivo virtuale MFA. L'ARN della risorsa in questa istruzione consente all'utente di creare un dispositivo MFA con qualsiasi nome, ma le altre istruzioni nella policy consentono all'utente soltanto di collegare il dispositivo all'utente correntemente registrato.

  • L'istruzione AllowManageOwnUserMFA consente all'utente di visualizzare o gestire il dispositivo MFA virtuale, U2F o hardware per il proprio utente. L'ARN della risorsa in questa istruzione consente di accedere solo all'utente IAM dell'utente stesso. Gli utenti non possono visualizzare o gestire il dispositivo MFA per altri utenti.

  • L'DenyAllExceptListedIfNoMFAistruzione nega l'accesso a tutte le azioni in tutti i AWS servizi, ad eccezione di alcune azioni elencate, ma solo se l'utente non ha effettuato l'accesso con MFA. L'istruzione utilizza una combinazione di "Deny" e "NotAction" per negare esplicitamente l'accesso a tutte le operazioni che non sono nell'elenco. Gli elementi elencati non sono negati o consentiti da questa istruzione. Tuttavia, le azioni sono consentite da altre istruzioni della policy. Per ulteriori informazioni sulla logica di questa istruzione, vedere NotAction with Deny. Se l'utente ha eseguito l'accesso con l'autenticazione MFA, il test Condition dà esito negativo e questa istruzione non produce effetti. In questo caso, altre policy o dichiarazioni per l'utente determinano le autorizzazioni dell'utente.

    Questa istruzione garantisce che quando l'utente non ha effettuato l'accesso con MFA può eseguire solo le operazioni elencate. Inoltre, possono eseguire le operazioni elencate, solo se un'altra istruzione o policy consente l'accesso a tali operazioni. Questo non consente a un utente di creare una password all'accesso, perché l'operazione iam:ChangePassword non deve essere consentita senza l'autorizzazione MFA.

    La versione ...IfExists dell'operatore Bool garantisce che se la chiave leggi: MultiFactorAuthPresent manca, la condizione restituisce true. Questo significa che a un utente che accede a un'API con le credenziali di lungo termine, ad esempio con una chiave di accesso, viene negato l'accesso alle operazioni API non IAM.

Questa policy non consente agli utenti di visualizzare la pagina Utenti nella console IAM o utilizzare questa pagina per accedere alle proprie informazioni utente. Per consentire questa operazione, aggiungere l'operazione iam:ListUsers all'istruzione AllowViewAccountInfo e all'istruzione DenyAllExceptListedIfNoMFA. Inoltre, non consente agli utenti di cambiare la password sulla proprio pagina utente. Per consentire questa operazione, aggiungi le operazioni iam:GetLoginProfile e iam:UpdateLoginProfile all'istruzione AllowManageOwnPasswords. Inoltre, per consente a un utente di cambiare la password dalla propria pagina utente senza l'accesso tramite MFA, aggiungere l'operazione iam:UpdateLoginProfile all'istruzione DenyAllExceptListedIfNoMFA.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowViewAccountInfo", "Effect": "Allow", "Action": [ "iam:GetAccountPasswordPolicy", "iam:ListVirtualMFADevices" ], "Resource": "*" }, { "Sid": "AllowManageOwnPasswords", "Effect": "Allow", "Action": [ "iam:ChangePassword", "iam:GetUser" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnAccessKeys", "Effect": "Allow", "Action": [ "iam:CreateAccessKey", "iam:DeleteAccessKey", "iam:ListAccessKeys", "iam:UpdateAccessKey", "iam:GetAccessKeyLastUsed" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnSigningCertificates", "Effect": "Allow", "Action": [ "iam:DeleteSigningCertificate", "iam:ListSigningCertificates", "iam:UpdateSigningCertificate", "iam:UploadSigningCertificate" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnSSHPublicKeys", "Effect": "Allow", "Action": [ "iam:DeleteSSHPublicKey", "iam:GetSSHPublicKey", "iam:ListSSHPublicKeys", "iam:UpdateSSHPublicKey", "iam:UploadSSHPublicKey" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnGitCredentials", "Effect": "Allow", "Action": [ "iam:CreateServiceSpecificCredential", "iam:DeleteServiceSpecificCredential", "iam:ListServiceSpecificCredentials", "iam:ResetServiceSpecificCredential", "iam:UpdateServiceSpecificCredential" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnVirtualMFADevice", "Effect": "Allow", "Action": [ "iam:CreateVirtualMFADevice" ], "Resource": "arn:aws:iam::*:mfa/*" }, { "Sid": "AllowManageOwnUserMFA", "Effect": "Allow", "Action": [ "iam:DeactivateMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices", "iam:ResyncMFADevice" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "DenyAllExceptListedIfNoMFA", "Effect": "Deny", "NotAction": [ "iam:CreateVirtualMFADevice", "iam:EnableMFADevice", "iam:GetUser", "iam:GetMFADevice", "iam:ListMFADevices", "iam:ListVirtualMFADevices", "iam:ResyncMFADevice", "sts:GetSessionToken" ], "Resource": "*", "Condition": { "BoolIfExists": { "aws:MultiFactorAuthPresent": "false" } } } ] }