Gestione delle password con Amazon Aurora e AWS Secrets Manager - Amazon Aurora

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à.

Gestione delle password con Amazon Aurora e AWS Secrets Manager

Amazon Aurora si integra con Secrets Manager per gestire le password degli utenti master per .

Disponibilità di regioni e versioni

Il supporto varia a seconda delle versioni specifiche di ciascun motore di database e a seconda delle Regioni AWS. Per ulteriori informazioni sulla disponibilità di versioni e regioni con l'integrazione di Secrets Manager con Amazon Aurora, consulta Regioni supportate e motori Aurora DB per l'integrazione di Secrets Manager.

Limitazioni per l'integrazione di Secrets Manager con Amazon Aurora

La gestione delle password degli utenti master con Secrets Manager non è supportata per le seguenti funzionalità:

  • Implementazioni blu/verde di Amazon RDS

  • Cluster database che fanno parte di un database globale Aurora

  • Cluster di database Aurora Serverless v1

  • Repliche di lettura Aurora MySQL tra regioni

Panoramica della gestione delle password degli utenti principali con AWS Secrets Manager

Con AWS Secrets Manager, puoi sostituire le credenziali codificate nel codice, incluse le password del database, con una chiamata API a Secrets Manager per recuperare il segreto a livello di codice. Per ulteriori informazioni su Secrets Manager, consultare la Guida per l'utente di AWS Secrets Manager.

Quando memorizzi i segreti del database in Secrets Manager, ti vengono Account AWS addebitati dei costi. Per informazioni sui prezzi, consulta Prezzi di AWS Secrets Manager.

Puoi specificare che Aurora gestisca la password dell'utente master in Secrets Manager per un database Amazon Aurora quando esegui una delle seguenti operazioni:

  • Creazione del cluster database

  • Modifica del cluster database

  • Ripristino del cluster database da Amazon S3 (solo Aurora MySQL)

Quando specifichi che Aurora gestisce la password dell'utente master in Secrets Manager, Aurora genera la password e la memorizza in Secrets Manager. Puoi interagire direttamente con il segreto per recuperare le credenziali dell'utente master. Puoi anche specificare una chiave gestita dal cliente per crittografare il segreto o utilizzare la chiave KMS fornita da Secrets Manager.

Aurora gestisce le impostazioni del segreto e lo ruota ogni sette giorni per impostazione predefinita. È possibile modificare alcune impostazioni, ad esempio il programma di rotazione. Se si elimina un cluster database che gestisce un segreto in Secrets Manager, vengono eliminati anche il segreto e i metadati associati.

Per connetterti a con le credenziali in un segreto, puoi recuperare il segreto da Secrets Manager. Per ulteriori informazioni, consulta Recupera segreti da AWS Secrets Manager e Connettiti a un database SQL con credenziali in un AWS Secrets Manager segreto nella Guida per l'AWS Secrets Manager utente.

Vantaggi della gestione delle password degli utenti master con Secrets Manager

La gestione delle password degli utenti master Aurora con Secrets Manager offre i seguenti vantaggi:

  • Aurora genera automaticamente le credenziali del database.

  • Aurora archivia e gestisce automaticamente le credenziali del database in. AWS Secrets Manager

  • Aurora ruota regolarmente le credenziali del database, senza richiedere modifiche all'applicazione.

  • Secrets Manager protegge le credenziali del database dall'accesso umano e dalla visualizzazione in testo normale.

  • Secrets Manager consente il recupero delle credenziali del database nei segreti per le connessioni al database.

  • Secrets Manager consente un controllo dettagliato dell'accesso alle credenziali del database nei segreti utilizzando IAM.

  • Facoltativamente, puoi separare la crittografia del database dalla crittografia delle credenziali con chiavi KMS diverse.

  • Puoi eliminare la gestione manuale e la rotazione delle credenziali del database.

  • Puoi monitorare facilmente le credenziali del database con AWS CloudTrail Amazon CloudWatch.

Per ulteriori informazioni sui vantaggi di Secrets Manager, consulta la Guida per l'utente di AWS Secrets Manager.

Autorizzazioni necessarie per l'integrazione di Secrets Manager

Gli utenti devono disporre delle autorizzazioni necessarie per eseguire le operazioni relative all'integrazione di Secrets Manager. Puoi creare le policy IAM che concedono l'autorizzazione per eseguire operazioni API specifiche sulle risorse indicate necessarie. Puoi quindi collegare tali policy ai ruoli o ai set di autorizzazioni IAM che richiedono le autorizzazioni. Per ulteriori informazioni, consulta Gestione accessi e identità per Amazon Aurora.

