Imposta la rotazione alternata degli utenti per AWS Secrets Manager - AWS Secrets Manager

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

Imposta la rotazione alternata degli utenti per AWS Secrets Manager

In questo tutorial, imparerai come impostare la rotazione a utenti alternati per un segreto che contiene le credenziali del database. La rotazione a utenti alternati è una strategia di rotazione in cui Secrets Manager clona l'utente e quindi alterna quali credenziali dell'utente vengono aggiornate. Questa strategia è una buona scelta se hai bisogno di disponibilità elevata per il segreto, perché uno degli utenti alternati ha le credenziali correnti per il database mentre l'altro è in fase di aggiornamento. Per ulteriori informazioni, consulta Strategia di rotazione a utenti alternati.

Per impostare la rotazione a utenti alternati, sono necessari due segreti:

  • Un segreto con le credenziali da ruotare.

  • Un secondo segreto con credenziali di amministratore.

    Questo utente dispone delle autorizzazioni per clonare il primo utente e modificare la password. In questo tutorial, chiedi ad Amazon di RDS creare questo segreto per un utente amministratore. Amazon gestisce RDS anche la rotazione delle password di amministrazione. Per ulteriori informazioni, consulta Rotazione gestita per AWS Secrets Manager i segreti.

La prima parte di questo tutorial tratta la configurazione di un ambiente realistico. Per mostrarti come funziona la rotazione, questo tutorial utilizza un esempio di SQL database Amazon RDS My. Per motivi di sicurezza, il database si trova in un formato VPC che limita l'accesso a Internet in entrata. Per connetterti al database dal tuo computer locale tramite Internet, usi un bastion host, un server interno VPC che può connettersi al database, ma che consente anche SSH le connessioni da Internet. L'host bastion di questo tutorial è un'EC2istanza Amazon e i gruppi di sicurezza dell'istanza impediscono altri tipi di connessioni.

Al termine del tutorial, si consiglia di ripulire le risorse del tutorial. Non utilizzarle in un ambiente di produzione.

La rotazione di Secrets Manager utilizza un AWS Lambda funzione per aggiornare il segreto e il database. Per ulteriori informazioni sui costi di utilizzo della funzione Lambda, consulta la sezione Prezzi.

Autorizzazioni

Per i prerequisiti del tutorial, sono necessarie le autorizzazioni amministrative per il Account AWS. In un ambiente di produzione, è consigliabile utilizzare ruoli diversi per ciascuna fase. Ad esempio, un ruolo con autorizzazioni di amministratore del database creerebbe il RDS database Amazon e un ruolo con autorizzazioni di amministratore di rete configurerebbe i gruppi di sicurezza VPC e. Per i passaggi del tutorial, suggeriamo di continuare a utilizzare la stessa identità.

Per informazioni su come configurare le autorizzazioni in un ambiente di produzione, consulta Autenticazione e controllo degli accessi per AWS Secrets Manager.

Prerequisiti

Prerequisito A: Amazon VPC

In questo passaggio, crei un database Amazon in VPC cui avviare un RDS database Amazon e un'EC2istanza Amazon. In una fase successiva, utilizzerai il tuo computer per connetterti tramite Internet al bastione e poi al database, quindi devi consentire al traffico in uscita da. VPC A tale scopo, Amazon VPC collega un gateway Internet a VPC e aggiunge un percorso nella tabella delle rotte in modo che il traffico destinato all'esterno VPC venga inviato al gateway Internet.

All'interno diVPC, crei un endpoint Secrets Manager e un RDS endpoint Amazon. Quando si imposta la rotazione automatica in un passaggio successivo, Secrets Manager crea una funzione di rotazione Lambda all'interno di VPC in modo che possa accedere al database. La funzione di rotazione Lambda chiama anche Secrets Manager per aggiornare il segreto e chiama Amazon RDS per ottenere le informazioni di connessione al database. Creando endpoint all'interno diVPC, ti assicuri che le chiamate dalla funzione Lambda a Secrets Manager e RDS Amazon non vadano in uscita AWS infrastruttura. Vengono invece indirizzati agli endpoint all'interno di. VPC

