DBMS_CLOUD pour la gestion des accès

Cette section traite des sous-programmes DBMS_CLOUD utilisés pour la gestion des accès.

Prérequis

En tant que développeur, vous pouvez utiliser des procédures DBMS_CLOUD avec des instances Autonomous Database déployées sur Oracle Public Cloud, Multicloud ou Exadata Cloud@Customer.

Selon le choix de déploiement, les prérequis suivants doivent être respectés pour utiliser les procédures DBMS_CLOUD avec les fournisseurs de services Amazon S3, Azure Blob Storage et Google Cloud Storage.

Une connectivité sortante doit avoir été configurée à l'aide d'une passerelle NAT, par l'administrateur de parc, comme décrit ci-dessous :
  • Créez une passerelle NAT dans le réseau cloud virtuel (VCN) où résident vos ressources Autonomous Database en suivant les instructions fournies dans Création d'une passerelle NAT dans la documentation Oracle Cloud Infrastructure.
  • Après avoir créé la passerelle NAT, ajoutez une règle de routage et une règle de sécurité sortante à chaque sous-réseau (dans le VCN) dans lesquelles résident les ressources Autonomous Database afin que ces ressources puissent utiliser la passerelle pour obtenir une clé publique à partir de votre instance Azure AD :
    1. Accédez à la page Détails du sous-réseau.
    2. Dans l'onglet Informations sur le sous-réseau, cliquez sur le nom de la table de routage du sous-réseau pour afficher la page Détails de la table de routage correspondante.
    3. Dans la table des règles de routage existantes, vérifiez s'il existe déjà une règle avec les caractéristiques suivantes :
      • Destination : 0.0.0.0/0
      • Type de cible : passerelle NAT
      • Cible : nom de la passerelle NAT que vous venez de créer dans le VCN

      Si une telle règle n'existe pas, cliquez sur Ajouter des règles de routage et ajoutez une règle possédant ces caractéristiques.

    4. Revenez à la page Détails du sous-réseau.
    5. Dans la table Listes de sécurité du sous-réseau, cliquez sur le nom de la liste de sécurité du sous-réseau pour afficher la page Détails de la liste de sécurité correspondante.
    6. Dans le menu latéral, sous Resources, cliquez sur Egress Rules.
    7. Dans la table des règles sortantes existantes, vérifiez s'il existe déjà une règle avec les caractéristiques suivantes :
      • Type de destination : CIDR
      • Destination : 0.0.0.0/0
      • Protocole IP : TCP
      • Plage de ports source: 443
      • Plage de ports de destination : Tout

      Si une telle règle n'existe pas, cliquez sur Ajouter des règles sortantes et ajoutez une règle présentant ces caractéristiques.

Les paramètres de proxy HTTP de votre environnement doivent permettre à la base de données d'accéder au fournisseur de services cloud.

Ces paramètres sont définis par l'administrateur de parc lors de la création de l'infrastructure Exadata Cloud@Customer, comme décrit dans Utilisation de la console pour provisionner Exadata Database Service on Cloud@Customer.

Remarques :

La configuration réseau, y compris le proxy HTTP, ne peut être modifiée que jusqu'à ce que l'infrastructure Exadata présente l'état Activation requise. Une fois activé, vous ne pouvez plus modifier ces paramètres.

La configuration d'un proxy HTTP pour une infrastructure Exadata déjà provisionnée nécessite une demande de service (SR) dans My Oracle Support. Pour plus d'informations, reportez-vous à Création d'une demande d'assistance dans My Oracle Support.

DBMS_CLOUD Sous-programmes pour la gestion des accès

Sous-programmes de gestion des informations d'identification dans le package DBMS_CLOUD, ce qui inclut la création, la suppression et la mise à jour des informations d'identification.

Sous-programme Description

Procédure CREATE_CREDENTIAL

Cette procédure stocke les informations d'identification de service cloud dans Autonomous Database.

Procédure DROP_CREDENTIAL

Cette procédure enlève des informations d'identification existantes d'Autonomous Database.

Procédure UPDATE_CREDENTIAL

Cette procédure met à jour les attributs d'informations d'identification de service cloud dans Autonomous Database.

Procédure CREATE_CREDENTIAL

Cette procédure stocke les informations d'identification de service cloud dans Autonomous Database.

