Die meisten Google Cloud Ressourcen bieten die Methode testIamPermissions(), mit der Sie programmatisch prüfen können, ob dem aktuell authentifizierten Aufrufer eine oder mehrere spezifische IAM-Berechtigungen für die Ressource erteilt wurden. Die Methode testIamPermissions() gibt mit einer Ressourcen-ID und einem Satz von Berechtigungen als Eingabeparameter den Satz an Berechtigungen für den Aufrufer zurück.
Mit der Methode testIamPermissions() können Sie bestimmen, ob ein Nutzer Zugriff auf ein Verwaltungstool in einer Webanwendung haben soll. Mit dieser Methode können Sie beispielsweise anhand der Berechtigungen des Nutzers entscheiden, ob detaillierte Informationen zu einer Google Cloud -Ressource angezeigt werden sollen.
Es soll beispielsweise festgestellt werden, ob der aktuell authentifizierte Nutzer zum Löschen eines Projekts berechtigt ist. Rufen Sie dazu die Methode projects.testIamPermissions()auf und geben Sie dabei die Projekt-ID (z. B. foo-project) und die Berechtigung resourcemanager.projects.deleteals Eingabeparameter an. Wenn dem Aufrufer die Berechtigung resourcemanager.projects.delete gewährt wurde, ist dies im Antworttext aufgeführt. Wenn der Aufrufer diese Berechtigung nicht hat, listet der Antworttext keine Berechtigungen auf.
Die Methode testIamPermissions() ist für grafische Benutzeroberflächen (GUIs) von Drittanbietern vorgesehen, die Google Cloud -Ressourcen auf der Grundlage der Berechtigungen des authentifizierten Nutzers anzeigen sollen. Beispielsweise verwendet dieGoogle Cloud Console intern die Methode testIamPermissions(), um zu bestimmen, welche Ressourcen und Funktionen nach der Authentifizierung angezeigt werden. Unterschiedlichen Nutzern werden in der Regel unterschiedliche Berechtigungen gewährt. Die Google Cloud Console blendet Elemente entsprechend aus oder stellt sie zur Verfügung.
Hinweis
Aktivieren Sie die Resource Manager API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von RollenRichten Sie die Authentifizierung ein.
Wählen Sie den Tab aus, der Ihrer geplanten Verwendung der Beispiele auf dieser Seite entspricht:
C#
Wenn Sie die .NET-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.
C++
Wenn Sie die C++-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.
Java
Wenn Sie die Java-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.
Python
Wenn Sie die Python-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.
REST
Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.
Installieren Sie die Google Cloud CLI.
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.
-
Erforderliche Rollen
Zum Testen von Berechtigungen ist keine IAM-Rolle erforderlich.
Berechtigungen testen
In diesem Beispiel wird gezeigt, wie die Berechtigungen resourcemanager.projects.get und resourcemanager.projects.delete für ein Google Cloud -Projekt getestet werden. Verwenden Sie zum Testen von Berechtigungen für andere Google Cloud Ressourcen die Methode testIamPermissions(), die von den einzelnen Ressourcen bereitgestellt wird. Sie können beispielsweise die IAM-Berechtigungen für einen Cloud Storage-Bucket testen.
C++
Informationen zum Installieren und Verwenden der Clientbibliothek für IAM finden Sie unter IAM-Clientbibliotheken. Weitere Informationen finden Sie in der IAM-Referenzdokumentation zur C++ API.
Richten Sie zur Authentifizierung bei IAM die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Vorbereitung.
C#
Richten Sie zur Authentifizierung bei Resource Manager die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Vorbereitung.
Informationen zum Installieren und Verwenden der Clientbibliothek für Resource Manager finden Sie unter Resource Manager-Clientbibliotheken.
IAM testet die Berechtigungen des Dienstkontos, mit dem Sie Anmeldedaten generieren.
Java
Richten Sie zur Authentifizierung bei Resource Manager die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Vorbereitung.
Informationen zum Installieren und Verwenden der Clientbibliothek für Resource Manager finden Sie unter Resource Manager-Clientbibliotheken.
IAM testet die Berechtigungen des Dienstkontos, mit dem Sie Anmeldedaten generieren.
Python
Richten Sie zur Authentifizierung bei Resource Manager die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Vorbereitung.
Informationen zum Installieren und Verwenden der Clientbibliothek für Resource Manager finden Sie unter Resource Manager-Clientbibliotheken.
IAM testet die Berechtigungen des Dienstkontos, mit dem Sie Anmeldedaten generieren.
REST
In diesem Beispiel hat der Nutzer eine IAM-Rolle, mit der er Informationen zu einem Projekt abrufen, aber keine Projekte löschen kann.
Die Methode projects.testIamPermissions der Resource Manager API akzeptiert eine Liste von Berechtigungen und testet, welche Berechtigungen ein Hauptkonto hat.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID: Ihre Google Cloud Projekt-ID. Projekt-IDs sind alphanumerische Strings, wiemy-project.
HTTP-Methode und URL:
POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:testIamPermissions
JSON-Text anfordern:
{
"permissions": [
"resourcemanager.projects.get",
"resourcemanager.projects.delete"
]
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{
"permissions": [
"resourcemanager.projects.get"
]
}
Nächste Schritte
Zugriffsrechte für Hauptkonten gewähren, ändern und widerrufen