Configurazione dell'autenticazione di Windows per le istanze RDS Custom per SQL Server - Amazon Relational Database Service

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 di Windows per le istanze RDS Custom per SQL Server

È consigliabile creare un'unità organizzativa dedicata e credenziali di servizio relative a tale unità organizzativa per tutti coloro Account AWS che possiedono un'istanza DB RDS Custom for SQL Server aggiunta al proprio dominio AD. Dedicando un'unità organizzativa e le credenziali di servizio, si evitano conflitti di autorizzazione e si segue il principio del privilegio minimo.

Le politiche di gruppo a livello di Active Directory potrebbero entrare in conflitto con le automazioni e le autorizzazioni. AWS È consigliabile selezionare i GPO che si applicano solo all'unità organizzativa creata per RDS Custom for SQL Server.

  • Per creare un utente di dominio OU e AD in un AD autogestito o locale, è possibile connettere il controller di dominio come amministratore di dominio.

  • Per creare utenti e gruppi in una AWS Directory Service directory, devi essere connesso a un'istanza di gestione e devi inoltre accedere come utente con privilegi per creare utenti e gruppi. Per ulteriori informazioni, vedere Gestione di utenti e gruppi AWS Managed Microsoft AD nella Guida all'AWS Directory Service amministrazione.

  • Per gestire la tua Active Directory dall'istanza di Amazon EC2 Windows Server, devi installare i servizi di dominio Active Directory e gli strumenti dei servizi Active Directory Lightweight Directory sull' EC2 istanza. Per ulteriori informazioni, consulta Installazione degli strumenti di amministrazione di Active Directory AWS Managed Microsoft AD nella Guida all'AWS Directory Service amministrazione.

  • Si consiglia di installare questi strumenti su un' EC2 istanza separata per l'amministrazione e non sull'istanza DB RDS Custom for SQL Server per semplificare l'amministrazione.

Di seguito sono riportati i requisiti per un account di servizio di dominio AD:

  • È necessario disporre di un account di servizio nel dominio AD con autorizzazioni delegate per aggiungere computer al dominio. Un account di servizio di dominio è un account utente nel tuo AD che dispone dell'autorizzazione delegata per eseguire determinate attività.

  • Delega le seguenti autorizzazioni all'account del servizio di dominio nell'unità organizzativa a cui stai unendo l'istanza di RDS Custom for SQL Server a:

    • Capacità convalidata di scrivere sul nome host DNS

    • Capacità convalidata di scrivere sul nome principale del servizio

    • Creazione ed eliminazione degli oggetti computer

  • Per AD autogestito e locale, l'account del servizio di dominio deve essere un membro del gruppo "AWS Delegated Domain Name System Administrators».

  • Infatti AWS Managed Microsoft AD, l'account del servizio di dominio deve essere membro del gruppo "». DnsAdmins

Si tratta del set minimo di autorizzazioni richiesto per unire oggetti informatici a AD e autogestiti. AWS Managed Microsoft AD Per ulteriori informazioni, vedere Errore: accesso negato quando utenti non amministratori a cui è stato delegato il controllo tentano di aggiungere computer a un controller di dominio nella documentazione di Microsoft Windows Server.

Importante

Non spostare gli oggetti del computer creati da RDS Custom for SQL Server nell'unità organizzativa (OU) dopo la creazione dell'istanza DB. Lo spostamento degli oggetti associati potrebbe causare una configurazione errata dell'istanza DB di RDS Custom for SQL Server. Se devi spostare gli oggetti computer creati da Amazon RDS, usa l'DBInstanceazione Modifica per modificare i parametri del dominio con la posizione desiderata degli oggetti del computer.

Fase 1: crea un'unità organizzativa (OU) nel tuo AD

Utilizza i seguenti passaggi per creare un'unità organizzativa nel tuo AD:

Crea un'unità organizzativa nel tuo AD
  1. Connect al tuo dominio AD come amministratore di dominio.

  2. Apri Utenti e computer di Active Directory e seleziona il dominio in cui desideri creare l'unità organizzativa.

  3. Fai clic con il pulsante destro del mouse sul dominio e scegli Nuovo, quindi Unità organizzativa.

  4. Inserisci un nome per l'unità operativa.

    Abilita Proteggi il contenitore dall'eliminazione accidentale.

  5. Scegli OK. La nuova unità organizzativa viene visualizzata sotto il dominio.

