Configuration de Kerberos pour les instances de base de données Oracle - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration de Kerberos pour les instances de base de données Oracle

Utilisé AWS Directory Service for Microsoft Active Directory, également appelé AWS Managed Microsoft AD, pour configurer l'authentification Kerberos pour une instance de base de données Oracle. Pour configurer l'authentification Kerberos, procédez comme suit :

Note

Au cours de l'installation, RDS crée un utilisateur de base de données Oracle nommé managed_service_user@example.com avec le CREATE SESSION privilège, où example.com est votre nom de domaine. Cet utilisateur correspond à l'utilisateur créé par Directory Service dans votre annuaire Active Directory géré. RDSUtilise régulièrement les informations d'identification fournies par le Directory Service pour se connecter à votre base de données Oracle. Ensuite, détruit RDS immédiatement le cache de tickets.

Étape 1 : créer un répertoire à l'aide du AWS Managed Microsoft AD

AWS Directory Service crée un Active Directory entièrement géré dans le AWS cloud. Lorsque vous créez un AWS Managed Microsoft AD annuaire, il AWS Directory Service crée deux contrôleurs de domaine et deux serveurs Domain Name System (DNS) en votre nom. Les serveurs d'annuaire sont créés dans différents sous-réseaux d'unVPC. Cette redondance permet de s'assurer que votre annuaire reste accessible, y compris en cas de défaillance.

Lorsque vous créez un AWS Managed Microsoft AD répertoire, il AWS Directory Service exécute les tâches suivantes en votre nom :

  • Configure un Active Directory dans leVPC.

  • Création d'un compte d'administrateur d'annuaire avec le nom d'utilisateur Admin et le mot de passe spécifié. Ce compte est utilisé pour gérer votre annuaire.

    Note

    N'oubliez pas d'enregistrer ce mot de passe. AWS Directory Service ne le stocke pas. Vous pouvez le réinitialiser, mais vous ne pouvez pas le récupérer.

  • Création d'un groupe de sécurité pour les contrôleurs de l'annuaire.

Lorsque vous lancez un AWS Managed Microsoft AD, AWS crée une unité organisationnelle (UO) qui contient tous les objets de votre répertoire. Cette unité d'organisation porte le BIOS nom réseau que vous avez saisi lors de la création de votre répertoire et se trouve dans la racine du domaine. La racine du domaine est détenue et gérée par AWS.

Le compte administrateur créé avec votre AWS Managed Microsoft AD annuaire dispose d'autorisations pour les activités administratives les plus courantes de votre unité d'organisation :

  • Création, mise à jour et suppression des utilisateurs

  • Ajouter des ressources à votre domaine, comme des serveurs de fichiers ou d'impression, puis attribuer des autorisations pour ces ressources aux utilisateurs dans votre unité d'organisation

  • Créez des conteneurs OUs et des conteneurs supplémentaires

  • Déléguer des autorités

  • Restaurer des objets supprimés de la corbeille Active Directory

  • Exécuter les PowerShell modules AD et DNS Windows sur le service Web Active Directory

Le compte Admin dispose également de droits pour exécuter les activités suivantes au niveau du domaine :

  • Gérer les DNS configurations (ajouter, supprimer ou mettre à jour des enregistrements, des zones et des redirecteurs)

  • Afficher les journaux DNS d'événements

  • Afficher les journaux d'évènements de sécurité

Pour créer le répertoire, utilisez le AWS Management Console AWS CLI, le ou le AWS Directory Service API. Veillez à ouvrir les ports sortants appropriés sur le groupe de sécurité afin que l'annuaire puisse communiquer avec l'instance de base de données Oracle.

Pour créer un répertoire avec AWS Managed Microsoft AD
  1. Connectez-vous à la AWS Directory Service console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/directoryservicev2/.

  2. Dans le panneau de navigation, choisissez Directories (Répertoires), puis Set up Directory (Configurer un répertoire).

  3. Choisissez AWS Managed Microsoft AD. AWS Managed Microsoft AD est la seule option que vous pouvez utiliser actuellement avec AmazonRDS.

  4. Entrez les informations suivantes :

    DNSNom du répertoire

    Nom complet de l'annuaire, par exemple corp.example.com.

    BIOSNom du réseau du répertoire

    Nom court de l'annuaire, par exemple CORP.

    Description de l'annuaire

    (Facultatif) Une description de l'annuaire.

    Mot de passe administrateur

    Mot de passe de l'administrateur de l'annuaire. Le processus de création d'un annuaire crée un compte d'administrateur avec le nom d'utilisateur Admin et ce mot de passe.

    Le mot de passe de l'administrateur de l'annuaire ne peut pas contenir le terme « admin ». Le mot de passe est sensible à la casse et doit comporter entre 8 et 64 caractères. Il doit également contenir au moins un caractère de trois des quatre catégories suivantes :

    • Lettres minuscules (a–z)

    • Lettres majuscules (A–Z)

    • Chiffres (0–9)

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

    Confirmer le mot de passe

    Saisissez à nouveau le mot de passe de l'administrateur.

  5. Choisissez Suivant.

  6. Entrez les informations suivantes dans la section Networking (Réseaux), puis choisissez Suivant (Next) :

    VPC

    Le VPC pour le répertoire. Créez l'instance de base de données Oracle dans cette même instanceVPC.

    Sous-réseaux

    Sous-réseaux pour les serveurs d'annuaires. Les deux sous-réseaux doivent être dans des zones de disponibilité différentes.

  7. Vérifiez les informations concernant l'annuaire et effectuez les modifications nécessaires. Lorsque les informations sont correctes, choisissez Create directory (Créer le répertoire).

    Page de détails de l'annuaire lors de la création