Utilisez les informations d'identification de service cloud stockées afin d'accéder au service cloud pour charger des données, interroger des données externes résidant dans le cloud ou d'autres cas lorsque vous utilisez des procédures DBMS_CLOUD avec un paramètre credential_name.

Syntaxe

DBMS_CLOUD.CREATE_CREDENTIAL (
      credential_name   IN VARCHAR2,
      username          IN VARCHAR2,
      password          IN VARCHAR2 DEFAULT NULL);


DBMS_CLOUD.CREATE_CREDENTIAL (
      credential_name IN VARCHAR2,
      user_ocid       IN VARCHAR2,
      tenancy_ocid    IN VARCHAR2,
      private_key     IN VARCHAR2,
      fingerprint     IN VARCHAR2);


Paramètres

Paramètre Description

credential_name

Nom des informations d'identification à stocker. Le paramètre credential_name doit être conforme aux conventions de dénomination des objets Oracle, qui n'autorisent pas les espaces ni les traits d'union.

username

Les arguments username et password indiquent ensemble vos informations d'identification de service cloud. Reportez-vous aux remarques sur l'utilisation ci-dessous afin de connaître les éléments à indiquer pour username et password pour les différents services cloud.

password

Les arguments username et password indiquent ensemble vos informations d'identification de service cloud.

user_ocid

Spécifie l'OCID de l'utilisateur. Pour plus de détails sur l'obtention de l'OCID de l'utilisateur, reportez-vous à Emplacement de l'OCID de la location et de l'OCID de l'utilisateur.

tenancy_ocid

Indique l'OCID de la location. Pour plus de détails sur l'obtention de l'OCID de la location, reportez-vous à Emplacement de l'OCID de la location et de l'OCID de l'utilisateur.

private_key

Indique la clé privée générée. Les clés privées générées avec une phrase de passe ne sont pas prises en charge. Vous devez générer la clé privée sans phrase de passe. Pour plus d'informations sur la génération d'une paire de clés au format PEM, reportez-vous à Procédure de génération d'une clé de signature d'API.

fingerprint

Spécifie une empreinte. Une fois qu'une clé publique générée est téléchargée vers le compte de l'utilisateur, l'empreinte est affichée dans la console. Utilisez l'empreinte affichée pour cet argument. Pour plus d'informations, reportez-vous à Procédure d'obtention de l'empreinte de la clé et à Procédure de génération d'une clé de signature d'API.

Remarques sur l'utilisation

  • Cette opération stocke les informations d'identification dans la base de données dans un format crypté.

  • Vous pouvez consulter les informations d'identification dans votre schéma en interrogeant la table user_credentials.

  • L'utilisateur ADMIN peut consulter toutes les informations d'identification en interrogeant la table dba_credentials.

  • Vous ne devez créer les informations d'identification qu'une seule fois, sauf si vos informations d'identification de service cloud changent. Une fois que vous avez stocké les informations d'identification, vous pouvez utiliser le même nom d'informations d'identification pour les procédures DBMS_CLOUD qui nécessitent un paramètre credential_name.

  • Cette procédure est surchargée. Si vous fournissez l'un des attributs d'authentification basée sur une clé (user_ocid, tenancy_ocid, private_key ou fingerprint), l'appel est considéré comme des informations d'identification basées sur une clé de signature Oracle Cloud Infrastructure.

  • Vous pouvez répertorier les informations d'identification à partir de la vue ALL_CREDENTIALS. Exécutez par exemple la commande suivante pour répertorier les informations d'identification :

    SELECT credential_name, username, comments FROM all_credentials;

Informations d'identification Oracle Cloud Infrastructure (jetons d'authentification)

Pour Oracle Cloud Infrastructure, username est votre nom utilisateur Oracle Cloud Infrastructure. password est votre jeton d'authentification Oracle Cloud Infrastructure. Reportez-vous à Utilisation des jetons d'authentification.

Exemple :

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'DEF_CRED_NAME',
    username => 'adb_user@example.com',
    password => 'password' );
END;
/

Utilisez les informations d'identification basées sur un jeton d'authentification lorsque vous authentifiez des appels vers OCI Object Storage. Pour les appels vers tout autre type de service cloud Oracle Cloud Infrastructure, utilisez les informations d'identification basées sur la clé de signature Oracle Cloud Infrastructure.

Informations d'identification basées sur la clé de signature Oracle Cloud Infrastructure