Infatti AWS Managed Microsoft AD, il nome di questa unità organizzativa si basa sul nome NetBIOS digitato durante la creazione della directory. Questa unità organizzativa è di proprietà AWS e contiene tutti gli oggetti di directory AWS correlati all'utente, sui quali è concesso il pieno controllo. Per impostazione predefinita, in questa unità organizzativa OUs esistono due elementi secondari, vale a dire Computer e Users. Le novità OUs create da RDS Custom sono un elemento secondario dell'unità organizzativa basata su NetBIOS.

Fase 2: Creare un utente di dominio AD

Le credenziali utente del dominio vengono utilizzate per il segreto in Secrets Manager.

Crea un utente di dominio AD nel tuo AD
  1. Apri Utenti e computer di Active Directory e seleziona il dominio e l'unità organizzativa in cui desideri creare l'utente.

  2. Fai clic con il pulsante destro del mouse sull'oggetto Utenti, scegli Nuovo, quindi Utente.

  3. Immettere nome, cognome e nome di accesso per l'utente. Fai clic su Next (Successivo).

  4. Immetti una password per l'utente. Non selezionare L'utente deve cambiare la password al prossimo accesso o l'account è disabilitato. . Fai clic su Next (Successivo).

  5. Fai clic su OK. Il tuo nuovo utente appare sotto il tuo dominio.

Fase 3: Delega il controllo all'utente AD in modalità autogestita o AWS Managed Microsoft AD

Delega del controllo all'utente del dominio AD nel dominio
  1. Apri lo snap-in MMC Active Directory Users and Computers e seleziona il tuo dominio.

  2. Fai clic con il pulsante destro del mouse sull'unità organizzativa creata in precedenza e scegli Controllo delegato.

  3. Nel Delegation Control Wizard, fate clic su Avanti.

  4. Nella sezione Utenti o gruppi, fai clic su Aggiungi.

  5. Nella sezione Seleziona utenti, computer o gruppi, inserisci l'utente AD che hai creato e fai clic su Controlla nomi. Se il controllo degli utenti AD ha esito positivo, fai clic su OK.

  6. Nella sezione Utenti o gruppi, conferma che l'utente AD è stato aggiunto e fai clic su Avanti.

  7. Nella sezione Attività da delegare, scegli Crea un'attività personalizzata da delegare e fai clic su Avanti.

  8. Nella sezione Tipo di oggetto Active Directory:

    Scegliete ONly i seguenti oggetti nella cartella.

    Seleziona oggetti del computer

    Seleziona Crea oggetti selezionati in questa cartella

    Seleziona Elimina gli oggetti selezionati in questa cartella e fai clic su Avanti.

  9. Nella sezione Autorizzazioni:

    Mantieni selezionata l'opzione Generale.

    Seleziona Scrittura convalidata in nome host DNS.

    Seleziona Scrittura convalidata in nome principale servizio e fai clic su Avanti.

  10. In Completing the Delegation of Control Wizard, conferma le impostazioni e fai clic su Fine.

Fase 4: Creare un segreto

Crea il segreto nella stessa Account AWS regione che contiene l'istanza DB RDS Custom for SQL Server che desideri includere nella tua Active Directory. Memorizza le credenziali dell'utente del dominio AD creato in. Fase 2: Creare un utente di dominio AD

Console
  • In AWS Secrets Manager, scegli Memorizza un nuovo segreto.

  • Per Secret type (Tipo di segreto), scegli Other type of secret (Altro tipo di segreto).

  • Per le coppie chiave/valore, aggiungi due chiavi:

    • La prima chiave SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME e inserisci il nome del tuo utente AD (senza il prefisso del dominio) come valore.

    • Per la seconda chiave, inserisci SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD e inserisci la password per il tuo utente AD sul tuo dominio.

  • Per la chiave di crittografia, inserisci la stessa AWS KMS chiave utilizzata per creare l'istanza RDS Custom for SQL Server.

  • Per Nome segreto, scegli il nome segreto che inizia con do-not-delete-rds-custom- per consentire al profilo dell'istanza di accedere a questo segreto. SE desideri scegliere un nome diverso per il segreto, esegui l'aggiornamento RDSCustomInstanceProfile per accedere a Nome segreto.

  • (Facoltativo) In Descrizione, inserisci una descrizione per il nome del segreto.

  • Aggiungi i tag Key="AWSRDSCustom",Value="custom-sqlserver"

  • Fai clic su Salva, quindi su Avanti.

  • In Configura impostazioni di rotazione, non modificare i valori predefiniti e scegli Avanti.

  • Controlla le impostazioni relative al segreto e fai clic su Archivio.

  • Scegli il nuovo segreto e copia il valore per Secret ARN. Lo useremo nel passaggio successivo per configurare Active Directory.

CLI