Per le operazioni di creazione, modifica o ripristino, l'utente che specifica che Aurora gestisce la password dell'utente master in Secrets Manager deve disporre delle autorizzazioni per eseguire le seguenti operazioni:

  • kms:DescribeKey

  • secretsmanager:CreateSecret

  • secretsmanager:TagResource

Per le operazioni di creazione, modifica o ripristino, l'utente che specifica la chiave gestita dal cliente per crittografare il segreto in Secrets Manager deve disporre delle autorizzazioni per eseguire le seguenti operazioni:

  • kms:Decrypt

  • kms:GenerateDataKey

  • kms:CreateGrant

Per le operazioni di modifica, l'utente che ruota la password dell'utente master in Secrets Manager deve disporre delle autorizzazioni per eseguire la seguente operazione:

  • secretsmanager:RotateSecret

Applicazione della gestione della password dell'utente principale in AWS Secrets Manager

È possibile utilizzare le chiavi di condizione IAM per implementare la gestione da parte di Aurora della password dell'utente master in AWS Secrets Manager. La seguente policy non consente agli utenti di creare o ripristinare istanze database o cluster database a meno che la password dell'utente master non sia gestita da Aurora in Secrets Manager.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": ["rds:CreateDBInstance", "rds:CreateDBCluster", "rds:RestoreDBInstanceFromS3", "rds:RestoreDBClusterFromS3"], "Resource": "*", "Condition": { "Bool": { "rds:ManageMasterUserPassword": false } } } ] }
Nota

Questa politica applica la gestione delle password al momento della creazione. AWS Secrets Manager Tuttavia, puoi comunque disabilitare l'integrazione di Secrets Manager e impostare manualmente una password master modificando il cluster.

Per evitare questa procedura, includi rds:ModifyDBInstance, rds:ModifyDBCluster nel blocco operazione della policy. Tieni presente che in tal modo impedisci all'utente di applicare ulteriori modifiche ai cluster esistenti in cui non è abilitata l'integrazione di Secrets Manager.

Per ulteriori informazioni sull'utilizzo delle chiavi di condizione nelle policy IAM, consulta Chiavi relative alle condizioni delle politiche per Aurora e Policy di esempio: Utilizzo di chiavi di condizione.

Gestione della password dell'utente master per un cluster database con Secrets Manager

È possibile configurare la gestione Aurora della password dell'utente master in Secrets Manager eseguendo le seguenti operazioni:

È possibile utilizzare la console RDS, l'o l'API RDS per eseguire AWS CLI queste azioni.

Segui le istruzioni per creare o modificare un cluster database con la console RDS:

Quando usi la console RDS per eseguire una di queste operazioni, è possibile specificare che la password dell'utente master sia gestita da Aurora in Secrets Manager. A tale scopo durante la creazione o il ripristino di un cluster database, seleziona Manage master credentials in AWS Secrets Manager (Gestione credenziali master in AWS Secrets Manager) in Credential settings (Impostazioni credenziali). Quando modifichi un cluster database, seleziona Manage master credentials in AWS Secrets Manager (Gestione credenziali master in AWS Secrets Manager) in Settings (Impostazioni).

L'immagine seguente è un esempio di impostazione Manage master credentials in AWS Secrets Manager (Gestione credenziali master in AWS Secrets Manager) durante la creazione o il ripristino di un cluster database.

Gestisci le credenziali principali in AWS Secrets Manager

Quando selezioni questa opzione, Aurora genera la password dell'utente master e la gestisce per tutto il suo ciclo di vita in Secrets Manager.

Gestisci le credenziali principali in modalità selezionata AWS Secrets Manager

Puoi scegliere di crittografare il segreto con una chiave KMS fornita da Secrets Manager o con una chiave gestita dal cliente creata da te. Dopo che Aurora gestisce le credenziali del database per un cluster database, non puoi modificare la chiave KMS utilizzata per crittografare il segreto.

Puoi scegliere altre impostazioni per soddisfare le tue esigenze.

Per ulteriori informazioni sulle impostazioni disponibili per la creazione di un cluster database, consulta Impostazioni per cluster di database Aurora. Per ulteriori informazioni sulle impostazioni disponibili per la modifica di un cluster database, consulta Impostazioni per Amazon Aurora.