Utilisez les paramètres associés à la clé de signature Oracle Cloud Infrastructure, notamment user_ocid, tenancy_ocid, private_key et fingerprint, avec l'authentification à l'aide de clés de signature Oracle Cloud Infrastructure.

Exemple :

BEGIN
   DBMS_CLOUD.CREATE_CREDENTIAL (
       credential_name => ‘OCI_KEY_CRED’,
       user_ocid       => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
       tenancy_ocid    => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
       private_key     => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
       fingerprint     => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/

Les clés privées générées avec une phrase de passe ne sont pas prises en charge. Vous devez générer la clé privée sans phrase de passe. Pour plus d'informations, reportez-vous à Procédure de génération d'une clé de signature d'API.

Informations d'identification Amazon Web Services (AWS)

Si vos fichiers source résident dans Amazon S3 ou que vous appelez une API AWS, username est votre ID de clé d'accès AWS et password est votre clé d'accès secrète AWS. Reportez-vous à AWS Identity and Access Management.

Informations d'identification Microsoft Azure

Si vos fichiers source résident dans Azure Blob Storage ou que vous appelez une API Azure, username est votre nom de compte de stockage Azure et password est une clé d'accès de compte de stockage Azure. Reportez-vous à A propos des comptes de stockage Azure.

Informations d'identification compatibles avec Amazon S3

Service Précisions sur les informations d'identification

Google Cloud Storage

Si les fichiers source résident dans Google Cloud Storage ou que vous appelez des API Google Cloud Storage, vous devez définir un projet Google par défaut et obtenir une clé HMAC pour créer des informations d'identification à accompagner d'URL Google Cloud Storage compatibles S3. Utilisez l'ID de clé HMAC comme nom utilisateur et la clé secrète HMAC comme mot de passe.

Pour plus d'informations, reportez-vous à Projets et à Clés HMAC.

Procédure DROP_CREDENTIAL

Cette procédure enlève des informations d'identification existantes d'Autonomous Database.

Syntaxe

DBMS_CLOUD.DROP_CREDENTIAL (
   credential_name     IN VARCHAR2);

Paramètres

Paramètre Description

credential_name

Nom des informations d'identification à enlever.

Procédure UPDATE_CREDENTIAL

Cette procédure met à jour un attribut avec une nouvelle valeur pour un élément credential_name spécifié.

Utilisez les informations d'identification stockées pour charger des données, interroger des données externes résidant dans le cloud ou lorsque vous utilisez des procédures DBMS_CLOUD avec un paramètre credential_name.

Syntaxe

DBMS_CLOUD.UPDATE_CREDENTIAL (
    credential_name   IN VARCHAR2,
    attribute         IN VARCHAR2,
    value             IN VARCHAR2);

Paramètres

Paramètre Description

credential_name

Nom des informations d'identification à mettre à jour.

attribute

Nom de l'attribut à mettre à jour.

Pour les informations d'identification de type nom utilisateur/mot de passe, les valeurs attribute valides sont les suivantes : USERNAME et PASSWORD.

Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.

value

Nouvelle valeur pour l'attribut indiqué.

Remarques sur l'utilisation

  • La valeur du nom utilisateur respecte la casse. Il ne peut contenir ni guillemets ni espaces.

  • L'utilisateur ADMIN peut consulter toutes les informations d'identification en interrogeant dba_credentials.

  • Vous ne devez créer les informations d'identification qu'une seule fois, sauf si vos informations d'identification de service cloud changent. Une fois que vous avez stocké les informations d'identification, vous pouvez utiliser le même nom d'informations d'identification pour les procédures DBMS_CLOUD qui nécessitent un paramètre credential_name.

  • Vous pouvez répertorier les informations d'identification à partir de la vue ALL_CREDENTIALS. Exécutez par exemple la commande suivante pour répertorier les informations d'identification :

    SELECT credential_name, username, comments FROM all_credentials;

Exemples 

BEGIN
  DBMS_CLOUD.UPDATE_CREDENTIAL(
     credential_name => 'OBJ_STORE_CRED',
     attribute => 'PASSWORD',
     value => 'password'); 
END;
/
BEGIN
  DBMS_CLOUD.UPDATE_CREDENTIAL(
     credential_name => 'ARN_CRED',
     attribute => 'aws_role_arn',
     value => 'NEW_AWS_ARN'); 
END;
/