Per creare un VPC
  1. Apri la VPC console Amazon all'indirizzo https://console.aws.amazon.com/vpc/.

  2. Scegli Crea VPC.

  3. Nella VPC pagina Crea, scegli VPCe altro ancora.

  4. In Name tag auto-generation (Generazione automatica del tag del nome), sotto a Auto-generate (genera automaticazione), inserisci SecretsManagerTutorial.

  5. Per DNSle opzioni, scegli entrambe Enable DNS hostnames eEnable DNS resolution.

  6. Scegliete Crea VPC.

Per creare un endpoint Secrets Manager all'interno di VPC
  1. Nella VPC console Amazon, in Endpoints, scegli Crea endpoint.

  2. In Endpoint settings (Impostazioni endpoint), per Name (Nome) inserisci SecretsManagerTutorialEndpoint.

  3. In Servizi, inserisci secretsmanager per filtrare l'elenco, quindi seleziona l'endpoint Secrets Manager nel tuo Regione AWS. Ad esempio, negli Stati Uniti orientali (Virginia settentrionale), sceglicom.amazonaws.us-east-1.secretsmanager.

  4. Per VPC, sceglivpc**** (SecretsManagerTutorial).

  5. Per Subnets (Sottoreti), seleziona tutte le Availability Zones (Zone di disponibilità) e poi per ognuna di esse scegli un Subnet ID (ID sottorete) da includere.

  6. Per Tipo di indirizzo IP, scegli IPv4.

  7. Da Security Groups (Gruppi di sicurezza), scegli il gruppo di sicurezza di default.

  8. Per Policy type (Tipo di policy), scegli Full access.

  9. Seleziona Crea endpoint.

Per creare un RDS endpoint Amazon all'interno di VPC
  1. Nella VPC console Amazon, in Endpoints, scegli Crea endpoint.

  2. In Endpoint settings (Impostazioni endpoint), per Name (Nome) inserisci RDSTutorialEndpoint.

  3. In Servizi, inserisci rds per filtrare l'elenco, quindi seleziona l'RDSendpoint Amazon nel tuo Regione AWS. Ad esempio, negli Stati Uniti orientali (Virginia settentrionale), sceglicom.amazonaws.us-east-1.rds.

  4. Per VPC, sceglivpc**** (SecretsManagerTutorial).

  5. Per Subnets (Sottoreti), seleziona tutte le Availability Zones (Zone di disponibilità) e poi per ognuna di esse scegli un Subnet ID (ID sottorete) da includere.

  6. Per Tipo di indirizzo IP, scegli IPv4.

  7. Da Security Groups (Gruppi di sicurezza), scegli il gruppo di sicurezza di default.

  8. Per Policy type (Tipo di policy), scegli Full access.

  9. Seleziona Crea endpoint.

Prerequisito B: istanza Amazon EC2

Il RDS database Amazon che creerai in una fase successiva sarà disponibile inVPC, quindi per accedervi è necessario un host bastion. Anche l'host bastion fa parte del bastionVPC, ma in una fase successiva configurerai un gruppo di sicurezza per consentire al tuo computer locale di connettersi all'host bastion con. SSH

