Zugriff auf mit IAP gesicherte Ressourcen verwalten

Auf dieser Seite wird beschrieben, wie Sie den Zugriff von Einzelpersonen oder Gruppen auf durch Identity-Aware Proxy (IAP) gesicherte Ressourcen auf Ressourcenebene verwalten.

Übersicht

Mit IAP können Sie IAP-Richtlinien für einzelne und Cloud Run-Ressourcen in einem Google Cloud -Projekt konfigurieren. Für Anwendungen innerhalb eines Projekts können unterschiedliche Zugriffsrichtlinien gelten. Diese Funktion gilt für Projekte mit Compute Engine- und Google Kubernetes Engine-Anwendungen sowie App Engine-Anwendungen. Bei App Engine-Anwendungen können für einzelne Versionen und Dienste unterschiedliche Zugriffsrichtlinien gültig sein.

Wenn Sie den Zugriff auf Projektebene und höher verwalten möchten, rufen Sie die IAM-Seite auf. Listen von Nutzern, die Zugriff auf Projektebene haben (die „Hauptkonten“), gelten für alle IAP-gesicherten Ressourcen im Projekt.

Hinweis

Für den Start ist Folgendes erforderlich:

  • Eine durch IAP gesicherte Ressource, der Sie individuellen oder Gruppenzugriff hinzufügen möchten.
  • Die Namen der Nutzer oder Gruppen, denen Sie das Zugriffsrecht erteilen wollen.

IAP aktivieren und deaktivieren

Zur Aktivierung und Deaktivierung von Cloud IAP benötigen Sie bestimmte Berechtigungen. Die folgende Tabelle enthält die für jeden Anwendungstyp erforderliche Berechtigung.

Anwendungstyp Erforderliche Berechtigung
App Engine appengine.applications.update
Compute Engine, Google Kubernetes Engine oder Cloud Run compute.backendServices.update
Diese Berechtigungen werden von Rollen wie „Project Editor“, „App Engine Admin“ und „Compute Network Admin“ gewährt. Diese Rollen ermöglichen zwar das Aktivieren und Deaktivieren von IAP, sie haben jedoch nicht die Berechtigungen, die zum Ändern von Zugriffsrichtlinien erforderlich sind.

Darüber hinaus sind für das Aktivieren von IAP mit der Google Cloud Console möglicherweise auch die Berechtigungen clientauthconfig.clients.create, clientauthconfig.clients.update und clientauthconfig.clients.getWithSecret erforderlich. Diese Berechtigungen werden durch die Rolle „Project Editor“ gewährt.

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

Zugriff in der Google Cloud Console verwalten

Wenn Sie den Zugriff auf eine IAP-gesicherte Ressource über dieGoogle Cloud Console steuern möchten, folgen Sie der Anleitung zum Hinzufügen oder Entfernen des Zugriffs.

Zugriff hinzufügen

  1. Rufen Sie die Seite Identity-Aware Proxy auf.
    Zur Seite "Identity-Aware Proxy"

  2. Wählen Sie die Ressource aus, die Sie mit IAP sichern möchten. Mit der folgenden Ressourcenauswahl wird eine Gruppe von Ressourcen gesichert:

    • Alle Webdienste: Es werden alle Ressourcen im Projekt gesichert. Beachten Sie, dass dies nicht mit dem Gewähren des Zugriffs auf Projektebene über die Seite IAM & Verwaltung identisch ist. Wenn einem Nutzer die Rolle IAP-Richtlinienadministrator auf der Ressourcenebene Alle Webdienste zugewiesen wurde, verfügt er nur über Berechtigungen für IAP-Richtlinien.

    • Back-End-Dienste: Es werden alle Back-End-Dienste gesichert.

  3. Fügen Sie im Infofeld auf der rechten Seite die E-Mail-Adressen von Gruppen oder Einzelpersonen hinzu, denen Sie eine IAM-Rolle (Identity and Access Management) für die Ressource zuweisen möchten.

  4. Wenden Sie Zugriffsrichtlinienrollen auf das Hauptkonto an, indem Sie im Drop-down-Menü Rolle auswählen eine der folgenden Rollen auswählen:

    • Inhaber: Gewährt denselben Zugriff wie der IAP-Richtlinienadministrator. Verwenden Sie stattdessen die Rolle IAP-Richtlinienadministrator. Diese Rolle ermöglicht nur das Ändern von Richtlinien und gewährt keinen Zugriff auf die Anwendung.

    • IAP-Richtlinienadministrator: Gewährt Administratorrechte auf Cloud IAP-Richtlinien.

    • Nutzer von IAP-gesicherten Web-Apps: Gewährt Zugriff auf die Anwendung und andere HTTPS-Ressourcen, die IAP verwenden.

    • Sicherheitsprüfer: Gewährt Berechtigung zum Aufrufen und Prüfen von IAP-Richtlinien.

  5. Wenn Sie das Hinzufügen von E-Mail-Adressen und das Festlegen von Rollen abgeschlossen haben, klicken Sie auf Hinzufügen.

