IAM-Bedingungen hinzufügen

Diese Seite gilt für Apigee und Apigee Hybrid.

Mit IAM-Bedingungen (Identity and Access Management) können Sie eine bedingte Zugriffssteuerung für Google Cloud-Ressourcen einschließlich API Hub-Ressourcen definieren und erzwingen. Weitere Informationen zu IAM Conditions finden Sie in der Übersicht über IAM Conditions.

In API Hub können Sie den bedingten Zugriff anhand der folgenden IAM-Ressourcenbedingungen erzwingen:

  • Bedingungsattribut „resource.service“: Mit diesem Attribut können Sie den bedingten Zugriff basierend auf dem verwendeten Google Cloud-Dienst konfigurieren. Sie können beispielsweise eine Bedingung festlegen, die den Zugriff eines Nutzers auf Ressourcen einschränkt, die apihub.googleapis.com verwenden. Eine Liste der unterstützten Werte finden Sie unter Werte für Ressourcendienste.
  • Bedingungsattribut „resource.type“: Mit diesem Attribut können Sie den bedingten Zugriff basierend auf dem Typ der zugegriffenen Ressource konfigurieren. Sie können beispielsweise eine Bedingung festlegen, die den Zugriff eines Nutzers auf apihub.googleapis.com/Api einschränkt. Eine Liste der unterstützten Werte finden Sie unter Werte für Ressourcentypen.
  • Bedingungsattribut „resource.name“: Mit diesem Attribut können Sie den bedingten Zugriff basierend auf dem vollständigen Namen oder einem Teil des Namens einer Ressource konfigurieren. Eine Liste der unterstützten API-Hub-Namensformate finden Sie unter Format der Ressourcennamen.

IAM-Bedingung hinzufügen

Führen Sie die folgenden Schritte aus, um einem vorhandenen Hauptkonto (Nutzer, Gruppe oder Dienstkonto) eine IAM-Bedingung hinzuzufügen:

  1. Öffnen Sie in der Google Cloud Console die Seite IAM.

    Rufen Sie IAM auf.

  2. Wählen Sie Ihr Projekt, Ihren Ordner oder Ihre Organisation aus.
  3. Suchen Sie in der Liste der Hauptkonten nach dem Hauptkonto, für das Sie die IAM-Bedingung hinzufügen möchten, und klicken Sie auf (Hauptkonto bearbeiten).

    Der Bereich Zugriff bearbeiten wird angezeigt.

  4. Suchen Sie die Rolle, der Sie die IAM-Bedingung hinzufügen möchten, und klicken Sie auf + IAM-Bedingung hinzufügen.
  5. Geben Sie im Bereich Bedingung hinzufügen die folgenden Informationen an:
    1. Titel: Geben Sie einen Namen für die Bedingung ein, die Sie der Rolle hinzufügen.
    2. Beschreibung: (Optional) Geben Sie eine Beschreibung für die Bedingung ein.
    3. Sie können einen Bedingungsausdruck entweder mit dem Builder für IAM-Bedingungen oder dem Bedingungseditor hinzufügen.

      Der Builder für IAM-Bedingungen bietet eine interaktive Oberfläche, in der Sie die gewünschte Bedingung, den Operator und andere anwendbare Details zum Ausdruck auswählen können. Der Bedingungseditor bietet eine textbasierte Oberfläche zur manuellen Eingabe eines Bedingungsausdrucks mit der CEL-Syntax.

      Eine ausführliche Anleitung zur Verwendung des Builder für IAM-Bedingungen oder des Bedingungseditors finden Sie unter Ressourcenbasierten Zugriff konfigurieren.

    4. Klicken Sie auf Speichern, um die Bedingung anzuwenden.
  6. Klicken Sie im Bereich Zugriff bearbeiten noch einmal auf Speichern, um das Hauptkonto zu aktualisieren.

Beispiele für die Verwendung von IAM-Bedingungen für den API-Hub

Beispiel 1: Zugriffssteuerung für alle API-Ressourcen, die mit einer IAM-Bedingung beginnen, die auf dem Ressourcennamen basiert.

Im folgenden Bedingungsausdruck wird die Zugriffssteuerung so definiert:

  • Zugriff auf API-Ressourcen, die mit dem Präfix beginnen. Dazu gehört der Zugriff auf alle API-Ressourcen, einschließlich API-Versionen, Bereitstellungen, Spezifikationen, Vorgänge und Definitionen.
  • Standardmäßiger, rollenbasierter, nicht bedingter Zugriff auf andere API-Hub-Ressourcen.
  (
    resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/apis/API_ID_PREFIX") ||
    (
      resource.type != "apihub.googleapis.com/Api" &&
      resource.type != "apihub.googleapis.com/Version" &&
      resource.type != "apihub.googleapis.com/Spec" &&
      resource.type != "apihub.googleapis.com/ApiOperation" &&
      resource.type != "apihub.googleapis.com/Definition"
    )
  )

Ersetzen Sie Folgendes:

  • PROJECT_ID: Die ID Ihres Google Cloud Projekts.
  • LOCATION: Der Speicherort des API-Hubs.
  • API_ID_PREFIX: Das Präfix für den Namen der API-Ressource.

Beispiel 2: Zugriffssteuerung für mehrere APIs mit IAM-Bedingungen basierend auf dem Ressourcentyp

Im folgenden Bedingungsausdruck wird die Zugriffssteuerung so definiert:

  • Zugriff auf die API-Ressourcen des API-Hubs, die mit dem Präfix beginnen.
  • Zugriff auf die API-Hub-Versionsressource, die mit einer bestimmten Versions-ID beginnt.
  • Zugriff auf die API-Hub-Spezifikationsressourcen, die mit einer bestimmten Spezifikations-ID beginnen.
  • Standardmäßiger, rollenbasierter, nicht bedingter Zugriff auf andere API-Hub-Ressourcen.
  (
    resource.service == "apihub.googleapis.com" &&
    resource.type == "apihub.googleapis.com/Api" &&
    resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/apis/API1_ID_PREFIX")
  ) ||
  (
    resource.service == "apihub.googleapis.com" &&
    resource.type == "apihub.googleapis.com/Version" &&
    resource.name == "projects/PROJECT_ID/locations/LOCATION/apis/API2_ID/versions/API2_VERSION_ID"
  ) ||
  (
    resource.service == "apihub.googleapis.com" &&
    resource.type == "apihub.googleapis.com/Spec" &&
    resource.name == "projects/PROJECT_ID/locations/LOCATION/apis/API3_ID/versions/API3_VERSION_ID/specs/API3_SPEC_ID"
  ) ||
  (
    resource.type != "apihub.googleapis.com/Api" &&
    resource.type != "apihub.googleapis.com/Version" &&
    resource.type != "apihub.googleapis.com/Spec" &&
    resource.type != "apihub.googleapis.com/ApiOperation" &&
    resource.type != "apihub.googleapis.com/Definition"
  )
Ersetzen Sie Folgendes:

  • PROJECT_ID: Die ID Ihres Google Cloud Projekts.
  • LOCATION: Der Speicherort des API-Hubs.
  • API1_ID_PREFIX: Das Präfix für den Namen der ersten API-Ressource.
  • API2_ID: Die ID der zweiten API-Ressource.
  • API2_VERSION_ID: Die ID der zweiten API-Versionsressource.
  • API3_ID: Die ID der dritten API-Ressource.
  • API3_VERSION_ID: Die ID der dritten API-Versionsressource.
  • API3_SPEC_ID: Die ID der dritten API-Spezifikationsressource.