Gestione delle password con Amazon Aurora e Gestione dei segreti AWS - 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 Gestione dei segreti AWS

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 e motori di database Aurora supportati 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 Amazon RDS Blue/Green

  • Cluster database che fanno parte di un database globale Aurora

  • Cluster di database Aurora Serverless v1

  • Repliche di lettura tra regioni diverse

  • Replica esterna di log binari

Panoramica della gestione delle password degli utenti principali con Gestione dei segreti AWS

Con Gestione dei segreti AWS, 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 Gestione dei segreti AWS.

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

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

  • Creare un cluster di database

  • Modificare un cluster di database

  • Ripristinare un cluster di 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 Gestione dei segreti AWS e Connettiti a un database SQL con credenziali in un Gestione dei segreti AWS segreto nella Guida per l'Gestione dei segreti AWS 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. Gestione dei segreti AWS

  • 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 Gestione dei segreti AWS.

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

L’autorizzazione kms:DescribeKey è necessaria per accedere alla chiave gestita dal cliente per MasterUserSecretKmsKeyId e per descrivere aws/secretsmanager.

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 Gestione dei segreti AWS

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

JSON
{ "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. Gestione dei segreti AWS 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 di condizione delle policy 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 AWS CLI, il o l'API RDS per eseguire 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 di database, seleziona Gestisci le credenziali master in Gestione dei segreti AWS in Impostazioni credenziali. Quando modifichi un cluster database, seleziona Manage master credentials in Gestione dei segreti AWS (Gestione credenziali master in Gestione dei segreti AWS) in Settings (Impostazioni).

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

Gestisci le credenziali principali in Gestione dei segreti AWS

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 Gestione dei segreti AWS

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 Linux, macOS o Unix:

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 una password utente principale segreta con la console RDS AWS CLI, l'o l'API RDS. La nuova password ha sempre una lunghezza di 28 caratteri e contiene almeno un carattere maiuscolo e uno minuscolo, un numero e un segno di 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 di database tramite la console, la CLI e l'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 modify-db-clustercomando e specifica l'opzione. --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 Linux, macOS o Unix:

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 una password utente principale segreta utilizzando l'DBClusteroperazione Modifica e impostando il RotateMasterUserPassword parametro 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 usando la console (https://console.aws.amazon.com/secretsmanager/) o il comando AWS CLI (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 a Console di gestione AWS e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel pannello di navigazione, seleziona 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.

Per Linux, macOS o 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 per un segreto gestito da RDS in Secrets Manager utilizzando l'operazione DBClusters Descrivi RDS e DBClusterIdentifier impostando il parametro su un identificatore di cluster DB. 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.