Configurazione dell'autenticazione Kerberos per cluster di database di PostgreSQL - 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à.

Configurazione dell'autenticazione Kerberos per cluster di database di PostgreSQL

Per configurare l'autenticazione Kerberos, completa la procedura seguente.

Passaggio 1: creare una directory utilizzando AWS Managed Microsoft AD

AWS Directory Service crea una Active Directory completamente gestita nel AWS cloud. Quando crei una AWS Managed Microsoft AD directory, AWS Directory Service crea due controller di dominio e server DNS per te. I server di directory vengono creati in sottoreti diverse in un VPC. Questa ridondanza assicura che la directory rimanga accessibile anche se si verifica un errore.

Quando si crea una AWS Managed Microsoft AD AWS directory, Directory Service esegue le seguenti attività per conto dell'utente:

  • Configura una Active Directory all'interno del VPC.

  • Crea un account amministratore della directory con il nome utente Admin e la password specificata. Puoi utilizzare questo account per gestire le directory.

    Importante

    Assicurati di salvare questa password. AWS Directory Service non memorizza questa password e non può essere recuperata o reimpostata.

  • Crea un gruppo di sicurezza per i controller della directory. Il gruppo di sicurezza deve consentire la comunicazione con il cluster database PostgreSQL.

All'avvio AWS Directory Service for Microsoft Active Directory, AWS crea un'unità organizzativa (OU) che contiene tutti gli oggetti della directory. Questa unità organizzativa, che ha lo stesso nome NetBIOS che hai immesso al momento della creazione della directory, si trova nella radice del dominio. La radice del dominio è di proprietà e gestita da AWS.

L'Adminaccount creato con la AWS Managed Microsoft AD directory dispone delle autorizzazioni per le attività amministrative più comuni dell'unità organizzativa:

  • Creazione, aggiornamento o eliminazione di utenti

  • Aggiungi risorse al dominio, come file server o server di stampa, e assegna le autorizzazioni per tali risorse a utenti dell'unità organizzativa

  • Creazione di unità organizzative e container aggiuntivi

  • Delega dell'autorità

  • Ripristino degli oggetti eliminati dal cestino di Active Directory

  • Esegui i moduli Active Directory e Domain Name Service (DNS) per Windows PowerShell sul servizio Web Active Directory