Zugriff aufheben

  1. Rufen Sie die Seite Identity-Aware Proxy auf.
    Zur Seite "Identity-Aware Proxy"
  2. Wählen Sie die Ressource aus, die mit IAP gesichert ist.
  3. Wählen Sie im rechten Infofeld den Bereich aus, der der Rolle entspricht, die Sie von einem Hauptkonto entfernen möchten.
  4. Klicken Sie im erweiterten Bereich neben jedem Nutzer- oder Gruppennamen, bei dem Sie die Rolle entfernen möchten, auf Entfernen.
  5. Klicken Sie im Dialogfeld Hauptkonto entfernen auf Entfernen.

Zugriff mit der API verwalten

IAM bietet einen Standardsatz von Methoden zum Erstellen und Verwalten von Zugriffssteuerungsrichtlinien für Google Cloud -Ressourcen.

Ressourcen und Berechtigungen

Mit der IAP API können Sie IAM-Berechtigungen auf einzelne Ressourcen in einem mit IAP gesicherten Projekt anwenden. IAM-Berechtigungen auf einer bestimmten Ebene sind für alle Ebenen gültig, die dieser untergeordnet sind. Eine auf Projektebene gewährte Berechtigung gilt beispielsweise für alle Google Cloud -Ressourcen im Projekt. Der Zugriff auf Ressourcen auf Projektebene und höher wird auf der IAM-Verwaltungsseite verwaltet, aber auf der IAP-Verwaltungsseite angezeigt.

Nutzer benötigen bestimmte Berechtigungen, um auf eine durch IAP geschützte Anwendung zugreifen zu können. Administratoren können diese Berechtigungen gewähren, indem sie IAM-Richtlinien über eine API aktualisieren. Die Berechtigung iap.webServiceVersions.accessViaIAP gewährt Nutzern Zugriff auf eine Anwendung. Wenn Sie IAP verwenden, um den Zugriff auf administrative Dienste wie SSH und RDP zu steuern, benötigen Nutzer die Berechtigung iap.tunnelInstances.accessViaIAP.

Jede IAP-Ressource hat ihre eigenen Berechtigungen getIamPolicy und setIamPolicy, mit denen die Zugriffsrichtlinien für diese Ressource und die ihr untergeordneten Ressourcen verwaltet werden können.

Für den Aufruf der IAM API erstellen Sie einen Aufruf mit einem URL-Pfad zu einer Ressource. Im folgenden Beispiel wird die IAM-Richtlinie für eine App Engine-Anwendungsdienstversion abgerufen.

https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/
appengine-APP_ID/services/SERVICE_ID/versions/VERSION_ID:getIamPolicy

In der folgenden Tabelle sind die unterstützten Ressourcentypen sowie die Berechtigungen aufgeführt, die zum Aufrufen der IAM API erforderlich sind.

Ressourcentyp Berechtigungen
Alle IAP-gesicherten Web-Apps im Projekt
Dies entspricht dem Kästchen Alle Webdienste auf der IAP-Seite.

Pfad
https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web
iap.web.getIamPolicy