Per creare un'EC2istanza per un bastion host
  1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Scegliere Instances (Istanze), quindi scegliere Launch Instances (Avvia istanze).

  3. Nell'area Name and tags (Nome e tag), in Name (Nome) inserisci SecretsManagerTutorialInstance.

  4. In Application and OS Images (Immagini dell'applicazione e del sistema operativo), mantieni l'impostazione predefinita Amazon Linux 2 AMI (HMV) Kernel 5.10.

  5. In Instance type (Tipo di istanza), mantieni l'impostazione predefinita t2.micro.

  6. In Key pair (coppia di chiavi), scegli Crea coppia di chiavi.

    Nella finestra di dialogo Create Key Pair (Crea coppia di chiavi), per Key pair name (Nome coppia di chiavi), inserisci SecretsManagerTutorialKeyPair, quindi scegli Create (Crea).

    La chiave privata viene scaricata automaticamente.

  7. In Network settings (Impostazioni di rete), scegli Edit (Modifica) ed esegui le operazioni qui descritte:

    1. Per VPC, sceglivpc-**** SecretsManagerTutorial.

    2. Per Auto-assign Public IP (Assegna automaticamente IP pubblico), scegliere Enable.

    3. Per Firewall, scegli Select existing security group (seleziona gruppo di sicurezza esistente).

    4. Per i gruppi di sicurezza comuni, scegli default.

  8. Scegliere Launch Instance (Avvia istanza).

Prerequisito C: RDS database Amazon e un segreto di Secrets Manager per le credenziali di amministratore

In questo passaggio, crei un SQL database Amazon RDS My e lo configuri in modo che Amazon RDS crei un segreto per contenere le credenziali di amministratore. Quindi Amazon gestisce RDS automaticamente la rotazione del segreto di amministrazione per te. Per ulteriori informazioni, consulta Rotazione gestita.

Durante la creazione del database, è necessario specificare l'host bastione creato nel passaggio precedente. Quindi Amazon RDS configura i gruppi di sicurezza in modo che il database e l'istanza possano accedersi l'un l'altro. Si aggiunge una regola al gruppo di sicurezza collegato all'istanza per consentire anche al computer locale di connettersi ad essa.

Per creare un RDS database Amazon con un segreto Secrets Manager contenente le credenziali di amministratore
  1. Nella RDS console Amazon, scegli Crea database.

  2. Nella sezione Engine options (Opzioni motore) per Engine type (tipo motore) scegli MySQL.

  3. Nella sezione Templates (Modelli), seleziona Free tier.

  4. Nella sezione Rule settings (Impostazioni regole), procedi nel seguente modo:

    1. Per l'identificatore dell'istanza DB, inserisci SecretsManagerTutorial.

    2. In Impostazioni delle credenziali, seleziona Gestisci le credenziali principali in AWS Secrets Manager.

  5. Nella sezione Connettività, per Risorsa computer, scegli Connetti a una risorsa EC2 del computer e quindi, per EC2Istanza, scegliSecretsManagerTutorialInstance.

  6. Scegliere Crea database.

Prerequisito D: consenti al computer locale di connettersi all'istanza EC2

In questo passaggio, configuri l'EC2istanza creata nel Prereq B per consentire al computer locale di connettersi ad essa. A tale scopo, modifichi il gruppo di sicurezza RDS aggiunto da Amazon in Prereq C per includere una regola che consenta la connessione dell'indirizzo IP del computer. SSH La regola consente al computer locale (identificato dal tuo attuale indirizzo IP) di connettersi all'host bastion utilizzando SSH Internet.

Per consentire al computer locale di connettersi all'istanza EC2
  1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Nell'EC2istanza SecretsManagerTutorialInstance, nella scheda Sicurezza, in Gruppi di sicurezza, sceglisg-*** (ec2-rds-X).

  3. Sotto a Inbound rules (Regole in entrata), seleziona Edit inbound rules (Modifica regole in entrata).

  4. Scegli Add rule (Aggiungi regola), poi per la regola esegui le seguenti operazioni:

    1. In Type (Tipo) scegliere SSH.

    2. Per Source (origine), scegli My IP.

Fase 1: Creare un utente RDS del database Amazon

Innanzitutto, è necessario un utente le cui credenziali saranno memorizzate nel segreto. Per creare l'utente, accedi al RDS database Amazon con le credenziali di amministratore. Per semplicità, nel tutorial, si crea un utente con piena autorizzazione per un database. In un ambiente di produzione questo non succede normalmente e ti consigliamo di seguire il principio del privilegio minimo.

Per connetterti al database, usi lo strumento My SQL client. In questo tutorial, usi My SQL Workbench, un'applicazione GUI basata su My Workbench. Per installare My SQL Workbench, vedi Download My SQL Workbench.

Per connetterti al database, crea una configurazione di connessione in My SQL Workbench. Per la configurazione, sono necessarie alcune informazioni sia da Amazon EC2 che da AmazonRDS.

Per creare una connessione al database in My SQL Workbench
  1. In My SQL Workbench, accanto a SQLLe mie connessioni, scegli il pulsante (+).

  2. Nella finestra di dialogo Setup New Connection (Configura una nuova connessione), segui questi passaggi:

    1. Per Connection Name (Nome connessione), inserisci SecretsManagerTutorial.

    2. Per Connection Method (Metodo di connessione), scegli Standard TCP/IP over SSH.

    3. Nella scheda Parameters (Parametri), procedi come segue:

      1. Per SSHHostname, inserisci l'indirizzo IP pubblico dell'EC2istanza Amazon.

        Puoi trovare l'indirizzo IP sulla EC2 console Amazon scegliendo l'istanza SecretsManagerTutorialInstance. Copia l'indirizzo IP in Pubblico IPv4 DNS.

      2. Per SSHNome utente, inserisciec2-user.

      3. Per SSHKeyfile, scegli il file della coppia di chiavi SecretsManagerTutorialKeyPair.pem che hai scaricato nel prerequisito precedente.

      4. Per My SQL Hostname, inserisci l'indirizzo dell'RDSendpoint Amazon.

        Puoi trovare l'indirizzo dell'endpoint sulla RDS console Amazon scegliendo l'istanza del database secretsmanagertutorialdb. Copia l'indirizzo in Endpoint.

      5. Per Username (Nome utente), inserisci admin.

    4. Scegli OK.

Recuperare la password dell'amministratore
  1. Nella RDS console Amazon, accedi al tuo database.

  2. Nella scheda Configurazione, in Credenziali principali ARN, scegli Gestisci in Secrets Manager.

    Si apre la console Secrets Manager.

  3. Nella pagina dei dettagli del segreto, scegli Retrieve secret value (Recupera il valore di un segreto).

  4. La password viene visualizzata nella sezione Secret value (valore segreto).

Per creare un utente del database
  1. In My SQL Workbench, scegli la connessione. SecretsManagerTutorial

  2. Inserisci la password dell'amministratore che hai recuperato dal segreto.

  3. In My SQL Workbench, nella finestra Query, inserisci i seguenti comandi (inclusa una password sicura) e quindi scegli Esegui. La funzione di rotazione verifica il segreto aggiornato utilizzandoSELECT, quindi appuser deve avere almeno quel privilegio.

    CREATE DATABASE myDB; CREATE USER 'appuser'@'%' IDENTIFIED BY 'EXAMPLE-PASSWORD'; GRANT SELECT ON myDB . * TO 'appuser'@'%';

    Nella finestra Output, viene visualizzato l'esito positivo dei comandi.

Fase 2: creazione di un segreto per le credenziali dell'utente

Successivamente, creerai un segreto per archiviare le credenziali dell'utente appena creato. Questo è il segreto che verrà ruotato. Attiva la rotazione automatica e, per indicare la strategia a utenti alternati, scegli un segreto di un utente con privilegi avanzati separato che dispone dell'autorizzazione per modificare la password del primo utente.

  1. Apri la console Secrets Manager all'indirizzo https://console.aws.amazon.com/secretsmanager/.

  2. Scegli Archivia un nuovo segreto.

  3. Nella pagina Choose secret type (Scegli il tipo di segreto), effettua le seguenti operazioni:

    1. Per Tipo segreto, scegli Credenziali per il RDS database Amazon.

    2. Per Credenziali, inserisci il nome utente appuser e la password che hai inserito per l'utente del database che hai creato utilizzando My SQL Workbench.

    3. Per Database, scegli secretsmanagertutorialdb.

    4. Scegli Next (Successivo).

  4. Nella pagina Configure secret (Configura il segreto), per Secret name (Nome del segreto), inserisci SecretsManagerTutorialAppuser e scegli Next (Successivo).

  5. Nella pagina Configure rotation (Configura la rotazione), effetua le seguenti operazioni:

    1. Attiva Automatic rotation (Rotazione automatica).

    2. Per Rotation schedule (Pianificazione della rotazione), imposta una pianificazione di Days (Giorni): 2 Days with Duration: 2h (2 giorni con durata: 2 h). Mantieni selezionato Rotate immediately (Ruota immediatamente).

    3. Per Rotation function (Funzione di rotazione), scegli Create a rotation function (Crea una funzione di rotazione) e per il nome della funzione inserisci tutorial-alternating-users-rotation.

    4. Per Strategia di rotazione, scegli Utenti alternati, quindi in Segreto credenziali amministratore scegli il segreto denominato rds!cluster... che ha una Descrizione che include il nome del database creato in questo tutorial secretsmanagertutorial, ad esempio Secret associated with primary RDS DB instance: arn:aws:rds:Region:AccountId:db:secretsmanagertutorial.

    5. Scegli Next (Successivo).

  6. Nella pagina Review (Rivedi), scegli Store (Archivia).

    Secrets Manager torna alla pagina dei dettagli segreti. Nella parte superiore della pagina, è possibile visualizzare lo stato della configurazione di rotazione. Secrets Manager utilizza CloudFormation per creare risorse come la funzione di rotazione Lambda e un ruolo di esecuzione che esegue la funzione Lambda. Al CloudFormation termine, il banner diventa Segreto programmato per la rotazione. La prima rotazione è completa.

Fase 3: eseguire il test del segreto ruotato

Ora che il segreto è stato ruotato, è possibile verificare che il segreto contenga ancora credenziali valide. La password nel segreto è cambiata rispetto alle credenziali originali.

Recuperare la nuova password dal segreto
  1. Apri la console Secrets Manager all'indirizzo https://console.aws.amazon.com/secretsmanager/.

  2. Scegli Secrets (Segreti) e quindi scegli il segreto SecretsManagerTutorialAppuser.

  3. Nella pagina Secret details (Dettagli del segreto), scorri e scegli Retrieve secret value (Recupera il valore del segreto).

  4. Nella tabella Key/value (Chiave/valore), copia il Secret value (Valore segreto) per la password.

Testare le credenziali
  1. In My SQL Workbench, fai clic con il pulsante destro del mouse sulla connessione SecretsManagerTutorial, quindi scegli Modifica connessione.

  2. Nella finestra di dialogo Manage Server Connections (Gestisci connessioni al server), per Username (Nome utente), inserisci appuser e scegli Close (Chiudi).

  3. Tornando a My SQL Workbench, scegli la connessione. SecretsManagerTutorial

  4. Nella finestra di dialogo Apri SSH connessione, per Password, incolla la password recuperata dal segreto, quindi scegli OK.

    Se le credenziali sono valide, My SQL Workbench si apre nella pagina di progettazione del database.

Questa mostra che la rotazione del segreto ha esito positivo. Le credenziali nel segreto sono state aggiornate e consistono in una password valida per connettersi al database.

Fase 4: Eliminazione delle risorse

Per provare un'altra strategia di rotazione, la rotazione a utente singolo, salta la pulizia delle risorse e vai a Imposta la rotazione di un singolo utente per AWS Secrets Manager.

Altrimenti, per evitare potenziali addebiti e rimuovere l'EC2istanza che ha accesso a Internet, elimina le seguenti risorse che hai creato in questo tutorial e i relativi prerequisiti:

Passaggi successivi