Per specificare che Aurora gestisce la password dell'utente master in Secrets Manager, imposta l'opzione --manage-master-user-password in uno dei seguenti comandi:

Quando si specifica l'opzione --manage-master-user-password in questi comandi, Aurora genera la password dell'utente master e la gestisce per tutto il suo ciclo di vita in Secrets Manager.

Per crittografare il segreto, è possibile specificare una chiave gestita dal cliente o utilizzare la chiave KMS predefinita fornita da Secrets Manager. Per specificare la chiave gestita dal cliente usa l'opzione --master-user-secret-kms-key-id. L'identificatore della chiave AWS KMS è l'ARN della chiave, l'ID chiave, l'alias ARN o il nome alias per la chiave KMS. Per utilizzare una chiave KMS in un'altra chiave Account AWS, specifica la chiave ARN o l'alias ARN. Dopo che Aurora gestisce le credenziali del database per un cluster database, non puoi modificare la chiave KMS utilizzata per crittografare il segreto.

Puoi scegliere altre impostazioni per soddisfare le tue esigenze.

Per ulteriori informazioni sulle impostazioni disponibili per la creazione di un cluster database, consulta Impostazioni per cluster di database Aurora. Per ulteriori informazioni sulle impostazioni disponibili per la modifica di un cluster database, consulta Impostazioni per Amazon Aurora.

Questo esempio crea un cluster database e specifica che Aurora gestisce la password in Secrets Manager. Il segreto viene crittografato utilizzando la chiave KMS fornita da Secrets Manager.

Per LinuxmacOS, oUnix:

aws rds create-db-cluster \ --db-cluster-identifier sample-cluster \ --engine aurora-mysql \ --engine-version 8.0 \ --master-username admin \ --manage-master-user-password

Per Windows:

aws rds create-db-cluster ^ --db-cluster-identifier sample-cluster ^ --engine aurora-mysql ^ --engine-version 8.0 ^ --master-username admin ^ --manage-master-user-password

Per specificare che Aurora gestisce la password dell'utente master in Secrets Manager, imposta il parametro ManageMasterUserPassword su true in una delle seguenti operazioni:

Quando imposti il parametro ManageMasterUserPassword su true in una di queste operazioni, Aurora genera la password dell'utente master e la gestisce per tutto il suo ciclo di vita in Secrets Manager.

Per crittografare il segreto, è possibile specificare una chiave gestita dal cliente o utilizzare la chiave KMS predefinita fornita da Secrets Manager. Per specificare la chiave gestita dal cliente usa il parametro MasterUserSecretKmsKeyId. L'identificatore della chiave AWS KMS è l'ARN della chiave, l'ID chiave, l'alias ARN o il nome alias per la chiave KMS. Per usate una chiave KMS in un Account AWS diverso, specifica l'ARN della chiave o dell'alias. Dopo che Aurora gestisce le credenziali del database per un cluster database, non puoi modificare la chiave KMS utilizzata per crittografare il segreto.

Rotazione del segreto della password dell'utente master per un cluster database

Quando Aurora ruota il segreto della password di un utente master, Secrets Manager genera una nuova versione del segreto esistente. La nuova versione del segreto contiene la nuova password dell'utente master. Amazon Aurora modifica la password dell'utente master per il cluster database in modo che corrisponda alla password per la nuova versione del segreto.

Puoi ruotare un segreto immediatamente invece di aspettare la rotazione programmata. Per ruotare il segreto della password dell'utente master in Secrets Manager, modifica il cluster database . Per informazioni sulla modifica di un cluster database, consulta Modifica di un cluster database Amazon Aurora.

È possibile ruotare immediatamente la password segreta di un utente principale con la console RDS AWS CLI, o l'API RDS. La nuova password è sempre lunga 28 caratteri e contiene almeno un carattere maiuscolo e minuscolo, un numero e una punteggiatura.

Per ruotare il segreto della password dell'utente master utilizzando la console RDS, modifica il cluster database e seleziona Rotate secret immediately (Ruota il segreto immediatamente) in Settings (Impostazioni).

Rotazione immediata del segreto della password dell'utente master

Per modificare un cluster database con la console RDS segui le istruzioni presenti in Modifica del cluster DB utilizzando la console CLI e API. È necessario scegliere Apply immediately (Applica immediatamente) nella pagina di conferma.