Esegui il seguente comando nella tua CLI per creare un segreto:

# Linux based aws secretsmanager create-secret \ --name do-not-delete-rds-custom-DomainUserCredentails \ --description "Active directory user credentials for managing RDS Custom" \ --secret-string "{\"SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME\":\"tester\",\"SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD\":\"xxxxxxxx\"}" \ --kms-key-id <RDSCustomKMSKey> \ --tags Key="AWSRDSCustom",Value="custom-sqlserver" # Windows based aws secretsmanager create-secret ^ --name do-not-delete-rds-custom-DomainUserCredentails ^ --description "Active directory user credentials for managing RDS Custom" ^ --secret-string "{\"SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME\":\"tester\",\"SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD\":\"xxxxxxxx\"}" ^ --kms-key-id <RDSCustomKMSKey> ^ --tags Key="AWSRDSCustom",Value="custom-sqlserver"

Passaggio 5: creare o modificare un'istanza DB RDS Custom for SQL Server

Crea o modifica un'istanza DB RDS Custom for SQL Server da utilizzare con la tua directory. Puoi utilizzare la console, CLI o l'API RDS per associare un'istanza database a una directory. Questa operazione può essere eseguita in uno dei seguenti modi:

Nota

Se l'istanza di RDS Custom for SQL Server è già aggiunta manualmente a un AD, controlla le impostazioni e completa i passaggi da 1 a 4. Regole delle porte di configurazione della rete Validazione della rete Aggiorna il --domain-fqdn file--domain-ou, e --domain-auth-secret-arn al tuo AD, in modo che le credenziali e le configurazioni di accesso al dominio siano registrate con RDS Custom per monitorare, registrare CNAME e intraprendere azioni di ripristino.

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

  • Per il --domain-fqdn parametro, utilizzate il nome di dominio completo del vostro AD autogestito.

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

  • Per il --domain-auth-secret-arn parametro, utilizzate il valore dell'ARN segreto che avete creato.

Importante

Se modifichi un'istanza DB per aggiungerla o rimuoverla da un dominio AD autogestito oppure AWS Managed Microsoft AD, è necessario riavviare l'istanza DB affinché la modifica abbia effetto. Puoi scegliere di applicare le modifiche subito o attendere fino alla prossima finestra di manutenzione. La scelta dell'opzione Applica immediatamente causa tempi di inattività per un'istanza DB Single-AZ. Un cluster DB Multi-AZ esegue un failover prima di completare il riavvio. Per ulteriori informazioni, consulta Modifica di un'istanza Amazon RDS DB.

Il seguente comando CLI crea una nuova istanza DB RDS Custom for SQL Server e la aggiunge al dominio o gestito autonomamente. AWS Managed Microsoft AD

PerLinux, o: macOS Unix

aws rds create-db-instance \ --engine custom-sqlserver-se \ --engine-version 15.00.4312.2.v1 \ --db-instance-identifier my-custom-instance \ --db-instance-class db.m5.large \ --allocated-storage 100 --storage-type io1 --iops 1000 \ --master-username my-master-username \ --master-user-password my-master-password \ --kms-key-id my-RDSCustom-key-id \ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \ --domain-fqdn "corp.example.com" \ --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" \ --db-subnet-group-name my-DB-subnet-grp \ --vpc-security-group-ids my-securitygroup-id \ --no-publicly-accessible \ --backup-retention-period 3 \ --port 8200 \ --region us-west-2 \ --no-multi-az

Per Windows:

aws rds create-db-instance ^ --engine custom-sqlserver-se ^ --engine-version 15.00.4312.2.v1 ^ --db-instance-identifier my-custom-instance ^ --db-instance-class db.m5.large ^ --allocated-storage 100 --storage-type io1 --iops 1000 ^ --master-usernamemy-master-username ^ --master-user-password my-master-password ^ --kms-key-id my-RDSCustom-key-id ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^ --domain-fqdn "corp.example.com" ^ --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" ^ --db-subnet-group-name my-DB-subnet-grp ^ --vpc-security-group-ids my-securitygroup-id ^ --no-publicly-accessible ^ --backup-retention-period 3 ^ --port 8200 ^ --region us-west-2 ^ --no-multi-az
Importante

Se il NetBIOS for AWS Managed Microsoft AD è corpexample, viene visualizzato come un'unità organizzativa vera e propria. Qualsiasi nuova unità organizzativa creata in precedenza verrà visualizzata come unità organizzativa annidata. Per AWS Managed Microsoft AD, impostare su--domain-ou. "OU=RDSCustomOU,OU=corpexample,DC=corp,DC=example,DC=com"

