Salta al contenuto

Come posso attivare l'eliminazione MFA per il mio bucket Amazon S3?

5 minuti di lettura
0

Desidero attivare l'eliminazione con autenticazione a più fattori (MFA) per il mio bucket Amazon Simple Storage Service (Amazon S3) in modo proteggere i miei oggetti da eliminazioni involontarie.

Breve descrizione

Quando non configuri l'eliminazione MFA, chiunque disponga di una delle seguenti autorizzazioni può eliminare definitivamente un oggetto Amazon S3:

  • Password utente root
  • Credenziali utente o ruolo AWS Identity and Access Management (IAM) con autorizzazione di eliminazione

Quando configuri l'eliminazione MFA, solo l'utente root può eliminare definitivamente le versioni degli oggetti o modificare la configurazione del controllo delle versioni nel bucket S3. È necessario utilizzare un dispositivo MFA per autenticare l'utente root affinché esegua l'azione di eliminazione.

Per configurare l'eliminazione MFA per il bucket, completa i seguenti passaggi:

  1. Genera una chiave di accesso e una chiave segreta per l'utente root.
  2. Attiva un dispositivo MFA per l'utente root.
  3. Configura AWS CLI con le credenziali dell'utente root.
  4. Configura l'eliminazione MFA.
  5. Verifica che l'eliminazione MFA funzioni ed elimina le chiavi di accesso dell'utente root.

Puoi utilizzare l'eliminazione MFA solo sui bucket per i quali hai attivato il controllo delle versioni di S3. Il proprietario del bucket, l'account AWS che ha creato il bucket e tutti gli utenti IAM autorizzati possono attivare il controllo delle versioni. Tuttavia, solo l'account dell'utente root può attivare l'eliminazione MFA. Per attivare l'eliminazione MFA, devi utilizzare AWS CLI o la REST API di Amazon S3.

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Risoluzione

Genera una chiave di accesso e una chiave segreta per l'utente root

Innanzitutto, crea le chiavi di accesso per l'utente root. Dopo aver creato le chiavi, è necessario scaricarle e salvarle immediatamente. Non puoi recuperarle in un secondo momento.

Attiva un dispositivo MFA per l'utente root

Se non hai attivato un dispositivo MFA per l'utente root, consulta Abilita un MFA dispositivo virtuale per l'utente root (console). Se hai già attivato un dispositivo MFA per l'utente root, annota l'ARN.

Configura AWS CLI con le credenziali dell'utente root

Completa i seguenti passaggi:

  1. Esegui il comando AWS CLI configure.
  2. In ID chiave di accesso AWS, inserisci l'ID della chiave di accesso dell'utente root (ad esempio, AKIAEXAMPLEABCQWE).
  3. In Chiave di accesso segreta AWS dell'utente root, inserisci l'ID della chiave di accesso segreta. Puoi trovare la chiave di accesso segreta nel file che contiene le credenziali dell'utente root.
  4. (Facoltativo) Per il nome della regione predefinita, puoi inserire la Regione AWS predefinita.
  5. (Facoltativo) Per il formato di output predefinito, puoi immettere il formato di output.

Importante: se hai configurato profili denominati in AWS CLI, devi creare un altro profilo per le credenziali dell'utente root. Per configurare un profilo denominato, esegui il seguente comando configure:

aws configure --profile root_user

Attiva l'eliminazione MFA in S3

Per attivare l'eliminazione MFA, esegui il comando put-bucket-versioning:

aws s3api put-bucket-versioning --bucket mybucketname --versioning-configuration MFADelete=Enabled,Status=Enabled --mfa "arn:aws:iam::1XXXXXXX6789:mfa/root-account-mfa-device 123789"

Nota: nel comando precedente, sostituisci 1XXXXXXX6789 con l'ID del tuo account e 123789 con il numero di serie generato dal dispositivo MFA.

Se utilizzi un profilo denominato per l'utente root, esegui il seguente comando put-bucket-versioning:

aws s3api put-bucket-versioning --bucket mybucketname --versioning-configuration MFADelete=Enabled,Status=Enabled --mfa "arn:aws:iam::1XXXXXXX6789:mfa/root-account-mfa-device 123789" --profile root_user

Se il comando ha esito positivo, non ottiene un output. Se ricevi un output con un errore, verifica se stai utilizzando l'utente root e se i numeri di serie ARN e MFA sono validi.

Puoi anche chiamare l'API PutBucketVersioning per attivare l'eliminazione MFA.

Nota: non puoi utilizzare l'eliminazione MFA con le configurazioni del ciclo di vita. Se nel bucket è presente una configurazione del ciclo di vita ed esegui il precedente comando put-bucket-versioning, viene visualizzato il seguente errore:

"An error occurred (InvalidBucketState) when calling the PutBucketVersioning operation: Mfa Authentication is not supported on a bucket with lifecycle configuration. Delete lifecycle configuration before enabling Mfa Authentication."

Verifica se l'eliminazione MFA funziona

Innanzitutto, assicurati di aver attivato il controllo delle versioni di S3. Puoi utilizzare la console Amazon S3 o la seguente API GetBucketVersioning:

aws s3api get-bucket-versioning --bucket mybucketname

Esempio di output:

{    
    "Status": "Enabled",    
    "MFADelete": "Enabled"    
}

Per eliminare definitivamente la versione di un oggetto, devi includere l'intestazione della richiesta x-amz-mfa. Puoi utilizzare l'opzione --mfa nel comando delete-object per includere il valore dell'intestazione. Il valore dell'intestazione è la catena costituita da numero di serie del dispositivo di autenticazione, spazio e codice di autenticazione. Per ulteriori informazioni, consulta Eliminazione di un oggetto da un bucket con eliminazione MFA abilitata.

Se non attivi l'eliminazione MFA e tenti di eliminare una versione dell'oggetto, viene visualizzato il seguente errore. Il seguente errore viene anche visualizzato quando utilizzi un utente IAM per provare a eliminare la versione dell'oggetto:

"aws s3api delete-object --bucket mybucketname --key myobjectkey --version-id 3HL4kqCxf3vjVBH40Nrjkd An error occurred (AccessDenied) when calling the DeleteObject operation: Mfa Authentication must be used for this request"

Per eliminare una versione dell'oggetto in un bucket con eliminazione MFA attivata utilizzando l'utente root, esegui il seguente comando delete-object:

aws s3api delete-object --bucket mybucketname --key myobjectkey --version-id 3HLkqCxf3vjVBH40Nrjkd --mfa "arn:aws:iam::(accountnumber):mfa/root-account-mfa-device (pass)" {    
    "VersionId": "3HLkqCxf3vjVBH40Nrjkd"    
}

Nota: per consentire agli utenti o ai ruoli IAM nell'account di utilizzare la richiesta delete-object senza un ID di versione, concedi loro l'autorizzaziones3:DeleteObject. Per i bucket abilitati al controllo delle versioni, la richiesta delete-object crea solo un contrassegno di eliminazione. Non elimina definitivamente la versione dell'oggetto. Per eliminare definitivamente un oggetto, devi specificare l'ID di versione dell'oggetto.

Dopo aver attivato l'eliminazione MFA, intraprendi le seguenti azioni come best practice di sicurezza:

AWS UFFICIALEAggiornata 10 mesi fa