Per ruotare la password segreta di un utente principale utilizzando il AWS CLI, usa il comando e specifica l'modify-db-clusteropzione. --rotate-master-user-password È necessario specificare l'opzione --apply-immediately quando si ruota la password master.

Questo esempio ruota il segreto della password dell'utente master.

Per LinuxmacOS, oUnix:

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --rotate-master-user-password \ --apply-immediately

Per Windows:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --rotate-master-user-password ^ --apply-immediately

È possibile ruotare il segreto della password dell'utente master utilizzando l'operazione ModifyDBCluster e impostando il parametro RotateMasterUserPassword su true. È necessario impostare il parametro ApplyImmediately su true quando si ruota la password master.

Visualizzazione dei dettagli di un segreto per un cluster database

Puoi recuperare i tuoi segreti utilizzando la console (https://console.aws.amazon.com/secretsmanager/) o il AWS CLI (comando get-secret-valueSecrets Manager).

Puoi trovare l'Amazon Resource Name (ARN) di un segreto gestito da Aurora in Secrets Manager con la console RDS AWS CLI, l'o l'API RDS.

Per visualizzare i dettagli di un segreto gestito da Aurora in Secrets Manager
  1. Accedi AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel riquadro di navigazione, scegli Databases (Database).

  3. Scegli il nome del cluster database per visualizzarne i dettagli.

  4. Scegli la scheda Configurazione.

    In Master Credentials ARN (ARN credenziali master), puoi visualizzare l'ARN del segreto.

    Visualizza i dettagli di un segreto gestito da Aurora in Secrets Manager

    Puoi selezionare il collegamento Manage in Secrets Manager (Gestisci in Secrets Manager) per visualizzare e gestire il segreto nella console di Secrets Manager.

È possibile utilizzare il AWS CLI describe-db-clusterscomando RDS per trovare le seguenti informazioni su un segreto gestito da in Secrets Manager:

  • SecretArn: l'ARN del segreto

  • SecretStatus: lo stato del segreto

    I valori possibili per lo stato sono:

    • creating: il segreto è in fase di creazione.

    • active: il segreto è disponibile per l'uso normale e la rotazione.

    • rotating: il segreto è in fase di rotazione.

    • impaired: il segreto può essere utilizzato per accedere alle credenziali del database, ma non può essere ruotato. Un segreto può avere questo stato se, ad esempio, le autorizzazioni vengono modificate in modo che RDS non può più accedere al segreto o alla chiave KMS del segreto.

      Quando un segreto ha questo stato, puoi correggere la condizione che lo ha causato. Se correggi la condizione che ha causato lo stato, lo stato rimane impaired fino alla rotazione successiva. In alternativa, è possibile modificare il cluster database per disattivare la gestione automatica delle credenziali del database e quindi modificare nuovamente il cluster database per attivare la gestione automatica delle credenziali del database. Per modificare il cluster DB, utilizzare l'--manage-master-user-passwordopzione nel comando. modify-db-cluster

  • KmsKeyId: l'ARN della chiave KMS utilizzata per crittografare il segreto

Specifica l'opzione --db-cluster-identifier per mostrare l'output per un cluster database specifico. Questo esempio mostra l'output di un segreto utilizzato da un cluster database.

aws rds describe-db-clusters --db-cluster-identifier mydbcluster

L'esempio seguente mostra l'output di un segreto:

"MasterUserSecret": { "SecretArn": "arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx", "SecretStatus": "active", "KmsKeyId": "arn:aws:kms:eu-west-1:123456789012:key/0987dcba-09fe-87dc-65ba-ab0987654321" }

Quando si dispone dell'ARN segreto, è possibile visualizzare i dettagli sul segreto utilizzando il comando get-secret-valueSecrets Manager CLI.

Questo esempio mostra i dettagli del segreto nell'output di esempio precedente.

PerLinux, omacOS: Unix

aws secretsmanager get-secret-value \ --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'

Per Windows:

aws secretsmanager get-secret-value ^ --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'

È possibile visualizzare l'ARN, lo stato e la chiave KMS di un segreto gestito da Aurora in Secrets Manager utilizzando l'operazione RDS DescribeDBClusters e impostando il parametro DBClusterIdentifier su un identificatore di cluster database. I dettagli del segreto sono inclusi nell'output.

Quando si dispone dell'ARN segreto, è possibile visualizzare i dettagli sul segreto utilizzando l'operazione GetSecretValueSecrets Manager.