La création de l'annuaire prend plusieurs minutes. Lorsqu'il est créé, la valeur du champ Status (Statut) devient Active (Actif).

Pour consulter les informations relatives à votre annuaire, choisissez le nom de l'annuaire dans la liste. Notez la valeur ID de l'annuaire, car vous avez besoin de cette valeur lorsque vous créez ou modifiez votre instance de base de données Oracle.

Page de détails de l'annuaire

Étape 2 : Créer une approbation

Si vous prévoyez d'utiliser AWS Managed Microsoft AD uniquement, passez àÉtape 3 : configurer IAM les autorisations pour Amazon RDS.

Pour activer l'authentification Kerberos à l'aide de votre Active Directory autogéré, vous devez créer une relation d'approbation forestière entre votre Active Directory autogéré et celui AWS Managed Microsoft AD créé à l'étape précédente. La confiance peut être unidirectionnelle, c'est-à-dire qu'elle AWS Managed Microsoft AD fait confiance à Active Directory autogéré. L'approbation peut également être bidirectionnelle. Dans ce cas, les deux Active Directory s'approuvent mutuellement. Pour plus d'informations sur la configuration des approbations forestières à l'aide AWS Directory Service de la section Quand créer une relation de confiance dans le Guide d'AWS Directory Service administration.

Étape 3 : configurer IAM les autorisations pour Amazon RDS

AWS Directory Service Pour vous appeler, Amazon a RDS besoin d'un IAM rôle qui utilise la IAM politique géréeAmazonRDSDirectoryServiceAccess. Ce rôle permet RDS à Amazon de passer des appels au AWS Directory Service.

Note

Pour que le rôle autorise l'accès, le point de terminaison AWS Security Token Service (AWS STS) doit être activé correctement Région AWS pour votre Compte AWS. AWS STS les points de terminaison sont actifs par défaut dans tous les cas Régions AWS, et vous pouvez les utiliser sans autre action. Pour plus d'informations, voir Activation et désactivation AWS STS dans et dans le guide de l'IAMutilisateur. Région AWS

Création d'un IAM rôle

Lorsque vous créez une instance de base de données à l'aide de AWS Management Console, et que l'utilisateur de la console a l'iam:CreateRoleautorisation, la console rds-directoryservice-kerberos-access-role se crée automatiquement. Dans le cas contraire, vous devez créer le IAM rôle manuellement. Lorsque vous créez un IAM rôle manuellementDirectory Service, choisissez et associez la politique AWS gérée AmazonRDSDirectoryServiceAccess à celui-ci.

Pour plus d'informations sur la création de IAM rôles pour un service, consultez la section Création d'un rôle pour déléguer des autorisations à un AWS service dans le Guide de IAM l'utilisateur.

Note

Le IAM rôle utilisé pour l'authentification Windows RDS pour Microsoft SQL Server ne peut pas être utilisé RDS pour Oracle.

Création manuelle d'une politique de IAM confiance

Vous pouvez éventuellement créer des politiques de ressources avec les autorisations requises au lieu d'utiliser la IAM politique géréeAmazonRDSDirectoryServiceAccess. Spécifiez directoryservice.rds.amazonaws.com et rds.amazonaws.com comme principaux.

Pour limiter les autorisations accordées par Amazon à un RDS autre service pour une ressource spécifique, nous vous recommandons d'utiliser les clés de contexte de condition aws:SourceAccountglobale aws:SourceArnet les clés de contexte dans les politiques relatives aux ressources. Le moyen le plus efficace de se protéger contre le problème de confusion des adjoints consiste à utiliser la clé de contexte de condition aws:SourceArn globale avec l'intégralité ARN d'une RDS ressource Amazon. Pour de plus amples informations, veuillez consulter Prévention des problèmes d'adjoint confus entre services.