L'account Admin dispone anche dei diritti per eseguire queste attività in tutto il dominio:

  • gestione delle configurazioni DNS (aggiunta, eliminazione o aggiornamento di record, zone e server d'inoltro);

  • visualizzazione di log di eventi DNS;

  • visualizzazione di log di eventi di sicurezza.

Per creare una directory con AWS Managed Microsoft AD
  1. Nel riquadro di navigazione della console AWS Directory Service, scegliere Directory, quindi selezionare Configurazione della directory.

  2. Seleziona AWS Managed Microsoft AD. AWS Managed Microsoft AD è la sola opzione supportata per l'uso con Amazon Aurora.

  3. Seleziona Successivo.

  4. Nella pagina Enter directory information (Inserisci le informazioni sulla directory) inserisci le seguenti informazioni:

    Edizione

    Scegliere l'edizione più adatta alle proprie esigenze.

    Nome DNS directory

    Il nome completo della directory, ad esempio corp.example.com.

    Nome NetBIOS della directory

    Nome breve opzionale della directory, ad esempio CORP.

    Descrizione della directory

    Descrizione opzionale della directory.

    Password amministratore

    La password dell'amministratore della directory. Con il processo di creazione della directory viene generato un account amministratore con nome utente Admin e questa password.

    La password dell'amministratore della directory non può includere il termine "admin". La password distingue tra maiuscole e minuscole e la lunghezza deve essere compresa tra 8 e 64 caratteri. Deve anche contenere un carattere di almeno tre delle seguenti quattro categorie:

    • Lettere minuscole (a–z)

    • Lettere maiuscole (A–Z)

    • Numeri (0–9)

    • Caratteri non alfanumerici (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)

    Confirm password (Conferma password)

    Digitare di nuovo la password dell'amministratore.

    Importante

    Assicurati di salvare questa password. AWS Directory Service non memorizza questa password e non può essere recuperata o reimpostata.

  5. Seleziona Successivo.

  6. Nella pagina Choose VPC and subnets (Scegli VPC e sottoreti) fornire le seguenti informazioni:

    VPC

    Scegliere il VPC per la directory. È possibile creare il cluster di database di PostgreSQL in questo VPC o in uno diverso.

    Sottoreti

    Seleziona le sottoreti per i server di directory. Le due sottoreti devono trovarsi in diverse zone di disponibilità.

  7. Seleziona Successivo.

  8. Verificare le informazioni della directory Se sono necessarie modifiche, seleziona Previous (Precedente) e apporta le modifiche. Quando le informazioni sono corrette, scegli Create Directory (Crea directory).

    Pagina dei dettagli della directory

Per creare la directory sono necessari alcuni minuti. Una volta creata correttamente la directory, il valore Status (Stato) viene modificato in Active (Attivo).

Per consultare le informazioni sulla directory, selezionare l’ID della directory nell'elenco di directory. Prendere nota del valore Directory ID (ID directory). Questo valore è necessario per creare o modificare l'istanza database PostgreSQL.

Immagine della pagina dei dettagli

Passaggio 2: (Facoltativo) Creare una relazione di fiducia tra Active Directory locale e AWS Directory Service

Se non prevedi di utilizzare Microsoft Active Directory locale, passa a Fase 3: creare un ruolo IAM per Amazon Aurora Amazon per accedere a AWS Directory Service.

Per ottenere l'autenticazione Kerberos utilizzando l'Active Directory locale, è necessario creare una relazione di dominio affidabile utilizzando un trust di foresta tra Microsoft Active Directory locale e la AWS Managed Microsoft AD directory (creata in). Passaggio 1: creare una directory utilizzando AWS Managed Microsoft AD L'attendibilità può essere unidirezionale, in cui la AWS Managed Microsoft AD directory considera attendibile Microsoft Active Directory locale. Il trust può anche essere bidirezionale, in cui entrambe le Active Directory si considerano reciprocamente attendibili. Per ulteriori informazioni sulla configurazione dei trust utilizzando AWS Directory Service, vedere Quando creare una relazione di trust nella Administration Guide.AWS Directory Service

Nota

Se utilizzi una Microsoft Active Directory locale:

  • I client Windows devono connettersi utilizzando il nome di dominio di nell'endpoint anziché rds.amazonaws.com AWS Directory Service . Per ulteriori informazioni, consulta Connessione a PostgreSQL con Autenticazione Kerberos.

  • I client Windows non possono connettersi con endpoint personalizzati Aurora. Per ulteriori informazioni, consulta Gestione delle connessioni Amazon Aurora.

  • Per i database globali:

    • I client Windows possono connettersi utilizzando endpoint di istanza o endpoint di cluster solo nel database primario del database globale. Regione AWS

    • I client Windows non possono connettersi utilizzando gli endpoint del cluster in modalità secondaria. Regioni AWS

Assicurati che il nome di dominio di Microsoft Active Directory locale includa un routing del suffisso DNS che corrisponde alla nuova relazione di trust creata. Il risultato è mostrato nella screenshot seguente.

Il routing DNS corrisponde al trust creato

Fase 3: creare un ruolo IAM per Amazon Aurora Amazon per accedere a AWS Directory Service

Affinché Amazon Aurora Amazon possa AWS Directory Service chiamarti, il tuo AWS account deve avere un ruolo IAM che utilizzi la policy IAM gestita. AmazonRDSDirectoryServiceAccess Questo ruolo permette ad Amazon Aurora di effettuare chiamate ad AWS Directory Service. (Tieni presente che questo ruolo IAM a cui accedere AWS Directory Service è diverso dal ruolo IAM per Autenticazione del database IAM cui viene utilizzato.)

Quando crei un'istanza DB utilizzando l'account utente della console AWS Management Console e l'account utente della console dispone dell'iam:CreateRoleautorizzazione, la console crea automaticamente il ruolo IAM necessario. In questo caso, il nome del ruolo è rds-directoryservice-kerberos-access-role. In caso contrario, è necessario creare manualmente il ruolo IAM. Quando crei questo ruolo IAMDirectory Service, scegli e allega la policy AWS gestita AmazonRDSDirectoryServiceAccess ad esso.

Per ulteriori informazioni sulla creazione di ruoli IAM per un servizio, consulta Creating a role to delegate permissions to an AWS service nella IAM User Guide.

Nota

Il ruolo IAM utilizzato per l'autenticazione Windows per RDS per Microsoft SQL Server non può essere utilizzato per Amazon Aurora.

Facoltativamente, puoi creare policy con le autorizzazioni richieste anziché utilizzare la policy AmazonRDSDirectoryServiceAccess gestita. In questo caso, il ruolo IAM deve avere la seguente policy di attendibilità IAM.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Il ruolo deve anche disporre della seguente policy del ruolo IAM.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ds:DescribeDirectories", "ds:AuthorizeApplication", "ds:UnauthorizeApplication", "ds:GetAuthorizedApplicationDetails" ], "Effect": "Allow", "Resource": "*" } ] }

Fase 4: creazione e configurazione di utenti

Puoi creare gli utenti con lo strumento Utenti Active Directory e computer. Questo è uno degli strumenti di Active Directory Domain Services e Active Directory Lightweight Directory Services. Per ulteriori informazioni, consulta Add Users and Computers to the Active Directory domain (Aggiungere utenti e computer al dominio di Active Directory) nella documentazione di Microsoft. In questo caso, gli utenti sono individui o altre entità, ad esempio i computer, che fanno parte del dominio e le cui identità vengono conservate nella directory.

Per creare utenti in una AWS Directory Service directory, devi essere connesso a un'istanza Amazon EC2 basata su Windows che fa parte della directory. AWS Directory Service Allo stesso tempo, devi essere connesso come un utente che dispone di privilegi per creare utenti. Per ulteriori informazioni, consulta Creazione di un utente nella Guida di amministrazione di AWS Directory Service .

Fase 5: abilitazione del traffico tra VPC tra la directory e l'istanza database

Se prevedi di individuare la directory e il cluster di database nello stesso VPC, ignora questa fase e passa a Fase 6: creazione o modifica di un cluster database PostgreSQL.

Se prevedi di individuare la directory e l'istanza database in VPC differenti, configura il traffico tra VPC utilizzando il peering di VPC o AWS Transit Gateway.

La procedura seguente abilita il traffico tra VPC utilizzando il peering di VPC. Segui le istruzioni in Che cos'è il peering di VPC? nella Amazon Virtual Private Cloud Peering Guide.

Per abilitare il traffico tra VPC utilizzando il peering di VPC
  1. Configurare le regole di routing VPC appropriate per garantire che il traffico di rete possa scorrere in entrambe le direzioni.

  2. Assicurati che il gruppo di sicurezza dell'istanza database possa ricevere traffico in entrata dal gruppo di sicurezza della directory.

  3. Assicurati che non sia presente una regola della lista di controllo accessi (ACL) di rete per bloccare il traffico.

Se la directory è di proprietà di un altro AWS account, devi condividerla.

Per condividere la cartella tra AWS account
  1. Inizia a condividere la directory con l' AWS account in cui verrà creata l'istanza DB seguendo le istruzioni riportate nel Tutorial: Sharing your AWS Managed Microsoft AD directory for seamless EC2 Domain-join nella Administration Guide.AWS Directory Service

  2. Accedi alla AWS Directory Service console utilizzando l'account per l'istanza DB e assicurati che il dominio abbia lo stato prima di procedere. SHARED

  3. Dopo aver effettuato l'accesso alla AWS Directory Service console utilizzando l'account per l'istanza DB, annota il valore Directory ID. Utilizzare questo ID directory per aggiungere l'istanza database al dominio.

Fase 6: creazione o modifica di un cluster database PostgreSQL

Crea o modifica un cluster di database di PostgreSQL da usare con la directory. Puoi utilizzare la console, CLI o l'API di RDS per associare un cluster di database a una directory. Questa operazione può essere eseguita in uno dei seguenti modi:

L'autenticazione Kerberos è supportata solo per cluster di PostgreSQL DB in un VPC. Il cluster di database può trovarsi nello stesso VPC della directory o in un VPC diverso. Il cluster database deve utilizzare un gruppo di sicurezza che accetta traffico in ingresso e in uscita all'interno del VPC della directory, in modo che il cluster database possa comunicare con la directory.

Nota

L'abilitazione dell'autenticazione Kerberos non è attualmente supportata sul cluster Aurora PostgreSQL DB durante la migrazione da RDS per PostgreSQL. È possibile abilitare l'autenticazione Kerberos solo su un cluster Aurora PostgreSQL DB autonomo.

Quando utilizzi la console per creare, modificare o ripristinare un cluster di database, scegli Autenticazione Kerberos nella sezione Autenticazione database. Quindi scegli Sfoglia directory. Seleziona la directory o seleziona Crea una nuova directory per utilizzare il servizio directory.

Scelta di Kerberos per l'autenticazione e l'identificazione della directory da utilizzare.

Quando si utilizza il AWS CLI, sono necessari i seguenti parametri affinché l' del cluster DB possa utilizzare la directory creata:

  • Per il parametro --domain, utilizza l'identificatore di dominio (identificatore "d-*") generato durante la creazione della directory.

  • Per il parametro --domain-iam-role-name, utilizza il ruolo creato che utilizza la policy IAM gestita AmazonRDSDirectoryServiceAccess.

Ad esempio, il comando CLI seguente modifica un cluster di database per utilizzare una directory.

aws rds modify-db-cluster --db-cluster-identifier mydbinstance --domain d-Directory-ID --domain-iam-role-name role-name
Importante

Se modifichi un cluster database per abilitare l'autenticazione Kerberos, riavvia il cluster database dopo aver apportato la modifica.

Fase 7: creazione di utenti PostgreSQL per i principali Kerberos

A questo punto, il cluster di database Aurora PostgreSQL viene aggiunto al dominio AWS Managed Microsoft AD . Gli utenti che hai creato nella directory in Fase 4: creazione e configurazione di utenti devono essere impostati come utenti del database PostgreSQL e devono essere concessi loro i privilegi per accedere al database. Puoi farlo accedendo come utente del database con privilegi rds_superuser. Ad esempio, se hai accettato i valori predefiniti quando hai creato il cluster database Aurora PostgreSQL, utilizzi postgres, come illustrato nei passaggi seguenti.

Per creare utenti del database PostgreSQL per i principali Kerberos
  1. Usa psql per la connessione all'endpoint dell'istanza database del cluster database Aurora PostgreSQL utilizzando psql. L'esempio seguente utilizza l'account postgres predefinito per il ruolo rds_superuser.

    psql --host=cluster-instance-1.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
  2. Crea un nome utente del database per ogni principale Kerberos (nome utente di Active Directory) a cui desideri fornire l'accesso al database. Utilizza il nome utente canonico (identità) come definito nell'istanza Active Directory, ovvero un alias minuscolo (nome utente in Active Directory) e il nome maiuscolo del dominio Active Directory per quel nome utente. Il nome utente di Active Directory è un utente autenticato esternamente, quindi usa le virgolette intorno al nome come mostrato di seguito.

    postgres=> CREATE USER "username@CORP.EXAMPLE.COM" WITH LOGIN; CREATE ROLE
  3. Autorizza il ruolo rds_ad per l'utente del database.

    postgres=> GRANT rds_ad TO "username@CORP.EXAMPLE.COM"; GRANT ROLE

Dopo aver completato la creazione di tutti gli utenti PostgreSQL per le identità utente Active Directory, gli utenti possono accedere al cluster database Aurora PostgreSQL utilizzando le proprie credenziali Kerberos.

È necessario che gli utenti del database che si autenticano tramite Kerberos lo facciano da computer client membri del dominio Active Directory.

Gli utenti del database a cui è stato concesso il ruolo rds_ad non possono avere anche il ruolo rds_iam. Questo vale anche per le appartenenze nidificate. Per ulteriori informazioni, consulta Autenticazione del database IAM .

Configurazione del cluster database Aurora PostgreSQL per nomi utente senza distinzione tra maiuscole e minuscole

Le versioni di Aurora PostgreSQL 14.5, 13.8, 12.12 e 11.17 supportano il parametro PostgreSQL krb_caseins_users. Questo parametro supporta i nomi utente di Active Directory senza distinzione tra maiuscole e minuscole. Per impostazione predefinita, questo parametro è impostato su false, quindi i nomi utente vengono interpretati applicando la distinzione tra maiuscole e minuscole da Aurora PostgreSQL. Questo è il comportamento predefinito in tutte le precedenti versioni di Aurora PostgreSQL. Tuttavia, puoi impostare questo parametro su true nel gruppo di parametri del·cluster database personalizzato e consentire al cluster database Aurora PostgreSQL di interpretare i nomi utente, senza distinzione tra maiuscole e minuscole. Questa operazione può essere utile per gli utenti del database, che a volte potrebbero digitare in modo errato le maiuscole e le minuscole del proprio nome utente durante l'autenticazione tramite Active Directory.

Per modificare il parametro krb_caseins_users, il cluster database Aurora PostgreSQL deve usare un gruppo di parametri del cluster database personalizzato. Per informazioni sull'utilizzo di un gruppo di parametri del·cluster database personalizzato, consulta Utilizzo di gruppi di parametri.

È possibile utilizzare AWS CLI o il AWS Management Console per modificare l'impostazione. Per ulteriori informazioni, consulta Modifica di parametri in un gruppo di parametri cluster database.

Fase 8: configurazione di un client PostgreSQL

Per configurare un client PostgreSQL, procedi come indicato di seguito:

  • Crea un file krb5.conf (o equivalente) che punti al dominio.

  • Verifica che il traffico possa fluire tra l'host del client e AWS Directory Service. Utilizza un'utilità di rete come Netcat per le operazioni seguenti:

    • Verifica il traffico su DNS per la porta 53.

    • Verifica il traffico su TCP/UDP per la porta 53 e per Kerberos, che include le porte 88 e 464 per AWS Directory Service.

  • Verifica che il traffico scorra senza problemi tra l'host client e l'istanza database sulla porta del database. Ad esempio, utilizza psql per connetterti e accedere al database.

Di seguito è riportato un esempio di contenuto krb5.conf per. AWS Managed Microsoft AD

[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = example.com admin_server = example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM

Di seguito è riportato un esempio di contenuto krb5.conf per una Microsoft Active Directory locale.

[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = example.com admin_server = example.com } ONPREM.COM = { kdc = onprem.com admin_server = onprem.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM .onprem.com = ONPREM.COM onprem.com = ONPREM.COM .rds.amazonaws.com = EXAMPLE.COM .amazonaws.com.cn = EXAMPLE.COM .amazon.com = EXAMPLE.COM