Unione di un’istanza database ad Active Directory autogestito - Amazon Relational Database Service

Unione di un’istanza database ad Active Directory autogestito

Per unire l’istanza database RDS per SQL Server ad AD autogestito:

Fase 1: creazione o modifica di un'istanza database SQL Server

È possibile utilizzare la console, l'interfaccia della linea di comando o l'API RDS per associare un'istanza database RDS per SQL Server a un dominio AD gestito dal cliente. Questa operazione può essere eseguita in uno dei seguenti modi:

Quando si utilizza AWS CLI, sono necessari i seguenti parametri per consentire all’istanza database di utilizzare il dominio Active Directory autogestito creato:

  • Per il parametro --domain-fqdn, utilizza il nome di dominio completo (FQDN) del dominio AD autogestito.

  • Per il parametro --domain-ou, utilizza l'unità organizzativa creata nel dominio AD gestito dal cliente.

  • Per il parametro --domain-auth-secret-arn, utilizza il valore riportato nel campo ARN segreto definito in una delle fasi precedenti.

  • Per il parametro --domain-dns-ips, utilizza gli indirizzi IPv4 primari e secondari dei server DNS per il dominio AD gestito dal cliente. Se non disponi di un indirizzo IP secondario del server DNS, inserisci l'indirizzo IP primario due volte.

I seguenti comandi CLI di esempio mostrano come creare, modificare e rimuovere un'istanza database RDS per SQL Server con un dominio AD gestito dal cliente.

Importante

Se modifichi un'istanza database per aggiungerla o rimuoverla da un dominio AD gestito dal cliente, è necessario riavviare l'istanza database affinché la modifica abbia effetto. Puoi scegliere di applicare le modifiche subito o attendere fino alla prossima finestra di manutenzione. La selezione dell'opzione Applica immediatamente causerà tempi di inattività per le istanze database Single-AZ. Un'istanza database Multi-AZ eseguirà un failover prima di completare il riavvio. Per ulteriori informazioni, consulta Utilizzo dell’impostazione della pianificazione delle modifiche.

Il seguente comando CLI crea una nuova istanza database RDS per SQL Server e la aggiunge a un dominio AD gestito dal cliente.

Per Linux, macOS o Unix:

aws rds create-db-instance \ --db-instance-identifier my-DB-instance \ --db-instance-class db.m5.xlarge \ --allocated-storage 50 \ --engine sqlserver-se \ --engine-version 15.00.4043.16.v1 \ --license-model license-included \ --master-username my-master-username \ --master-user-password my-master-password \ --domain-fqdn my_AD_domain.my_AD.my_domain \ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ --domain-dns-ips "10.11.12.13" "10.11.12.14"

Per Windows:

aws rds create-db-instance ^ --db-instance-identifier my-DB-instance ^ --db-instance-class db.m5.xlarge ^ --allocated-storage 50 ^ --engine sqlserver-se ^ --engine-version 15.00.4043.16.v1 ^ --license-model license-included ^ --master-username my-master-username ^ --master-user-password my-master-password ^ --domain-fqdn my-AD-test.my-AD.mydomain ^ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ ^ --domain-dns-ips "10.11.12.13" "10.11.12.14"

Il seguente comando CLI modifica un’istanza database RDS per SQL Server esistente in modo che utilizzi un dominio AD autogestito.

Per Linux, macOS o Unix:

aws rds modify-db-instance \ --db-instance-identifier my-DB-instance \ --domain-fqdn my_AD_domain.my_AD.my_domain \ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ --domain-dns-ips "10.11.12.13" "10.11.12.14"

Per Windows:

aws rds modify-db-instance ^ --db-instance-identifier my-DBinstance ^ --domain-fqdn my_AD_domain.my_AD.my_domain ^ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" ^ --domain-dns-ips "10.11.12.13" "10.11.12.14"

Il seguente comando CLI rimuove un’istanza database RDS per SQL Server da un dominio AD autogestito.

Per Linux, macOS o Unix:

aws rds modify-db-instance \ --db-instance-identifier my-DB-instance \ --disable-domain

Per Windows:

aws rds modify-db-instance ^ --db-instance-identifier my-DB-instance ^ --disable-domain

Fase 2: utilizzo dell’autenticazione Kerberos o NTLM

autenticazione NTLM

Ogni istanza database Amazon RDS dispone di un endpoint e ciascun endpoint è associato a un nome DNS e a un numero di porta per l’istanza database. Per connetterti all'istanza database tramite un'applicazione client SQL, devi conoscere il nome DNS e il numero di porta dell'istanza database. Per eseguire l’autenticazione NTLM, è necessario connettersi all’endpoint RDS o all’endpoint listener se si utilizza un’implementazione Multi-AZ.