L'exemple suivant montre comment vous pouvez utiliser les clés de contexte de condition aws:SourceAccount globale aws:SourceArn et les clés de contexte dans Amazon RDS pour éviter le problème de confusion des adjoints.

{ "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" } } } ] }

Pour les régions optionnelles, vous devez également inclure un principal de service pour cette région sous la forme dedirectoryservice.rds.region_name.amazonaws.com. Par exemple, dans la région Afrique (Le Cap), appliquez la politique de confiance suivante :

{ "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" } } } ] }

Le rôle doit également respecter la IAM politique suivante.

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

Étape 4 : Créer et configurer des utilisateurs

Vous pouvez créer des utilisateurs à l'aide de l'outil Active Directory Users and Computers, qui fait partie des outils Active Directory Domain Services et Active Directory Lightweight Directory Services. Dans ce cas, les utilisateurs sont des personnes ou des entités qui ont accès à votre annuaire.

Pour créer des utilisateurs dans un AWS Directory Service annuaire, vous devez être connecté à une EC2 instance Amazon basée sur Windows qui est membre de l' AWS Directory Service annuaire. Parallèlement, vous devez être connecté en tant qu'utilisateur disposant de privilèges pour créer des utilisateurs. Pour de plus amples informations sur la création d'utilisateurs dans votre annuaire Microsoft Active Directory, veuillez consulter Gérer les utilisateurs et les groupes dans AWS Managed Microsoft AD dans le Guide d'administration AWS Directory Service .

Étape 5 : activer le VPC trafic croisé entre l'annuaire et l'instance de base de données

Si vous prévoyez de localiser le répertoire et l'instance de base de données dans le même répertoireVPC, ignorez cette étape et passez àÉtape 6 : Créer ou modifier une instance de base de données Oracle.

Si vous prévoyez de localiser le répertoire et l'instance de base de données dans différents AWS comptes ou VPCs de configurer le VPC trafic croisé à l'aide du VPC peering ou de AWS Transit Gateway. La procédure suivante active le trafic entre les utilisateurs VPCs du VPC peering. Suivez les instructions de la section Qu'est-ce que le VPC peering ? dans le guide de peering d'Amazon Virtual Private Cloud.

Pour activer le VPC trafic croisé à l'aide du VPC peering
  1. Définissez des règles de VPC routage appropriées pour garantir que le trafic réseau peut circuler dans les deux sens.

  2. Assurez-vous que le groupe de sécurité de l'instance de base de données puisse recevoir le trafic entrant depuis le groupe de sécurité de cet annuaire. Pour plus d'informations, consultez Meilleures pratiques pour AWS Managed Microsoft AD dans le Guide d'administration AWS Directory Service .

  3. Assurez-vous qu'aucune règle de liste de contrôle d'accès au réseau (ACL) ne bloque le trafic.

Si le répertoire appartient à un autre AWS compte, vous devez le partager.

Pour partager le répertoire entre AWS comptes
  1. Commencez à partager le répertoire avec le AWS compte dans lequel l'instance de base de données sera créée en suivant les instructions du Tutoriel : Partage de votre AWS Managed Microsoft AD répertoire pour une connexion de EC2 domaine fluide dans le Guide d'AWS Directory Service administration.

  2. Connectez-vous à la AWS Directory Service console à l'aide du compte de l'instance de base de données et assurez-vous que le domaine possède le SHARED statut requis avant de continuer.

  3. Lorsque vous êtes connecté à la AWS Directory Service console à l'aide du compte de l'instance de base de données, notez la valeur de l'ID du répertoire. Vous utilisez cet ID pour joindre l'instance de base de données au domaine.

Étape 6 : Créer ou modifier une instance de base de données Oracle

Créez ou modifiez une instance de base de données Oracle en vue de son utilisation avec votre annuaire. Vous pouvez utiliser la console ou associer une instance RDS API de base de données à un répertoire. CLI Vous pouvez effectuer cette opération de différentes manières :

L'authentification Kerberos n'est prise en charge que pour les instances de base de données Oracle dans un. VPC L'instance de base de données peut se trouver dans VPC le même répertoire ou dans un autreVPC. Lors de la création ou de la modification de l'instance de base de données, procédez comme suit :

  • Fournissez l'identifiant du domaine (identifiant d-*) qui a été généré lors de la création de votre annuaire.

  • Indiquez le nom du IAM rôle que vous avez créé.

  • Veillez à ce que le groupe de sécurité de l'instance de base de données puisse recevoir le trafic entrant depuis le groupe de sécurité de l'annuaire et envoyer le trafic sortant vers l'annuaire.

