Utiliser le compte de service Google pour accéder aux ressources de la plate-forme Google Cloud
Vous pouvez utiliser un compte de service Google pour accéder aux ressources Google Cloud Platform (GCP) à partir d'une instance Autonomous AI Database.
À propos de l'utilisation d'un compte de service Google pour accéder aux ressources Google Cloud
Lorsque vous utilisez l'authentification basée sur un compte de service Google avec Autonomous AI Database, une application peut accéder en toute sécurité aux ressources de Google Cloud Platform (GCP) sans créer et enregistrer des données d'identification basées sur des clés d'accès IAM à long terme pour les ressources GCP.
Un compte de service Google est un type spécial de compte GCP utilisé par une application. Vous pouvez utiliser un compte de service Google pour effectuer des appels d'API REST GCP autorisés à partir d'une application (après que le compte de service dispose d'autorisations d'accès au moyen de la configuration de rôle IAM). Lorsqu'une application effectue des appels avec l'authentification basée sur un compte de service GCP, l'appel initial génère un jeton d'accès temporaire au moyen d'OAuth2.0. Le jeton d'accès OAuth2.0 est valide pendant une heure. Les demandes suivantes dans l'heure utilisent le jeton d'accès OAuth2.0 pour effectuer des appels d'API REST GCP autorisés.
Par exemple, vous pouvez charger des données de Google Cloud Storage dans votre base de données Autonomous AI Database, effectuer une opération sur les données, puis réécrire les données modifiées dans Google Cloud Storage. Vous pouvez le faire sans utiliser de compte de service si vous avez des informations d'identification d'utilisateur GCP pour accéder à Google Cloud Storage. Cependant, l'utilisation d'un compte de service Google basé sur les rôles pour accéder aux ressources GCP à partir d'Autonomous AI Database présente les avantages suivants :
-
Vous pouvez créer un accès basé sur les rôles, avec différentes politiques pour différents utilisateurs ou schémas qui ont besoin d'accéder aux ressources GCP à partir d'une instance de base de données Autonomous AI Database. Vous pouvez ainsi définir une politique pour limiter l'accès aux ressources par rôle. Par exemple, la définition d'une politique limitée à l'accès en lecture seule, par rôle, à un seau Google Cloud Storage.
-
Les données d'identification basées sur le compte de service Google offrent une meilleure sécurité, car vous n'avez pas besoin de fournir des données d'identification d'utilisateur à long terme dans le code lorsque votre application accède aux ressources GCP. Autonomous AI Database gère les données d'identification temporaires pour le compte de service Google et n'a pas besoin de stocker les données d'identification d'utilisateur de ressource GCP dans la base de données.
Voir Comptes de service pour plus d'informations sur les comptes de service Google.
Activer le compte de service Google et rechercher le nom du compte de service GCP
Avant d'utiliser une ressource Google Cloud Platform (GCP) avec un compte de service Google, vous devez activer l'accès GCP pour votre instance Autonomous AI Database.
-
Activez l'authentification de compte de service Google avec
DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH.Par exemple, pour activer l'authentification de compte de service Google pour l'utilisateur
ADMIN:BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'GCP' ); END; /Activez l'authentification de compte de service Google pour un utilisateur non
ADMIN,adb_usercomme suit :BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'GCP', username => 'adb_user'); END; /Si vous voulez que l'utilisateur spécifié dispose de privilèges pour activer l'authentification de compte de service Google pour les autres utilisateurs, réglez le paramètre
paramsgrant_optionàTRUE.BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'GCP', username => 'adb_user', params => JSON_OBJECT('grant_option' value TRUE)); END; /Après avoir exécuté
DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTHavecgrant_optionréglé àTRUE,adb_userpeut activer l'authentification de compte de service Google pour un autre utilisateur. Par exemple, si vous êtes connecté en tant queadb_user, vous pouvez exécuter la commande suivante pour activer l'accès au compte de service GCP pouradb_user2:BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'GCP', username => 'adb_user2'); END; / -
Lorsque
DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTHest exécuté, il crée un compte de service Google. InterrogezCLOUD_INTEGRATIONSpour obtenir les détails du compte de service pour votre instance de base de données du service d'intelligence artificielle autonome.SELECT * FROM CLOUD_INTEGRATIONS WHERE param_name = 'gcp_service_account';PARAM_NAME PARAM_VALUE --------------------------------------------------------------------------- gcp_service_account GCP-SA-22222-32222@gcp-example.iam.gserviceaccount.com -
Notez la valeur du paramètre
gcp_service_accountcar vous devez fournir cette valeur lorsque vous configurez des ressources GCP.
Pour plus d'informations, voir Procédure ENABLE_PRINCIPAL_AUTH.
Affecter des rôles au compte de service Google et accorder l'accès aux ressources GCP
Pour utiliser les ressources Google Cloud Platform (GCP) d'une instance Autonomous AI Database, vous ou un administrateur Google Cloud devez affecter des rôles et des privilèges au compte de service Google auquel votre application accède. En plus d'affecter des rôles pour le compte de service Google, pour toutes les ressources GCP que vous souhaitez utiliser un administrateur Google Cloud, vous devez ajouter des principaux Google IAM.
Vous devez d'abord activer le compte de service Google sur votre instance Autonomous AI Database. Pour plus d'informations, voir Activer le compte de service Google et rechercher le nom du compte de service GCP.
-
Ouvrez la console Google Cloud pour votre compte.
-
Créez des rôles avec les autorisations spécifiées.
-
Dans le menu de navigation, sélectionnez IAM & Admin.
-
Dans le navigateur IAM & Admin, sélectionnez Rôles.
-
Dans la page Rôles, cliquez sur Plus d'actions et sélectionnez + CREATE ROLE.
Par exemple, vous pouvez créer un rôle Lecture et écriture dans le magasin d'objets pour contrôler l'utilisation d'un seau de magasin d'objets.
-
-
Dans la page Créer un rôle, cliquez sur + AJOUTER DES PERMISSIONS.
-
Sélectionnez des filtres pour limiter la liste des autorisations.
Par exemple, entrez le filtre Autorisation : Storage.Objects pour afficher uniquement les autorisations du magasin d'objets.
-
Dans la boîte de dialogue Ajouter des autorisations, cliquez sur Ajouter.
-
-
Dans la page Créer un rôle, cliquez sur CREATE.
-
Ajoutez des rôles et des principaux pour la ressource à laquelle vous voulez accéder.
Par exemple, si vous voulez accéder à Google Cloud Storage à l'aide du rôle que vous venez de créer, Lecture en écriture dans le magasin d'objets :
-
Dans le navigateur, sélectionnez Stockage en nuage et Seaux.
-
Sélectionnez le seau à utiliser, puis cliquez sur PERMISSIONS.
-
Cliquez sur + AJOUTER PRINCIPAL.
-
-
Dans la boîte de dialogue Accorder l'accès à "bucketname", ajoutez des rôles et des principaux pour la ressource sélectionnée.
-
Sous Ajouter des principaux, ajoutez la valeur du paramètre
gcp_service_accountà partir de votre instance de base de données d'intelligence artificielle autonome. -
Dans la boîte de dialogue Accorder l'accès à "bucketname", entrez les rôles sous Affecter des rôles, puis cliquez sur SAVE (Enregistrer).
-
Une fois ces étapes terminées, les rôles et les principaux sont affectés. Cela permet à votre application s'exécutant sur l'instance Autonomous AI Database d'accéder à la ressource GCP avec un compte de service Google.
Utiliser le compte de service Google avec DBMS_CLOUD
Lorsque vous effectuez des appels DBMS_CLOUD pour accéder aux ressources Google Cloud Platform (GCP) et spécifiez le nom des données d'identification GCP$PA, l'authentification côté Google Cloud Platform se fait à l'aide d'un compte de service Google.
Si vous ne l'avez pas encore fait, effectuez les étapes préalables suivantes :
-
Activez le schéma ADMIN ou un autre schéma pour utiliser l'authentification de compte de service Google. Pour plus d'informations, voir Activer le compte de service Google et rechercher le nom du compte de service GCP.
-
Effectuez les affectations de rôle Google Cloud Platform pour les ressources auxquelles vous souhaitez accéder. Pour plus d'informations, voir Affecter des rôles au compte de service Google et accorder l'accès aux ressources GCP.
Pour utiliser une procédure ou une fonction DBMS_CLOUD avec l'authentification de compte de service Google :
-
Utilisez
GCP$PAcomme nom de données d'identification. -
Construisez l'URI pour accéder à la ressource GCP à l'aide du style hébergé virtuel :
https://BUCKET_NAME.storage.googleapis.com/OBJECT_NAMEPar exemple, vous pouvez accéder à Google Cloud Storage à l'aide des informations d'identification du compte de service Google comme suit :
SELECT * FROM DBMS_CLOUD.LIST_OBJECTS('GCP$PA', 'https://treetypes.storage.googleapis.com/' );OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED ----------- ----- -------------------------------- ------- ------------------------ trees.txt 58 682075a8c38f5686c32c25c6fb67dcbe 2022-10-05T20:03:55.253Z
Voir ce qui suit pour plus d'informations :
-
Voir Points d'extrémité de demande pour plus d'informations sur les demandes de style hébergé virtuel GCP.
-
Voir Fonction LIST_OBJECTS.
Désactiver le compte de service Google
Pour désactiver l'accès du compte de service Google aux ressources GCP (Google Cloud Platform), utilisez DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH.
Lorsque la valeur provider est GCP et que username est un utilisateur autre que ADMIN, la procédure révoque les privilèges de l'utilisateur spécifié. Dans ce cas, l'utilisateur ADMIN et d'autres utilisateurs peuvent continuer à utiliser GCP$PA.
Par exemple, pour révoquer les privilèges pour adb_user :
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH(
provider => 'GCP',
username => 'adb_user');
END;
/Lorsque la valeur provider est GCP et que username est ADMIN, la procédure désactive l'accès au compte de service Google sur l'instance de base de données IA autonome. La valeur par défaut pour username est ADMIN.
Exemple :
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH(
provider => 'GCP' );
END;
/Pour plus d'informations, voir Procédure DISABLE_PRINCIPAL_AUTH.
Notes sur le compte de service Google
Notes pour l'utilisation du compte de service Google.
-
Restriction de caractères pour la plate-forme Google Cloud (GCP) :
DBMS_CLOUDne prend pas en charge un URI contenant un "" pour accéder à un nom de seau Google Cloud Storage. Si le nom de votre seau Google Cloud Storage contient un "", l'erreur suivante peut s'afficher :SELECT * FROM DBMS_CLOUD.LIST_OBJECTS('GCP$PA', 'https://app_bucket.storage.googleapis.com/');ORA-20006: Unsupported object store URI - https://app_bucket.storage.googleapis.com/ ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD", line 1306 -
Clonage d'une instance de base de données autonome avec un compte de service Google : Lorsque vous clonez une instance avec un compte de service Google activé, la configuration du compte de service Google n'est pas reportée sur le clone. Effectuez les étapes pour activer le compte de service Google sur le clone si vous souhaitez activer le compte de service Google sur une instance clonée.