Durante una manutenzione pianificata del database o un’interruzione non pianificata del servizio, Amazon RDS esegue automaticamente il failover nel database secondario aggiornato, in modo che le operazioni possano riprendere rapidamente senza intervento manuale. Le istanze primarie e secondarie utilizzano lo stesso endpoint, il cui indirizzo di rete fisico passa alla replica secondaria come parte del processo di failover. Non è necessario riconfigurare l'applicazione quando si verifica un failover.

Autenticazione Kerberos

L’autenticazione basata su Kerberos per RDS per SQL Server richiede che vengano effettuate connessioni a uno specifico nome del principale del servizio (SPN). Tuttavia, dopo un evento di failover, l’applicazione potrebbe non essere a conoscenza del nuovo SPN. Per risolvere questo problema, RDS per SQL Server offre un endpoint basato su Kerberos.

L’endpoint basato su Kerberos segue un formato specifico. Se l’endpoint RDS è rds-instance-name.account-region-hash.aws-region.rds.amazonaws.com, l’endpoint corrispondente basato su Kerberos sarebbe rds-instance-name.account-region-hash.aws-region.awsrds.fully qualified domain name (FQDN).

Ad esempio, se l’endpoint RDS è ad-test.cocv6zwtircu.us-east-1.rds.amazonaws.com e il nome di dominio è corp-ad.company.com, l’endpoint basato su Kerberos sarebbe ad-test.cocv6zwtircu.us-east-1.awsrds.corp-ad.company.com.

Questo endpoint basato su Kerberos può essere utilizzato per l’autenticazione con l’istanza SQL Server tramite Kerberos, anche dopo un evento di failover, poiché l’endpoint viene aggiornato automaticamente in modo che punti al nuovo SPN dell’istanza SQL Server primaria.

Individuazione del CNAME

Per individuare il CNAME, ci si connette al controller di dominio e si apre Gestione DNS. Andare a Inoltra zone di ricerca e al FQDN.

Navigare in awsrds, aws-region e hash specifico dell’account e della Regione.

Modifica della quantità di storage per un'istanza database

Se dopo aver connesso CNAME dal client remoto viene restituita una connessione NTLM, controllare se le porte richieste sono incluse nell’elenco delle porte consentite.

Per verificare che la connessione utilizzi Kerberos, eseguire la seguente query:

SELECT net_transport, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SSPID;

Se l’istanza restituisce una connessione NTLM al momento della connessione a un endpoint Kerberos, verificare la configurazione della rete e le configurazioni utente. Consultare Configurazione della connettività di rete.

Fase 3: creazione di account di accesso di SQL Server per l'autenticazione di Windows

Utilizza le credenziali dell'utente master Amazon RDS per eseguire la connessione all'istanza database SQL Server analogamente a quanto avviene con qualsiasi altra istanza database. Poiché l'istanza database viene aggiunta al dominio AD gestito dal cliente, puoi eseguire il provisioning degli account di accesso e degli utenti di SQL Server. Puoi eseguire questa operazione dall'utilità Utenti e gruppi AD nel dominio AD gestito dal cliente. Le autorizzazioni per il database vengono gestite tramite le autorizzazioni standard di SQL Server concesse e revocate in base a questi account di accesso Windows.

Affinché un account del servizio di dominio AD autogestito possa autenticarsi con SQL Server, è necessario che esista un accesso Windows a SQL Server per l’account del servizio di dominio AD autogestito o un gruppo AD autogestito di cui l’utente è membro. Il controllo granulare degli accessi viene gestito assegnando o revocando le autorizzazioni per questi login di SQL Server. Un account del servizio di dominio AD autogestito che non dispone di un accesso a SQL Server o non appartiene a un gruppo AD autogestito con tale accesso non può accedere all’istanza database SQL Server.

È necessaria l'autorizzazione ALTER ANY LOGIN per creare un accesso AD gestito dal cliente per SQL Server. Se non hai ancora creato un accesso con questa autorizzazione, esegui la connessione come utente principale dell'istanza database utilizzando l'autenticazione di SQL Server e quindi crea gli accessi AD gestiti dal cliente per SQL Server nel contesto dell'utente principale.

È possibile eseguire un comando DDL (Data Definition Language) come il seguente per creare un accesso a SQL Server per un gruppo o un account del servizio di dominio AD autogestito.

Nota

Specifica utenti o gruppi utilizzando il nome di accesso precedente a Windows 2000 nel formato my_AD_domain\my_AD_domain_user. Non puoi utilizzare un UPN (User Principle Name) nel formato my_AD_domain_user@my_AD_domain.

USE [master] GO CREATE LOGIN [my_AD_domain\my_AD_domain_user] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english]; GO

Per maggiori informazioni, consulta CREATE LOGIN (Transact-SQL) nella documentazione di Microsoft Developer Network.

Gli utenti (persone e applicazioni) del dominio possono ora connettersi all'istanza RDS per SQL Server da un computer client associato al dominio AD gestito dal cliente utilizzando l'autenticazione Windows.