Lorsque vous utilisez la console pour créer une instance de base de données, choisissez Mot de passe et authentification Kerberos dans la section Authentification de base de données. Choisissez Browse Directory (Parcourir les répertoires), puis sélectionnez le répertoire, ou choisissez Create a new directory (Créer un nouveau répertoire).

Paramètre d'authentification Kerberos lors de la création d'une instance de base de données

Lorsque vous utilisez la console pour modifier ou restaurer une instance de base de données, choisissez le répertoire dans la section Kerberos authentication (Authentification Kerberos) ou choisissez Create a new directory (Créer un nouveau répertoire).

Paramètre d'authentification Kerberos lors de la modification ou de la restauration d'une instance de base de données

Lorsque vous utilisez le AWS CLI, les paramètres suivants sont requis pour que l'instance de base de données puisse utiliser le répertoire que vous avez créé :

  • Pour le paramètre --domain, vous devez indiquer l'identifiant du domaine (identifiant « d-* ») généré lors de la création de l'annuaire.

  • Pour le --domain-iam-role-name paramètre, utilisez le rôle que vous avez créé qui utilise la IAM politique géréeAmazonRDSDirectoryServiceAccess.

Par exemple, la CLI commande suivante modifie une instance de base de données pour utiliser un répertoire.

Dans Linux, macOS, ou Unix:

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

Dans Windows:

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

Si vous modifiez une instance de base de données de façon à activer l'authentification Kerberos, redémarrez l'instance de base de données après avoir effectué la modification.

Note

MANAGED_SERVICE_USER est un compte de service dont le nom est généré aléatoirement par Directory Service forRDS. Lors de la configuration de l'authentification Kerberos, RDS Oracle crée un utilisateur portant le même nom et lui attribue le privilège. CREATE SESSION L'utilisateur de la base de données Oracle est identifié en externe comme MANAGED_SERVICE_USER@EXAMPLE.COMOù : EXAMPLE.COM est le nom de votre domaine. RDSUtilise régulièrement les informations d'identification fournies par le Directory Service pour se connecter à votre base de données Oracle. Ensuite, détruit RDS immédiatement le cache de tickets.

Étape 7 : Créer les connexions Oracle d'authentification Kerberos

Utilisez les informations d'identification de l'utilisateur RDS principal Amazon pour vous connecter à l'instance de base de données Oracle comme vous le feriez pour toute autre instance de base de données. L'instance de base de données est jointe au AWS Managed Microsoft AD domaine. Vous pouvez ainsi mettre en service les connexions et utilisateurs Oracle depuis les utilisateurs et groupes Microsoft Active Directory de votre domaine. Pour gérer les autorisations de base de données, vous pouvez octroyer et annuler les autorisations Oracle standard pour ces connexions.

Pour autoriser un utilisateur Microsoft Active Directory à s'authentifier avec Oracle
  1. Connectez-vous à l'instance de base de données Oracle à l'aide de vos informations d'identification d'utilisateur RDS principal Amazon.

  2. Créez un utilisateur authentifié en externe dans la base de données Oracle.

    Dans l'exemple suivant, remplacez KRBUSER@CORP.EXAMPLE.COM par le nom d'utilisateur et le nom de domaine.

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

    Les utilisateurs (personnes et applications) de votre domaine peuvent désormais se connecter à l'instance de base de données Oracle à partir d'un ordinateur client joint au domaine à l'aide de l'authentification Kerberos.

Étape 8 : Configurer un client Oracle

Pour configurer un client Oracle, vous devez vous conformer aux exigences suivantes :

  • Créez un fichier de configuration nommé krb5.conf (Linux) ou krb5.ini (Windows) pour pointer vers le domaine. Configurez le client Oracle pour qu'il utilise ce fichier de configuration.

  • Vérifiez que le trafic peut circuler entre l'hôte du client et AWS Directory Service le DNS port 53 surTCP/UDP, les ports Kerberos (88 et 464 pour les ports gérés AWS Directory Service) et le LDAP port TCP 389 sur. TCP

  • Vérifiez que le trafic peut circuler entre l'hôte du client et l'instance de base de données via le port de la base de données.

Vous trouverez ci-dessous un exemple de contenu pour 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

Vous trouverez ci-dessous un exemple de contenu pour Microsoft AD sur site. Dans votre fichier krb5.conf ou krb5.ini, remplacez on-prem-ad-server-name avec le nom de votre serveur AD local.

[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
Note

Après avoir configuré votre fichier krb5.ini ou krb5.conf, nous vous recommandons de redémarrer le serveur.

Voici un exemple de contenu sqlnet.ora pour une configuration *Plus : SQL

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

Pour un exemple de configuration destinée aux SQL développeurs, consultez le document 1609359.1 d'Oracle Support.