Configurazione di Kerberos per istanze database Oracle - 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 di Kerberos per istanze database Oracle

Utilizzabile AWS Directory Service for Microsoft Active Directory, chiamato anche AWS Managed Microsoft AD, per configurare l'autenticazione Kerberos per un'istanza Oracle DB. Per configurare Autenticazione Kerberos, completa le fasi seguenti:

Nota

Durante la configurazione, RDS crea un utente del database Oracle denominato managed_service_user@example.com con il CREATE SESSION privilegio, dove example.com è il tuo nome di dominio. Questo utente corrisponde all'utente creato dal servizio directory all'interno di Active Directory gestito. Periodicamente, RDS utilizza le credenziali fornite dal Directory Service per accedere al database Oracle. Successivamente, distrugge RDS immediatamente la cache dei ticket.

Fase 1: Creare una directory utilizzando il 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 Domain Name System (DNS) per tuo conto. I server di directory vengono creati in diverse sottoreti in un. VPC Questa ridondanza assicura che la directory rimanga accessibile anche se si verifica un errore.

Quando crei una AWS Managed Microsoft AD directory, AWS Directory Service esegue le seguenti attività per tuo conto:

  • Configura un Active Directory all'interno diVPC.

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

    Nota

    Assicurati di salvare questa password. AWS Directory Service non la memorizza. È possibile reimpostarla ma non recuperarla.

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

Quando si avvia un AWS Managed Microsoft AD, AWS crea un'unità organizzativa (OU) che contiene tutti gli oggetti della directory. Questa unità organizzativa ha il BIOS nome di rete digitato al momento della creazione della directory e si trova nella radice del dominio. La radice del dominio è di proprietà e gestita da AWS.

L'account amministratore 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

  • Crea contenitori aggiuntivi OUs

  • Delega dell'autorità

  • Ripristino degli oggetti eliminati dal cestino di Active Directory

  • Esegui i PowerShell moduli AD e DNS Windows sul servizio Web Active Directory