iap.web.setIamPolicy
Jeder Backend-Dienst im Projekt
Dies entspricht dem Kästchen Backend-Dienst auf der IAP-Seite.

Pfade
Globaler Bereich:
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/compute

Regionaler Geltungsbereich:
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/compute-REGION_NAME
iap.webTypes.getIamPolicy

iap.webTypes.setIamPolicy
Jede Weiterleitungsregel im Projekt
Berechtigungen für alle Weiterleitungsregeln im Projekt.

Pfade
Globaler Bereich:
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/forwarding_rule

Regionaler Geltungsbereich:
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/forwarding_rule-REGION_NAME
iap.webTypes.getIamPolicy

iap.webTypes.setIamPolicy
Eine Region für jeden Cloud Run-Dienst im Projekt
Berechtigungen für alle Cloud Run-Dienste in einer Region im Projekt.

Pfad
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/cloud_run-REGION_NAME
iap.webTypes.getIamPolicy

iap.webTypes.setIamPolicy
Cloud Run-Dienst
Berechtigungen für einen Cloud Run-Dienst. Alle Cloud Run-Dienste sind regional.

Pfad
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/cloud_run-REGION_NAME/services/SERVICE_NAME
iap.webServices.getIamPolicy

iap.webServices.setIamPolicy
Eine App Engine-Anwendung
Dies entspricht dem Kästchen App Engine-Anwendung auf der IAP-Seite.

Pfad
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/appengine-APP_ID
iap.webTypes.getIamPolicy

iap.webTypes.setIamPolicy
Ein Compute Engine-Backend-Dienst
Der Backend-Dienstpfad kann entweder die Backend-Dienst-ID oder den Backend-Dienstnamen angeben.

Pfade
Globaler Bereich:
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/compute/services/
BACKEND_SERVICE_ID or BACKEND_SERVICE_NAME

Regionaler Geltungsbereich:
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/compute-REGION_NAME/
services/BACKEND_SERVICE_ID or BACKEND_SERVICE_NAME
iap.webServices.getIamPolicy

iap.webServices.setIamPolicy
Eine Compute Engine-Weiterleitungsregel
Berechtigungen für eine Weiterleitungsregel. Der Pfad der Weiterleitungsregel kann entweder die ID oder den Namen der Weiterleitungsregel angeben.

Pfade
Globaler Bereich:
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/forwarding_rule/services/
FORWARDING_RULE_ID or FORWARDING_RULE_NAME

Regionaler Geltungsbereich:
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/forwarding_rule-REGION_NAME/
services/FORWARDING_RULE_ID or FORWARDING_RULE_NAME
iap.webServices.getIamPolicy

iap.webServices.setIamPolicy
Ein App Engine-Anwendungsdienst

Pfad
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/appengine-APP_ID/
services/APP_SERVICE_ID
iap.webServices.getIamPolicy

iap.webServices.setIamPolicy
Eine App Engine-Dienstversion
Compute Engine unterstützt keine Versionsverwaltung.

Pfad
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/appengine-APP_ID/
services/APP_SERVICE_ID/versions/VERSION_ID
iap.webServiceVersions.getIamPolicy

iap.webServiceVersions.setIamPolicy
Jede durch IAP gesicherte VM-Instanz im Projekt
Dies entspricht dem Kästchen Alle Tunnelressourcen auf der IAP-Seite.

Pfad
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel
iap.tunnel.getIamPolicy

iap.tunnel.setIamPolicy
Eine Zone mit mindestens einer VM-Instanz
Dies entspricht einem Zonennamen-Kästchen auf der IAP-Seite, z. B. us-central1-c.

Pfad
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel/zones/ZONE_NAME
iap.tunnelZones.getIamPolicy

iap.tunnelZones.setIamPolicy
Eine einzelne VM-Instanz

Pfad
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel/zones/ZONE_NAME
/instances/INSTANCE_ID or INSTANCE_NAME
iap.tunnelInstances.getIamPolicy

iap.tunnelInstances.setIamPolicy
Eine Region mit mindestens einer Zielgruppe, z. B. us-central1

