Come posso richiedere agli utenti di altri account AWS di utilizzare l'autenticazione a più fattori per accedere ai miei bucket Amazon S3?

3 minuti di lettura
0

Desidero richiedere ad altri utenti di utilizzare un dispositivo di autenticazione a più fattori (MFA) per accedere ai miei bucket Amazon Simple Storage Service (Amazon S3). Come posso farlo?

Risoluzione

Aggiungi delle condizioni relative alla MFA alla tua policy dei bucket in modo che gli utenti di altri account AWS eseguano l’autenticazione utilizzando un dispositivo MFA.

Prima di iniziare, gli utenti di altri account AWS devono soddisfare i seguenti requisiti:

  • Devono disporre di autorizzazioni di accesso ad Amazon S3. Ad esempio, gli utenti soddisfano questo requisito se la policy gestita da AWS AmazonS3FullAccess è inclusa nelle loro policy AWS Identity and Access Management (IAM).
  • Devono disporre di una policy IAM che consenta loro di chiamare GetSessionToken.
  • Devono avere un dispositivo MFA configurato per l'uso con la loro identità IAM.

Quindi, crea una policy dei bucket che utilizzi le condizioni aws:MultiFactorAuthPresent o aws:MultiFactorAuthAge. Queste condizioni determinano se l'utente si è autenticato con un dispositivo MFA.

Ad esempio, supponiamo di voler impedire a un utente di eseguire determinate azioni a meno che non effettui l'autenticazione utilizzando un dispositivo MFA. Puoi farlo scrivendo una policy sui bucket in due parti:

1.    La prima parte, che impedisce esplicitamente tali azioni quando l'utente non effettua l'autenticazione tramite MFA (la condizione “aws:MultifactorAuthPresent”: “false” è soddisfatta), sarà simile alla seguente:

{
    "Version": "2012-10-17",
    "Id": "Policy201612130001aa",
    "Statement": [
        {
            "Sid": "Stmt201612130001ab",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::example.accounta.bucket/*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        },
...

In questo esempio, stiamo impedendo all'utente di eseguire le azioni s3:PutObject, s3:PutObjectAcl e s3:DeleteObject.

2.    La seconda parte della policy consente esplicitamente tali azioni quando l'utente effettua l'autenticazione tramite MFA (la condizione “aws:MultifactorAuthPresent”: “false” non è soddisfatta):

...
        {
            "Sid": "Stmt201612130001ac",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::example.accounta.bucket",
                "arn:aws:s3:::example.accounta.bucket/*"
            ]
        }
    ]
}

Dopo avere aggiunto questa policy al bucket, gli utenti potranno eseguire il comando get-session-token dell’interfaccia della linea di comando AWS (AWS CLI). Il comando get-session-token consente di ottenere le credenziali necessarie per accedere alle risorse nel bucket. Questo comando richiede all'utente di fornire quanto segue:

  • Il codice temporaneo generato dal dispositivo MFA
  • Il numero di serie del dispositivo per un dispositivo MFA hardware o il nome della risorsa Amazon (ARN) per un dispositivo MFA software

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.

Come opzione alternativa per ottenere le credenziali, gli utenti possono scegliere di esportare le credenziali temporanee come variabili di ambiente.


Informazioni correlate

Bucket policy examples

Configuring the AWS CLI

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa