Configurazione dell'autenticazione Kerberos per cluster di database Aurora MySQL - 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 Aurora MySQL

Per configurare l'autenticazione Kerberos per un cluster di database Aurora MySQL, puoi utilizzare AWS Managed Microsoft AD. Per configurare l'autenticazione Kerberos, completa la procedura seguente.

Fase 1: creazione di una directory utilizzando AWS Managed Microsoft AD

AWS Directory Service crea una Active Directory completamente gestita in AWS Cloud. Quando viene creata una directory AWS Managed Microsoft AD, AWS Directory Service crea automaticamente due controller di dominio e i server Domain Name System (DNS). 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 crei una directory AWS Managed Microsoft AD, AWS Directory Service esegue le seguenti operazioni:

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

    Nota

    Assicurati di salvare questa password in quanto non viene archiviata da AWS Directory Service. È possibile reimpostarla ma non recuperarla.

  • Crea un gruppo di sicurezza per i controller della directory.

Quando avvii AWS Managed Microsoft AD, AWS crea un'unità organizzativa che contiene tutti gli oggetti della directory. Questa unità organizzativa ha lo stesso nome NetBIOS che hai immesso al momento della creazione della directory e si trova nella root del dominio, che è di proprietà e gestita da AWS.

L'account Admin creato con la directory AWS Managed Microsoft AD dispone delle autorizzazioni per le attività amministrative più comuni per l'unità organizzativa, tra cui:

  • Creazione, aggiornamento o eliminazione di utenti

  • Aggiunta di risorse al tuo dominio, come file o server di stampa, quindi assegnazione delle autorizzazioni per tali risorse a utenti e dell'UO

  • Creazione di unità organizzative e container aggiuntivi

  • Delega dell'autorità

  • Ripristino degli oggetti eliminati dal cestino di Active Directory

  • Esegui PowerShell moduli Windows AD e DNS 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. Accedi alla AWS Management Console e apri la console AWS Directory Service all'indirizzo https://console.aws.amazon.com/directoryservicev2/.

  2. Nel riquadro di navigazione, seleziona Directories (Directory) e quindi Set up directory (Configura la directory).

  3. Scegli AWS Managed Microsoft AD. AWS Managed Microsoft AD è l'unica opzione che è attualmente possibile utilizzare con Amazon RDS.

  4. Immettere le seguenti informazioni:

    Nome DNS directory

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

    Nome NetBIOS della directory

    Nome breve per la directory, ad esempio CORP.

    Descrizione della directory

    (Opzionale) Una descrizione della directory.

    Password amministratore

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

    La password dell'amministratore della directory e 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)

    La password dell'amministratore immessa nuovamente.

  5. Seleziona Avanti.

  6. Immettere le seguenti informazioni nella sezione Networking (Rete) e quindi scegliere Next (Avanti):

    VPC

    VPC per la directory. Crea il cluster di database Aurora MySQL in questo stesso VPC.

    Sottoreti

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

  7. Esaminare le informazioni relative alla directory e apportare eventuali modifiche. Quando le informazioni sono corrette, scegli Create Directory (Crea directory).

    Pagina dei dettagli della directory durante la creazione

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 il nome della directory nell'elenco di directory. Prendi nota del valore di ID directory perché è necessario quando crei o modifichi il cluster di database Aurora MySQL.

ID directory nella pagina Dettagli della directory

Fase 2: (facoltativa) creazione di un trust per una Active Directory on-premise

Se non prevedi di utilizzare Microsoft Active Directory locale, passa a Fase 3: creazione di un ruolo IAM per l'utilizzo da parte di Amazon Aurora.

Per ottenere l'autenticazione Kerberos utilizzando Active Directory on-premise, devi creare una relazione di dominio trusting usando un trust tra foreste tra Microsoft Active Directory on-premise e la directory AWS Managed Microsoft AD (creata in Fase 1: creazione di una directory utilizzando AWS Managed Microsoft AD). Il trust può essere unidirezionale, in cui la directory AWS Managed Microsoft AD 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 di trust tramite AWS Directory Service, consulta Quando creare una relazione di trust nella Guida all’amministrazione di AWS Directory Service.

Nota

Se utilizzi una Microsoft Active Directory locale:

  • I client Windows devono connettersi utilizzando il nome del dominio di AWS Directory Service nell'endpoint anziché rds.amazonaws.com. Per ulteriori informazioni, consulta Connessione ad Aurora MySQL con l'autenticazione Kerberos.

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

  • Per i database globali:

    • I client Windows possono connettersi solo con endpoint di istanza o cluster nella Regione AWS primaria del database globale.

    • I client Windows non possono connettersi utilizzando gli endpoint del cluster nelle Regioni AWS secondarie.

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: creazione di un ruolo IAM per l'utilizzo da parte di Amazon Aurora

Affinché Amazon Aurora richiami AWS Directory Service per tuo conto, devi disporre di un ruolo AWS Identity and Access Management (IAM) che utilizzi la policy IAM gestita AmazonRDSDirectoryServiceAccess. Questo ruolo permette ad Aurora di effettuare chiamate ad AWS Directory Service.

Quando crei un cluster di database utilizzando la AWS Management Console e disponi dell'autorizzazione iam:CreateRole, la console crea automaticamente il ruolo. 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 IAM, scegli Directory Service e collega ad esso la policy gestita AWS AmazonRDSDirectoryServiceAccess.

Per ulteriori informazioni sulla creazione di ruoli IAM per un servizio, consulta Creazione di un ruolo per delegare le autorizzazioni a un servizio AWS nella Guida per l'utente di IAM.

Facoltativamente, puoi creare policy con le autorizzazioni richieste anziché utilizzare la policy IAM gestita AmazonRDSDirectoryServiceAccess. 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

È possibile creare utenti con lo strumento Utenti Active Directory e computer. Questo strumento fa parte degli strumenti Active Directory Domain Services e Active Directory Lightweight Directory Services. Gli utenti possono essere individui singoli o entità che hanno accesso alla tua directory.

Per creare un utente in una directory AWS Directory Service, usa un'istanza on-premise o Amazon EC2 basata su Microsoft Windows che viene aggiunta alla tua directory AWS Directory Service. Devi anche essere connesso all'istanza come utente che dispone dei privilegi per creare utenti. Per ulteriori informazioni, consulta Gestione di utenti e gruppi in AWS Managed Microsoft AD nella AWS Directory Service - Guida di amministrazione.

Fase 5: creazione o modifica di un cluster di database Aurora MySQL

Crea o modifica un cluster di database Aurora MySQL da usare con la directory. Puoi utilizzare la console, AWS CLI o l'API 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 i cluster di database Aurora MySQL in un VPC. Il cluster di database può trovarsi nello stesso VPC della directory o in un VPC diverso. Il VPC del cluster di database deve disporre di un gruppo di sicurezza VPC che consenta la comunicazione in uscita verso la directory.

Quando utilizzi la console per creare, modificare o ripristinare un cluster di database, scegli Autenticazione Kerberos nella sezione Autenticazione database. Scegli Browse Directory (Sfoglia directory) quindi seleziona la directory oppure scegli Create a new directory (Crea una nuova directory).

Impostazione dell'autenticazione Kerberos durante la creazione di un cluster di database

Puoi utilizzare la AWS CLI o l'API di RDS per associare un cluster di database a una directory. Per consentire al cluster di database di utilizzare la directory del dominio che hai creato sono necessari i seguenti parametri:

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

UnixPer, o: Linux macOS

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --domain d-ID \ --domain-iam-role-name role-name

Per Windows:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --domain d-ID ^ --domain-iam-role-name role-name
Importante

Se modifichi un cluster di database per abilitare l'autenticazione Kerberos, riavvia le istanze database di lettura dopo aver apportato la modifica.

Fase 6: creazione di utenti Aurora MySQL che utilizzano l'autenticazione Kerberos

Il cluster di database viene aggiunto al dominio AWS Managed Microsoft AD. Pertanto, puoi creare utenti Aurora MySQL dagli utenti di Active Directory nel tuo dominio. Le autorizzazioni del database vengono gestite tramite autorizzazioni Aurora MySQL standard concesse e revocate da questi utenti.

È possibile consentire a un utente di Active Directory di autenticarsi con Aurora MySQL. Per fare ciò, utilizza innanzitutto le credenziali utente principale Amazon RDS per connetterti al cluster di database Aurora MySQL come con qualsiasi altro cluster di database. Dopo aver eseguito l'accesso, crea un utente autenticato esternamente con l'autenticazione Kerberos in Aurora MySQL come illustrato di seguito:

CREATE USER user_name@'host_name' IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name';
  • Sostituisci user_name con il nome utente. Gli utenti (persone e applicazioni) del tuo dominio ora possono connettersi al cluster di database da un computer client associato al dominio utilizzando l'autenticazione Kerberos.

  • Sostituisci host_name con il nome host. È possibile utilizzare % come carattere jolly. È inoltre possibile usare indirizzi IP specifici per il nome host.

  • Sostituisci realm_name con il nome del realm della directory del dominio. Il nome del realm è in genere uguale al nome di dominio DNS in lettere maiuscole, ad esempio CORP.EXAMPLE.COM. Un realm è un gruppo di sistemi che utilizzano lo stesso Kerberos Key Distribution Center.

L'esempio seguente crea un utente del database con il nome Admin che esegue l'autenticazione in Active Directory con il nome del realm MYSQL.LOCAL.

CREATE USER Admin@'%' IDENTIFIED WITH 'authentication_kerberos' BY 'MYSQL.LOCAL';

Modifica di un accesso Aurora MySQL esistente

È possibile modificare un accesso Aurora MySQL esistente per utilizzare l'autenticazione Kerberos usando la seguente sintassi:

ALTER USER user_name IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name';

Fase 7: configurazione di un client MySQL

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

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

  2. Verifica che il traffico scorra senza problemi tra l'host 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.

  3. Verifica che il traffico scorra senza problemi tra l'host client e l'istanza database sulla porta del database. Ad esempio, utilizza mysql 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 on-premise.

[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

Fase 8: (facoltativo) configurazione il confronto dei nomi utente senza distinzione tra maiuscole e minuscole

Per impostazione predefinita, a livello di distinzione tra maiuscole e minuscole, il nome utente del database MySQL deve corrispondere a quello dell'accesso di Active Directory. Tuttavia, ora puoi utilizzare il confronto dei nomi utente senza distinzione tra maiuscole e minuscole con il plugin authentication_kerberos. A tale scopo, devi impostare il parametro authentication_kerberos_caseins_cmp del cluster database su true.

Utilizzo del confronto dei nomi utente senza distinzione tra maiuscole e minuscole
  1. Crea un gruppo di parametri per il cluster database personalizzato. Seguire le procedure indicate in Creazione di un gruppo di parametri del cluster database.

  2. Modifica il nuovo gruppo di parametri per impostare il valore di authentication_kerberos_caseins_cmp su true. Seguire le procedure indicate in Modifica di parametri in un gruppo di parametri cluster database.

  3. Associa il gruppo di parametri del cluster di database al cluster database Aurora MySQL. Seguire le procedure indicate in Associazione di un gruppo di parametri del cluster di database a un cluster database.

  4. Riavviare il cluster database.