Pfad
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel/locations/REGION_NAME
iap.tunnelLocations.getIamPolicy

iap.tunnelLocations.setIamPolicy
Eine einzelne Zielgruppe

Pfad
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel/locations/REGION_NAME
/destGroups/GROUP_NAME
iap.tunnelDestGroups.getIamPolicy

iap.tunnelDestGroups.setIamPolicy

Rollen

In der folgenden Tabelle sind die IAP IAM-Rollen mit einer entsprechenden Liste aller IAP-spezifischen Berechtigungen aufgeführt, die jede Rolle enthält. Weitere Informationen zu IAM-Rollen finden Sie unter Rollen und Berechtigungen verwalten.

Rolle Enthaltene Berechtigung(en) Beschreibung
Nutzer von IAP-gesicherten Web-Apps (roles/iap.httpsResourceAccessor) iap.webServiceVersions.accessViaIAP Gewährt Zugriff auf App Engine- und Compute Engine-Ressourcen.
Nutzer IAP-gesicherter Tunnel (roles/iap.tunnelResourceAccessor) iap.tunnelInstances.accessViaIAP
iap.tunnelDestGroups.accessViaIAP
Gewährt Zugriff auf VM-Instanzen, die durch IAP gesichert sind.
IAP-Richtlinienadministrator (roles/iap.admin) iap.web.getIamPolicy
iap.web.setIamPolicy
iap.webTypes.getIamPolicy
iap.webTypes.setIamPolicy
iap.webServices.getIamPolicy
iap.webServices.setIamPolicy
iap.webServiceVersions.getIamPolicy
iap.webServiceVersions.setIamPolicy
iap.tunnel.getIamPolicy
iap.tunnel.setIamPolicy
iap.tunnelZones.getIamPolicy
iap.tunnelZones.setIamPolicy
iap.tunnelInstances.getIamPolicy
iap.tunnelInstances.setIamPolicy
Gewährt IAP-Administratorrechte, um IAP-Zugriffsrichtlinien für Ressourcen zu verwalten.

Zugriff mit der Google Cloud CLI verwalten

Sie können den Zugriff auch über die Google Cloud CLI verwalten.

Zugriff verweigern

Mit IAM-Ablehnungsrichtlinien (Identity and Access Management) können Sie Leitlinien für den Zugriff auf Google Cloud -Ressourcen festlegen. Eine Liste von Szenarien, in denen Ablehnungsrichtlinien nützlich sind, finden Sie unter Anwendungsfälle.

Sie können Ablehnungsrichtlinien erstellen und alle IAP-Berechtigungen in diese Richtlinien aufnehmen. Eine Liste der IAP-Berechtigungen, die Sie einer Ablehnungsrichtlinie hinzufügen können, finden Sie unter In Ablehnungsrichtlinien unterstützte Berechtigungen. Suchen Sie dort nach iap.googleapis.com. Ablehnungsrichtlinien können zwar auf alle IAP-Berechtigungen angewendet werden, ihre Wirksamkeit ist jedoch an einen Anhangspunkt der Ablehnungsrichtlinie gebunden.

Einige IAP-Berechtigungen sind nur auf der jeweiligen Ressourcenebene und nicht auf den untergeordneten Ressourcen wirksam. Beispiel: iap.organizations.getSettings gewährt Zugriff auf getSettings auf Organisationsebene und nicht auf die untergeordneten Elemente der Organisation. Das bedeutet, dass Administratoren beim Erstellen von Ablehnungsrichtlinien alle relevanten detaillierten Berechtigungen explizit auflisten müssen, um den Zugriff an einem Anhangspunkt und seinen untergeordneten Elementen zu verweigern.

Eine vollständige Liste dieser detaillierten Berechtigungen finden Sie unter In Ablehnungsrichtlinien unterstützte Berechtigungen. Alle Berechtigungen unter dem FQDN iap.googleapis.com und den Ressourcentypen iap.organizations, iap.folders, iap.projects, iap.web, iap.webTypes, iap.webServices, iap.webServicesVersions sind detaillierte Berechtigungen.

