Mit einem Google-Serviceaccount auf Google Cloud Platform-Ressourcen zugreifen
Mit einem Google-Serviceaccount können Sie von einer autonomen KI-Datenbankinstanz aus auf Google Cloud Platform-(GCP-)Ressourcen zugreifen.
Mit einem Google-Serviceaccount auf Google Cloud-Ressourcen zugreifen
Wenn Sie die kontobasierte Authentifizierung des Google-Service mit Autonomous AI Database verwenden, kann eine Anwendung sicher auf Google Cloud Platform-(GCP-)Ressourcen zugreifen, ohne Zugangsdaten basierend auf langfristigen IAM-Zugriffsschlüsseln für die GCP-Ressourcen zu erstellen und zu speichern.
Ein Google-Dienstkonto ist eine spezielle Art von GCP-Konto, das von einer Anwendung verwendet wird. Mit einem Google-Serviceaccount können Sie autorisierte GCP-REST-API-Aufrufe aus einer Anwendung ausführen (nachdem dem Serviceaccount über die IAM-Rollenkonfiguration Zugriffsberechtigungen erteilt wurden). Wenn eine Anwendung Aufrufe mit der kontobasierten Authentifizierung des GCP-Service durchführt, generiert der erste Aufruf ein temporäres Zugriffstoken über OAuth2.0. Das OAuth2.0-Zugriffstoken ist eine Stunde lang gültig. Nachfolgende Anforderungen innerhalb einer Stunde verwenden das OAuth2.0-Zugriffstoken, um autorisierte GCP-REST-API-Aufrufe auszuführen.
Beispiel: Sie möchten Daten aus Google Cloud Storage in Ihre autonome KI-Datenbank laden, einen Vorgang für die Daten ausführen und die geänderten Daten dann in Google Cloud Storage zurückschreiben. Sie können dies ohne einen Serviceaccount tun, wenn Sie über GCP-Benutzerzugangsdaten für den Zugriff auf Google Cloud Storage verfügen. Die Verwendung eines rollenbasierten Google-Servicekontos für den Zugriff auf GCP-Ressourcen aus der autonomen KI-Datenbank bietet jedoch die folgenden Vorteile:
-
Sie können rollenbasierten Zugriff mit verschiedenen Policys für verschiedene Benutzer oder Schemas erstellen, die Zugriff auf GCP-Ressourcen von einer autonomen KI-Datenbankinstanz benötigen. Auf diese Weise können Sie eine Policy festlegen, um den Zugriff auf Ressourcen nach Rolle zu begrenzen. Beispiel: Sie legen eine Policy fest, die auf schreibgeschützten Zugriff, nach Rolle, auf einen Google Cloud Storage-Bucket beschränkt ist.
-
Die kontobasierten Zugangsdaten des Google-Service bieten eine bessere Sicherheit, da Sie keine langfristigen Benutzerzugangsdaten im Code angeben müssen, wenn Ihre Anwendung auf GCP-Ressourcen zugreift. Autonomous AI Database verwaltet die temporären Zugangsdaten für den Google-Serviceaccount und muss keine GCP-Ressourcenbenutzerzugangsdaten in der Datenbank speichern.
Informationen zu Google-Servicekonten finden Sie unter Servicekonten.
Google-Serviceaccount aktivieren und GCP-Serviceaccountnamen suchen
Bevor Sie eine Google Cloud Platform-(GCP-)Ressource mit einem Google-Serviceaccount verwenden, müssen Sie den GCP-Zugriff für Ihre Autonomous AI Database-Instanz aktivieren.
-
Aktivieren Sie die Authentifizierung des Google-Servicekontos mit
DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH.Beispiel: So aktivieren Sie die Google-Serviceaccountauthentifizierung für den
ADMIN-Benutzer:BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'GCP' ); END; /Aktivieren Sie die Google-Serviceaccountauthentifizierung für einen Benutzer, der nicht
ADMINist,adb_userwie folgt:BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'GCP', username => 'adb_user'); END; /Wenn der angegebene Benutzer Berechtigungen zum Aktivieren der Google-Serviceaccountauthentifizierung für andere Benutzer haben soll, setzen Sie den Parameter
paramsgrant_optionaufTRUE.BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'GCP', username => 'adb_user', params => JSON_OBJECT('grant_option' value TRUE)); END; /Nachdem Sie
DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTHausgeführt haben undgrant_optionaufTRUEgesetzt ist, kannadb_userdie Google-Serviceaccountauthentifizierung für einen anderen Benutzer aktivieren. Beispiel: Wenn Sie eine Verbindung alsadb_userherstellen, können Sie den folgenden Befehl ausführen, um den Zugriff auf GCP-Serviceaccounts füradb_user2zu aktivieren:BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'GCP', username => 'adb_user2'); END; / -
Wenn
DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTHausgeführt wird, wird ein Google-Dienstkonto erstellt. Fragen SieCLOUD_INTEGRATIONSab, um die Serviceaccountdetails für die Instanz der autonomen KI-Datenbank abzurufen.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 -
Beachten Sie den Parameterwert
gcp_service_account, da Sie diesen Wert angeben müssen, wenn Sie GCP-Ressourcen konfigurieren.
Weitere Informationen finden Sie unter Prozedur ENABLE_PRINCIPAL_AUTH.
Dem Google-Serviceaccount Rollen zuweisen und Zugriff auf GCP-Ressourcen bereitstellen
Um Google Cloud Platform-(GCP-)Ressourcen aus einer Autonomous AI Database-Instanz zu verwenden, müssen Sie oder ein Google Cloud-Administrator dem Google-Serviceaccount, auf den Ihre Anwendung zugreift, Rollen und Berechtigungen zuweisen. Zusätzlich zum Zuweisen von Rollen für den Google-Serviceaccount müssen für alle GCP-Ressourcen, die Sie einen Google Cloud-Administrator verwenden möchten, Google IAM-Principals hinzugefügt werden.
Aktivieren Sie als Voraussetzung zunächst den Google-Serviceaccount in Ihrer Autonomous AI Database-Instanz. Weitere Informationen finden Sie unter Google-Serviceaccount aktivieren und GCP-Serviceaccountnamen suchen.
-
Öffnen Sie die Google Cloud-Konsole für Ihren Account.
-
Erstellen Sie Rollen mit den angegebenen Berechtigungen.
-
Wählen Sie im Navigationsmenü IAM und Admin aus.
-
Wählen Sie im IAM- und Admin-Navigator die Option Rollen aus.
-
Klicken Sie auf der Seite "Rollen" auf "Weitere Aktionen", und wählen Sie + ROLE ERSTELLEN aus.
Beispiel: Sie können die Rolle Objektspeicher lesen und schreiben erstellen, um die Verwendung eines Objektspeicher-Buckets zu steuern.
-
-
Klicken Sie auf der Seite "Rolle erstellen" auf + PERMISSIONEN HINZUFÜGEN.
-
Wählen Sie Filter aus, um die Liste der Berechtigungen einzuschränken.
Beispiel: Geben Sie den Filter Berechtigung: Storage.Objects ein, um nur die Objektspeicherberechtigungen anzuzeigen.
-
Klicken Sie im Dialogfeld "Berechtigungen hinzufügen" auf Hinzufügen.
-
-
Klicken Sie auf der Seite "Rolle erstellen" auf Erstellen.
-
Fügen Sie Rollen und Principals für die Ressource hinzu, auf die Sie zugreifen möchten.
Beispiel: Wenn Sie mit der gerade erstellten Rolle auf Google Cloud Storage zugreifen möchten, Object Store Read Write:
-
Wählen Sie im Navigator Cloud Storage aus, und wählen Sie Buckets aus.
-
Wählen Sie den Bucket aus, den Sie verwenden möchten, und klicken Sie auf PERMISSIONS.
-
Klicken Sie auf + PRINCIPAL HINZUFÜGEN.
-
-
Fügen Sie im Dialogfeld "Zugriff auf "bucketname" erteilen" Rollen und Principals für die ausgewählte Ressource hinzu.
-
Fügen Sie unter Principals hinzufügen den Wert des Parameters
gcp_service_accountaus Ihrer autonomen KI-Datenbankinstanz hinzu. -
Geben Sie im Dialogfeld "Zugriff auf "Bucketname" erteilen" unter Rollen zuweisen Rollen ein, und klicken Sie auf Speichern.
-
Nachdem Sie diese Schritte ausgeführt haben, werden die Rollen und Principals zugewiesen. Dadurch kann Ihre Anwendung, die auf der Instanz der autonomen KI-Datenbank ausgeführt wird, mit einem Google-Serviceaccount auf die GCP-Ressource zugreifen.
Google-Serviceaccount mit DBMS_CLOUD verwenden
Wenn Sie DBMS_CLOUD-Aufrufe für den Zugriff auf Google Cloud Platform-(GCP-)Ressourcen tätigen und den Zugangsdatennamen als GCP$PA angeben, erfolgt die Authentifizierung auf der Google Cloud Platform-Seite mit einem Google-Serviceaccount.
Führen Sie die erforderlichen Schritte aus, wenn dies noch nicht geschehen ist:
-
Aktivieren Sie das ADMIN-Schema oder ein anderes Schema, um die Google-Serviceaccountauthentifizierung zu verwenden. Weitere Informationen finden Sie unter Google-Serviceaccount aktivieren und GCP-Serviceaccountnamen suchen.
-
Führen Sie die Google Cloud Platform-Rollenzuweisungen für die Ressourcen aus, auf die Sie zugreifen möchten. Weitere Informationen finden Sie unter Dem Google-Serviceaccount Rollen zuweisen und Zugriff auf GCP-Ressourcen bereitstellen.
So verwenden Sie eine DBMS_CLOUD-Prozedur oder -Funktion mit der Google-Serviceaccountauthentifizierung:
-
Verwenden Sie
GCP$PAals Zugangsdatennamen. -
Erstellen Sie die URI für den Zugriff auf die GCP-Ressource im virtuellen gehosteten Stil:
https://BUCKET_NAME.storage.googleapis.com/OBJECT_NAMEBeispiel: Sie können wie folgt mit den Zugangsdaten des Google-Serviceaccounts auf Google Cloud Storage zugreifen:
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
In den folgenden Themen finden Sie weitere Informationen:
-
Weitere Informationen zu virtuellen gehosteten Anforderungen im GCP-Stil finden Sie unter Anforderungsendpunkte.
-
Siehe Funktion LIST_OBJECTS.
Google-Serviceaccount deaktivieren
Um den Zugriff des Google-Servicekontos auf Google Cloud Platform-(GCP-)Ressourcen zu deaktivieren, verwenden Sie DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH.
Wenn der provider-Wert GCP ist und username ein anderer Benutzer als der ADMIN-Benutzer ist, entzieht die Prozedur dem angegebenen Benutzer die Berechtigungen. In diesem Fall können der ADMIN-Benutzer und andere Benutzer weiterhin GCP$PA verwenden.
Beispiel: So entziehen Sie Berechtigungen für adb_user:
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH(
provider => 'GCP',
username => 'adb_user');
END;
/Wenn der Wert für provider GCP lautet und username ADMIN ist, deaktiviert die Prozedur den Zugriff auf den Google-Serviceaccount in der Instanz der autonomen KI-Datenbank. Der Standardwert für username ist ADMIN.
Beispiel:
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH(
provider => 'GCP' );
END;
/Weitere Informationen finden Sie unter DISABLE_PRINCIPAL_AUTH - Prozedur.
Google-Serviceaccount - Hinweise
Hinweise zur Nutzung des Google-Dienstkontos.
-
Zeichenbeschränkung für Google Cloud Platform (GCP):
DBMS_CLOUDunterstützt keine URI mit einem "" für den Zugriff auf einen Google Cloud Storage-Bucketnamen. Wenn Ihr Google Cloud Storage-Bucket-Name ein "" enthält, wird möglicherweise der folgende Fehler angezeigt: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 -
Autonome AI-Datenbankinstanz mit einem Google-Serviceaccount klonen: Wenn Sie eine Instanz klonen, für die ein Google-Serviceaccount aktiviert ist, wird die Accountkonfiguration des Google-Service nicht auf den Klon übertragen. Führen Sie die Schritte aus, um das Google-Dienstkonto auf dem Klon zu aktivieren, wenn Sie das Google-Dienstkonto auf einer geklonten Instanz aktivieren möchten.