Il comando seguente modifica un'istanza DB RDS Custom for SQL Server esistente per utilizzare un dominio Active Directory.

PerLinux, omacOS: Unix

aws rds modify-db-instance \ --db-instance-identifier my-custom-instance \ --domain-fqdn "corp.example.com" \ --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" \

Per Windows:

aws rds modify-db-instance ^ --db-instance-identifier my-custom-instance ^ --domain-fqdn "corp.example.com" ^ --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" ^

Il seguente comando CLI rimuove un'istanza DB RDS Custom for SQL Server da un dominio Active Directory.

PerLinux, omacOS: Unix

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

Per Windows:

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

Quando usi la console per creare o modificare l'istanza, fai clic su Abilita l'autenticazione di Windows di Microsoft SQL Server per visualizzare le seguenti opzioni.

Directory di autenticazione Microsoft SQL Server Windows

È tua responsabilità assicurarti che il nome FQDN del tuo dominio venga risolto negli indirizzi IP del controller di dominio. Se IPs i controller di dominio non si risolvono, le operazioni di aggiunta al dominio hanno esito negativo, ma la creazione dell'istanza RDS Custom per SQL Server ha esito positivo. Per informazioni sulla risoluzione dei problemi, consulta Risoluzione dei problemi di Active Directory.

Passaggio 6: creazione dell'accesso a 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 DB è aggiunta al dominio AD, è possibile effettuare il provisioning degli accessi e degli utenti di SQL Server. Puoi eseguire questa operazione dall'utilità AD users and groups nel tuo dominio AD. 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 utente AD possa autenticarsi con SQL Server, deve esistere un accesso Windows a SQL Server per l'utente AD o per un gruppo Active Directory di cui l'utente è membro. Il controllo granulare degli accessi viene gestito assegnando o revocando le autorizzazioni per questi login di SQL Server. Un utente AD che non dispone di un accesso a SQL Server o appartiene a un gruppo AD con tale accesso non può accedere all'istanza DB di SQL Server.

L'ALTER ANY LOGINautorizzazione è richiesta per creare un accesso AD SQL Server. Se non hai creato alcun accesso con questa autorizzazione, connettiti come utente principale dell'istanza DB utilizzando l'autenticazione di SQL Server e crea gli accessi di AD 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 utente o un gruppo AD.

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

Gli utenti (sia umani che applicazioni) del dominio possono ora connettersi all'istanza di RDS Custom for SQL Server da un computer client aggiunto al dominio utilizzando l'autenticazione Windows.

Passaggio 7: utilizzo dell'autenticazione Kerberos o NTLM

Autenticazione NTLM tramite endpoint RDS

Ogni istanza DB Amazon RDS ha un endpoint e ogni endpoint ha un nome DNS e un numero di porta per l'istanza DB. 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 tramite l'autenticazione NTLM, è necessario connettersi all'endpoint RDS.

Durante la manutenzione pianificata del database o l'interruzione non pianificata del servizio, Amazon RDS esegue automaticamente il failover sul database up-to-date secondario in modo che le operazioni possano riprendere rapidamente senza interventi manuali. Le istanze primarie e secondarie utilizzano lo stesso endpoint, il cui indirizzo di rete fisico passa a quello secondario 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 Custom for SQL Server richiede la creazione di connessioni a uno specifico Service Principal Name (SPN). Tuttavia, dopo un evento di failover, l'applicazione potrebbe non essere a conoscenza del nuovo SPN. Per risolvere questo problema, RDS Custom for SQL Server offre un endpoint basato su Kerberos.

L'endpoint basato su Kerberos segue un formato specifico. Se l'endpoint RDS lo è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 è, l'endpoint basato su Kerberos lo sarebbe. corp-ad.company.com 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 di SQL Server utilizzando Kerberos, anche dopo un evento di failover, poiché l'endpoint viene aggiornato automaticamente in modo che punti al nuovo SPN dell'istanza primaria di SQL Server.

Trovare il proprio CNAME

Per trovare il tuo CNAME, connettiti al controller di dominio e apri DNS Manager. Vai a Forward Lookup Zones e al tuo FQDN.

Naviga tra premi, aws-region e hash specifici per account e regione.

Se si connette l' EC2 istanza RDS Custom e si tenta di connettersi al database localmente utilizzando CNAME, la connessione utilizzerà l'autenticazione NTLM anziché Kerberos.

Se dopo aver connesso CNAME dal client remoto, viene restituita una connessione NTLM, controlla se le porte richieste sono consentite nell'elenco.

Per verificare se la tua connessione utilizza Kerberos, esegui la seguente query:

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