Im Folgenden finden Sie ein Beispiel für eine IAM-Ablehnungsrichtlinie, mit der einem Hauptkonto in einer Organisation und seinen untergeordneten Elementen der Zugriff auf die getSettings API verweigert wird.

{
  "name": "policies/cloudresourcemanager.googleapis.com%2Forganizations%2F253519172624/denypolicies/testpolicyid",
  "uid": "06ccd2eb-d2a5-5dd1-a746-eaf4c6g3f816",
  "kind": "DenyPolicy",
  "displayName": "Only project admins can delete projects.",
  "etag": "MTc1MTkzMjY0MjUyMTExODMxMDQ=",
  "createTime": "2021-09-07T23:15:35.258319Z",
  "updateTime": "2021-09-07T23:15:35.258319Z",
  "rules": [
    {
      "denyRule": {
        "deniedPrincipals": [
          "principalSet://goog/public:all"
        ],
        "deniedPermissions": [
          "iap.googleapis.com/iap.organizations.getSettings",
          "iap.googleapis.com/iap.folders.getSettings",
          "iap.googleapis.com/iap.projects.getSettings",
          "iap.googleapis.com/iap.web.getSettings",
          "iap.googleapis.com/iap.webTypes.getSettings",
          "iap.googleapis.com/iap.webServices.getSettings",
          "iap.googleapis.com/iap.webServicesVersions.getSettings",
        ],
      }
    }
  ]
}

Anstatt alle detaillierten Berechtigungen anzugeben, finden Sie hier ein Beispiel für eine IAM-Ablehnungsrichtlinie mit nur einer Berechtigung: *.getSettings.

{
  "name": "policies/cloudresourcemanager.googleapis.com%2Forganizations%2F253519172624/denypolicies/testpolicyid",
  "uid": "06ccd2eb-d2a5-5dd1-a746-eaf4c6g3f816",
  "kind": "DenyPolicy",
  "displayName": "Only project admins can delete projects.",
  "etag": "MTc1MTkzMjY0MjUyMTExODMxMDQ=",
  "createTime": "2021-09-07T23:15:35.258319Z",
  "updateTime": "2021-09-07T23:15:35.258319Z",
  "rules": [
    {
      "denyRule": {
        "deniedPrincipals": [
          "principalSet://goog/public:all"
        ],
        "deniedPermissions": [
          "iap.googleapis.com/*.getSettings",
        ],
      }
    }
  ]
}

Im Folgenden finden Sie einige einfachere Möglichkeiten, eine IAM-Ablehnungsrichtlinie zu erstellen, ohne alle detaillierten Berechtigungen angeben zu müssen.

Administratoraktion Berechtigung in Ablehnungsrichtlinie
Bestimmte IAP-Berechtigungen für alle IAP-Ressourcentypen ablehnen *.updateSettings
*.getSettings
*.setIamPolicy
*.getIamPolicy
Alle IAP-Berechtigungen für einen bestimmten Ressourcentyp ablehnen iap.organizations.*
iap.folders.*
iap.projects.*
iap.web.*
iap.webTypes.*
iap.webServices.*
iap.webServicesVersions.*

Öffentlicher Zugriff

Wenn Sie allen Zugriff auf eine Ressource gewähren möchten, weisen Sie einem der folgenden Hauptkonten eine Rolle zu:

  • allAuthenticatedUsers: Jeder, der sich mit einem Google-Konto oder einem Dienstkonto authentifiziert hat.

  • allUsers: Jeder, der eine Internetverbindung hat, einschließlich authentifizierter und nicht authentifizierter Nutzer. Der signierte Header für die Anfrage hat keine Anforderung sub oder email.

Wenn ein öffentlicher Zugriff gewährt wird, generiert IAP keine Cloud-Audit-Logs für die Anfrage.

Derzeit können Bindungen, die öffentlichen Zugriff gewähren, nicht mit einer Bedingung verknüpft werden. Beispielsweise ist eine Richtlinie, die allen Nutzern den Zugriff auf eine Ressource ermöglicht, wenn der Anfragepfad mit /public/ beginnt, ungültig.