L'account Admin dispone inoltre dei diritti per eseguire le seguenti attività estese a tutto il dominio:

  • Gestione DNS delle configurazioni (aggiunta, rimozione o aggiornamento di record, zone e server d'inoltro)

  • Visualizza i registri degli eventi DNS

  • visualizzazione di log di eventi di sicurezza.

Per creare la directory, usa il AWS Management Console AWS CLI, o il AWS Directory Service API. Assicurati di aprire le porte in uscita pertinenti nel gruppo di sicurezza delle directory in modo che la directory possa comunicare con l'istanza database Oracle.

Per creare una directory con AWS Managed Microsoft AD
  1. Accedi a AWS Management Console e apri la AWS Directory Service console 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 attualmente utilizzabile con AmazonRDS.

  4. Immetti le seguenti informazioni:

    DNSNome della directory

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

    BIOSNome della directory Net

    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 digitata nuovamente.

  5. Scegli Next (Successivo).

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

    VPC

    Il VPC per la directory. Crea l'istanza Oracle DB nella stessa istanzaVPC.

    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. Prendere nota del valore di Directory ID (ID directory) perché sarà necessario quando si crea o si modifica l'istanza database Oracle.

Pagina dei dettagli della directory

Fase 2: creazione di un trust

Se prevedi di AWS Managed Microsoft AD utilizzarla solo, passa aPassaggio 3: configurare le IAM autorizzazioni per Amazon RDS.

Per abilitare l'autenticazione Kerberos utilizzando l'Active Directory autogestito, è necessario creare una relazione di trust forestale tra Active Directory autogestita e quella AWS Managed Microsoft AD creata nel passaggio precedente. La fiducia può essere unidirezionale, laddove si AWS Managed Microsoft AD affida all'Active Directory autogestito. Il trust può anche essere bidirezionale, in cui entrambe le Active Directory si considerano reciprocamente attendibili. Per ulteriori informazioni sulla configurazione dei trust forestali utilizzando AWS Directory Service, vedere Quando creare una relazione di fiducia nella Guida all'amministrazione.AWS Directory Service

Passaggio 3: configurare le IAM autorizzazioni per Amazon RDS

AWS Directory Service Per chiamarti, Amazon RDS richiede un IAM ruolo che utilizzi la IAM policy gestitaAmazonRDSDirectoryServiceAccess. Questo ruolo consente RDS ad Amazon di effettuare chiamate verso AWS Directory Service.

Nota

Affinché il ruolo consenta l'accesso, l'endpoint AWS Security Token Service (AWS STS) deve essere attivato nel modo corretto Regione AWS per il tuo Account AWS. AWS STS Gli endpoint sono attivi per impostazione predefinita in tutti Regioni AWS gli ambienti e puoi utilizzarli senza ulteriori azioni. Per ulteriori informazioni, consulta Attivazione e disattivazione AWS STSRegione AWS in un capitolo della Guida per l'utente. IAM

Creare un ruolo IAM

Quando si crea un'istanza DB utilizzando e l'utente della console dispone dell'iam:CreateRoleautorizzazione, la console rds-directoryservice-kerberos-access-role viene creata automaticamente. AWS Management Console Altrimenti, è necessario creare il IAM ruolo manualmente. Quando crei un IAM ruolo manualmenteDirectory Service, scegli e allega la policy AWS gestita AmazonRDSDirectoryServiceAccess ad esso.

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

Nota

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

Creazione manuale di una politica di IAM attendibilità

Facoltativamente, è possibile creare politiche sulle risorse con le autorizzazioni richieste anziché utilizzare la politica gestitaIAM. AmazonRDSDirectoryServiceAccess Specifica sia directoryservice.rds.amazonaws.com che rds.amazonaws.com come principali.

Per limitare le autorizzazioni concesse da Amazon a RDS un altro servizio per una risorsa specifica, consigliamo di utilizzare le chiavi di contesto aws:SourceArne le chiavi di contesto della condizione aws:SourceAccountglobale nelle politiche delle risorse. Il modo più efficace per proteggersi dal confuso problema dei deputati consiste nell'utilizzare la chiave di contesto ARN della condizione aws:SourceArn globale con una RDS risorsa Amazon completa. Per ulteriori informazioni, consulta Prevenzione del problema "confused deputy" tra servizi.

L'esempio seguente mostra come utilizzare le chiavi di contesto aws:SourceArn e aws:SourceAccount global condition in Amazon RDS per prevenire il problema del confuso vice.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:rds:us-east-1:123456789012:db:mydbinstance" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Per le regioni opzionali, devi anche includere un servizio principale per quella regione sotto forma didirectoryservice.rds.region_name.amazonaws.com. Ad esempio, nella regione africana (Città del Capo), utilizza la seguente politica di fiducia:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "directoryservice.rds.af-south-1.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:rds:af-south-1:123456789012:db:mydbinstance" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Il ruolo deve inoltre avere la seguente IAM politica.

{ "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 utenti utilizzando lo strumento Users and Computers (Utenti e computer) di Active Directory, che è uno degli strumenti Domain Services (Servizi di dominio) e Lightweight Directory Services (Servizi di Lightweight Directory) di Active Directory. In questo caso, gli utenti sono individui singoli o entità che hanno accesso alla tua directory.

Per creare utenti in una AWS Directory Service directory, devi essere connesso a un'EC2istanza Amazon basata su Windows che fa parte della AWS Directory Service directory. Allo stesso tempo, devi essere connesso come un utente che dispone di privilegi per creare utenti. Per ulteriori informazioni sulla creazione di utenti Microsoft Active Directory, consulta Gestione di utenti e gruppi in AWS Managed Microsoft AD nella Guida all’amministrazione di AWS Directory Service .

Passaggio 5: abilitare il VPC traffico incrociato tra la directory e l'istanza DB

Se intendi collocare la directory e l'istanza DB nella stessa posizioneVPC, salta questo passaggio e passa aFase 6: creazione o modifica di un'istanza database Oracle.

Se si prevede di localizzare la directory e l'istanza DB in AWS account diversi oppure VPCs configurare il VPC traffico incrociato utilizzando il VPC peering o il AWS Transit Gateway. La procedura seguente abilita il traffico tra un VPCs utilizzo e l'altro del VPC peering. Segui le istruzioni riportate in Cos'è il VPC peering? nella Amazon Virtual Private Cloud Peering Guide.

Per abilitare il VPC traffico incrociato utilizzando il peering VPC
  1. Imposta regole di VPC routing appropriate per garantire che il traffico di rete possa fluire in entrambe le direzioni.

  2. Assicurarsi che il gruppo di protezione dell'istanza database possa ricevere traffico in entrata dal gruppo di sicurezza della directory. Per ulteriori informazioni, consulta Best practice per AWS Managed Microsoft AD nella Guida all’amministrazione di AWS Directory Service .

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

Se la directory è di proprietà di un altro AWS account, è necessario 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'istanza database Oracle

Crea o modifica un'istanza database Oracle per l'utilizzo con la directory. È possibile utilizzare la console o associare un'istanza DB RDS API a una directory. CLI Questa operazione può essere eseguita in uno dei seguenti modi:

L'autenticazione Kerberos è supportata solo per le istanze Oracle DB in a. VPC L'istanza DB può trovarsi nella VPC stessa directory o in un'altra. VPC Quando crei o modifichi l'istanza database, completa le seguenti operazioni:

  • Specifica l'identificativo del dominio (identificativo d-*) generato al momento della creazione della directory.

  • Fornisci il nome del IAM ruolo che hai creato.

  • Assicurati che il gruppo di sicurezza dell'istanza database possa ricevere traffico in ingresso dal gruppo di sicurezza della directory e inviare traffico in uscita alla directory.

Quando utilizzi la console per creare un'istanza database, scegli Password and Kerberos authentication (Password e autenticazione Kerberos) nella sezione Database authentication (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'istanza database

Quando utilizzi la console per modificare o ripristinare un'istanza database, scegli la directory nella sezione Kerberos authentication (Autenticazione Kerberos) oppure scegli Create a new directory (Crea una nuova directory).

Impostazione di autenticazione Kerberos durante la modifica o il ripristino di un'istanza database

Quando si utilizza il AWS CLI, sono necessari i seguenti parametri affinché l'istanza 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 --domain-iam-role-name parametro, utilizzate il ruolo creato che utilizza la IAM policy gestitaAmazonRDSDirectoryServiceAccess.

Ad esempio, il CLI comando seguente modifica un'istanza DB per utilizzare una directory.

In Linux, macOS, oppure Unix:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --domain d-ID \ --domain-iam-role-name role-name

In Windows:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --domain d-ID ^ --domain-iam-role-name role-name
Importante

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

Nota

MANAGED_SERVICE_USER è un account di servizio il cui nome viene generato casualmente da Directory Service for. RDS Durante la configurazione dell'autenticazione Kerberos, RDS per Oracle crea un utente con lo stesso nome e gli assegna il privilegio. CREATE SESSION L'utente Oracle DB viene identificato esternamente come MANAGED_SERVICE_USER@EXAMPLE.COMdove: EXAMPLE.COM è il nome del dominio. Periodicamente, RDS utilizza le credenziali fornite dal Directory Service per accedere al database Oracle. Successivamente, distrugge RDS immediatamente la cache dei ticket.

Fase 7: creazione di login Oracle di autenticazione Kerberos

Utilizza le credenziali dell'utente RDS principale di Amazon per connetterti all'istanza DB Oracle come fai con qualsiasi altra istanza DB. L'istanza DB viene aggiunta al AWS Managed Microsoft AD dominio. Pertanto, puoi eseguire il provisioning di login e utenti Oracle da utenti e gruppi Microsoft Active Directory nel dominio. Per gestire autorizzazioni del database, concedi e revoca autorizzazioni Oracle standard a questi login.

Per consentire a un utente di Microsoft Active Directory di eseguire l'autenticazione con Oracle
  1. Connect all'istanza Oracle DB utilizzando le credenziali dell'utente RDS master Amazon.

  2. Crea un utente autenticato esternamente nel database Oracle.

    Nell'esempio seguente, sostituisci KRBUSER@CORP.EXAMPLE.COM con il nome utente e il nome di dominio.

    CREATE USER "KRBUSER@CORP.EXAMPLE.COM" IDENTIFIED EXTERNALLY; GRANT CREATE SESSION TO "KRBUSER@CORP.EXAMPLE.COM";

    Gli utenti (persone e applicazioni) del dominio possono ora connettersi all'istanza database Oracle da un computer client associato al dominio utilizzando l'autenticazione Kerberos.

Fase 8: configurazione di un client Oracle

Per configurare un client Oracle, devi rispettare i requisiti seguenti:

  • Crea un file di configurazione denominato krb5.conf (Linux) o krb5.ini (Windows) che faccia riferimento al dominio. Per utilizzare questo file di configurazione, configura il client Oracle.

  • Verifica che il traffico possa fluire tra l'host del client e AWS Directory Service la DNS porta 53 suTCP/UDP, le porte Kerberos (88 e 464 per quelle gestite AWS Directory Service) sulla porta TCP 389. LDAP TCP

  • Verifica che il traffico scorra senza problemi tra l'host client e l'istanza database sulla porta del database.

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

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

Di seguito è riportato un esempio di contenuto per Microsoft AD on-premise. Nel file krb5.conf o krb5.ini, sostituisci on-prem-ad-server-name con il nome del server AD locale.

[libdefaults] default_realm = ONPREM.COM [realms] AWSAD.COM = { kdc = awsad.com admin_server = awsad.com } ONPREM.COM = { kdc = on-prem-ad-server-name admin_server = on-prem-ad-server-name } [domain_realm] .awsad.com = AWSAD.COM awsad.com= AWSAD.COM .onprem.com = ONPREM.COM onprem.com= ONPREM.COM
Nota

Dopo aver configurato il file krb5.ini o krb5.conf, riavvia il server.

Di seguito è riportato un esempio di contenuto sqlnet.ora per una configurazione *Plus: SQL

SQLNET.AUTHENTICATION_SERVICES=(KERBEROS5PRE,KERBEROS5) SQLNET.KERBEROS5_CONF=path_to_krb5.conf_file

Per un esempio di configurazione SQL Developer, vedere il Documento 1609359.1 di Oracle Support.