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

Aurora si integra con Secrets Manager per gestire le password degli utenti principali per le DB e i cluster DB Multi-AZ.

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 Amazon RDS Blue/Green

  • Cluster database che fanno parte di un database globale Aurora

  • Aurora Serverless v1 Cluster database

  • Aurora ha letto le repliche

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 a API 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 principale in Secrets Manager per DB quando esegui una delle seguenti operazioni:

  • Creazione del cluster database

  • Modifica del cluster database

  • Ripristina il cluster DB da Amazon S3 (solo Aurora My) SQL

Quando si specifica che Aurora gestisce la password dell'utente principale in Secrets Manager, Aurora genera la password e la archivia in Secrets Manager. Puoi interagire direttamente con il segreto per recuperare le credenziali dell'utente master. È inoltre possibile specificare una chiave gestita dal cliente per crittografare il segreto o utilizzare la KMS chiave 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 SQL database 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 granulare dell'accesso alle credenziali del database in modalità secret using. IAM

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

  • 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 IAM politiche che concedono le autorizzazioni per eseguire API operazioni specifiche sulle risorse specifiche di cui hanno bisogno. È quindi possibile allegare tali politiche ai set di IAM autorizzazioni o ai ruoli che richiedono tali autorizzazioni. Per ulteriori informazioni, consulta Gestione delle identità e degli accessi per Amazon Aurora.

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

  • kms:DescribeKey

  • secretsmanager:CreateSecret

  • secretsmanager:TagResource

L'kms:DescribeKeyautorizzazione è necessaria per accedere alla chiave gestita dal cliente e per descriverla. MasterUserSecretKmsKeyId 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 Aurora della password dell'utente principale in AWS Secrets Manager

È possibile utilizzare le chiavi di IAM condizione per imporre la gestione da parte di Aurora della password dell'utente principale in. AWS Secrets Manager La seguente politica non consente agli utenti di creare o ripristinare istanze o cluster DB a meno che la password dell'utente principale 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 condizionali nelle IAM politiche, vedere Chiavi relative alle condizioni delle politiche per Aurora ePolicy 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 principale in Secrets Manager quando si eseguono le seguenti azioni:

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

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

Quando si utilizza la RDS console per eseguire una di queste operazioni, è possibile specificare che la password dell'utente principale 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 si seleziona questa opzione, Aurora genera la password utente principale e la gestisce per tutto il suo ciclo di vita in Secrets Manager.

Gestisci le credenziali principali se selezionato AWS Secrets Manager

Puoi scegliere di crittografare il segreto con una KMS chiave fornita da Secrets Manager o con una chiave gestita dal cliente creata da te. Dopo che Aurora ha gestito le credenziali del database per un cluster DB, non è possibile modificare la KMS chiave 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 principale in Secrets Manager, specifica l'--manage-master-user-passwordopzione in uno dei seguenti comandi:

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

Per crittografare il segreto, puoi specificare una chiave gestita dal cliente o utilizzare la KMS chiave predefinita fornita da Secrets Manager. Per specificare la chiave gestita dal cliente usa l'opzione --master-user-secret-kms-key-id. L'identificatore della AWS KMS chiave è la chiaveARN, l'ID della chiave, l'alias ARN o il nome alias della chiave. KMS Per utilizzare una KMS chiave in un'altra chiave Account AWS, specificate la chiave ARN o l'alias. ARN Dopo che Aurora ha gestito le credenziali del database per un cluster DB, non è possibile modificare la KMS chiave 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 DB e specifica che Aurora gestisce la password in Secrets Manager. Il segreto viene crittografato utilizzando la KMS chiave fornita da Secrets Manager.

In Linux, macOS, oppure 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

In 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 principale in Secrets Manager, imposta il ManageMasterUserPassword parametro su true in una delle seguenti operazioni:

Quando si imposta il ManageMasterUserPassword parametro su true in una di queste operazioni, Aurora genera la password utente principale e la gestisce per tutto il suo ciclo di vita in Secrets Manager.

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

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

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

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.

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

Per ruotare la password segreta di un utente principale utilizzando la RDS console, modifica il cluster DB e seleziona Ruota segreto immediatamente in Impostazioni.

Rotazione immediata del segreto della password dell'utente master

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 modify-db-clustercomando e specifica l'--rotate-master-user-passwordopzione. È necessario specificare l'opzione --apply-immediately quando si ruota la password master.

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

In Linux, macOS, oppure Unix:

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

In 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'odifyDBClusteroperazione M e impostando il RotateMasterUserPassword parametro sutrue. È 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 RDS console, il AWS CLI, o il. RDS API

Per visualizzare i dettagli su un segreto gestito da Aurora in Secrets Manager
  1. Accedi a AWS Management Console e apri la RDS console Amazon 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, puoi visualizzare il segretoARN.

    Visualizza i dettagli su 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 RDS AWS CLI describe-db-clusterscomando per trovare le seguenti informazioni su un segreto gestito da Aurora in Secrets Manager:

  • SecretArn— Il ARN 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 non sia più RDS possibile accedere al segreto o alla KMS chiave 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, utilizzate l'--manage-master-user-passwordopzione nel modify-db-clustercomando.

  • KmsKeyId— La ARN KMS chiave 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 hai il segretoARN, puoi visualizzarne i dettagli usando il CLI comando get-secret-valueSecrets Manager.

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

In Linux, macOS, oppure Unix:

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

In 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 lo stato e la ARN KMS chiave di un segreto gestito da Aurora in Secrets Manager utilizzando l'escribeDBClustersRDSoperazione D e impostando il DBClusterIdentifier parametro su un identificatore di cluster DB. I dettagli del segreto sono inclusi nell'output.

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