Utilisation d'un compte de service Google pour accéder aux ressources Google Cloud Platform
Vous pouvez utiliser un compte de service Google pour accéder aux ressources Google Cloud Platform (GCP) à partir d'une instance de base de données Autonomous AI.
A 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 Google Cloud Platform (GCP) sans créer ni enregistrer d'informations 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 (une fois que le compte de service dispose de droits d'accès via la configuration de rôle IAM). Lorsqu'une application effectue des appels avec l'authentification basée sur le compte de service GCP, l'appel initial génère un jeton d'accès temporaire via 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 à partir de Google Cloud Storage dans votre base de données Autonomous AI, 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 disposez d'informations d'identification 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 stratégies 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. Vous pouvez ainsi définir une stratégie pour limiter l'accès aux ressources par rôle. Par exemple, définir une stratégie qui est limitée à l'accès en lecture seule, par rôle, à un bucket Google Cloud Storage.
-
Les informations d'identification basées sur un compte de service Google offrent une meilleure sécurité, car vous n'avez pas besoin de fournir des informations d'identification utilisateur à long terme dans le code lorsque votre application accède aux ressources GCP. Autonomous AI Database gère les informations d'identification temporaires pour le compte de service Google et n'a pas besoin de stocker les informations d'identification utilisateur de ressource GCP dans la base de données.
Pour plus d'informations sur les comptes de service Google, reportez-vous à Comptes de service.
Activation d'un compte de service Google et recherche du 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 de base de données Autonomous AI.
-
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_user, comme 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 permettant d'activer l'authentification de compte de service Google pour d'autres utilisateurs, définissez le paramètre
paramsgrant_optionsurTRUE.BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'GCP', username => 'adb_user', params => JSON_OBJECT('grant_option' value TRUE)); END; /Une fois que vous avez exécuté
DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTHavecgrant_optiondéfini surTRUE,adb_userpeut activer l'authentification de compte de service Google pour un autre utilisateur. Par exemple, si vous connectez-vous 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_INTEGRATIONSafin d'obtenir les détails du compte de service pour votre instance de base de données Autonomous AI.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, reportez-vous à Procédure ENABLE_PRINCIPAL_AUTH.
Affectation de rôle au compte de service Google et octroi de l'accès aux ressources GCP
Pour utiliser les ressources Google Cloud Platform (GCP) d'une instance de base de données Autonomous AI, 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 au compte de service Google, pour toutes les ressources GCP que vous souhaitez utiliser un administrateur Google Cloud, vous devez ajouter des principaux Google IAM.
Avant de commencer, activez le compte de service Google sur votre instance de base de données Autonomous AI. Pour plus d'informations, voir Activation d'un compte de service Google et recherche du nom du compte de service GCP.
-
Ouvrez la console Google Cloud pour votre compte.
-
Créez des rôles avec les autorisations indiquées.
-
Dans le menu de navigation, sélectionnez IAM & Admin.
-
Dans le navigateur IAM & Admin, sélectionnez Rôles.
-
Sur la page Rôles, cliquez sur Actions supplémentaires et sélectionnez + CREATE ROLE.
Par exemple, vous pouvez créer un rôle Lecture et écriture dans la banque d'objets pour contrôler l'utilisation d'un bucket de banque d'objets.
-
-
Sur 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 Droit d'accès : Storage.Objects pour afficher uniquement les droits d'accès de la banque d'objets.
-
Dans la boîte de dialogue Ajouter des droits d'accès, cliquez sur ADD.
-
-
Sur 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/écriture dans la banque d'objets :
-
Dans le navigateur, sélectionnez Cloud Storage et Buckets.
-
Sélectionnez le bucket à 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 Autonomous AI. -
Dans la boîte de dialogue Accorder l'accès à "bucketname", entrez des rôles sous Affecter des rôles, puis cliquez sur Enregistrer.
-
Une fois ces étapes terminées, les rôles et les principaux sont affectés. Cela permet à votre application exécutée sur l'instance de base de données Autonomous AI d'accéder à la ressource GCP avec un compte de service Google.
Utilisation du compte de service Google avec DBMS_CLOUD
Lorsque vous effectuez des appels DBMS_CLOUD pour accéder aux ressources Google Cloud Platform (GCP) et que vous indiquez le nom des informations d'identification GCP$PA, l'authentification côté Google Cloud Platform se produit à l'aide d'un compte de service Google.
Si vous ne l'avez pas déjà fait, effectuez les étapes prérequises 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 Activation d'un compte de service Google et recherche du 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, reportez-vous à la section Assign Roles to the Google Service Account and Provide Access for GCP Resources.
Pour utiliser une procédure ou une fonction DBMS_CLOUD avec l'authentification de compte de service Google, procédez comme suit :
-
Utilisez
GCP$PAcomme nom d'informations d'identification. -
Créez l'URI pour accéder à la ressource GCP à l'aide d'un type 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 de compte du 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
Pour plus d'informations, reportez-vous à :
-
Reportez-vous à Adresses de demande pour plus d'informations sur les demandes de type hébergé virtuel GCP.
-
Voir Fonction LIST_OBJECTS.
Désactivation du compte de service Google
Pour désactiver l'accès du compte de service Google aux ressources Google Cloud Platform (GCP), utilisez DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH.
Lorsque la valeur provider est GCP et que username est un utilisateur autre que l'utilisateur ADMIN, la procédure révoque les privilèges de l'utilisateur indiqué. Dans ce cas, l'utilisateur ADMIN et les autres utilisateurs peuvent continuer à utiliser GCP$PA.
Par exemple, pour révoquer des 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 la valeur username est ADMIN, la procédure désactive l'accès au compte de service Google sur l'instance de base de données Autonomous AI. La valeur par défaut pour username est ADMIN.
Par exemple :
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH(
provider => 'GCP' );
END;
/Pour plus d'informations, reportez-vous à Procédure DISABLE_PRINCIPAL_AUTH.
Remarques sur le compte de service Google
Notes pour l'utilisation du compte de service Google.
-
Restriction de caractère Google Cloud Platform (GCP) :
DBMS_CLOUDne prend pas en charge un URI contenant un "" pour accéder à un nom de bucket Google Cloud Storage. Si le nom de votre bucket 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 Autonomous AI 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 permettant d'activer le compte de service Google sur le clone si vous souhaitez activer le compte de service Google sur une instance clonée.