Empfehlungen prüfen und anwenden

Auf dieser Seite wird erläutert, wie Sie Empfehlungen des IAM-Recommenders aufrufen, interpretieren und anwenden. Mit dem IAM-Recommender können Sie das Prinzip der geringsten Berechtigung erzwingen und Mitgliedern nur die Berechtigungen erteilen, die sie tatsächlich benötigen.

Vorbereitung

Empfehlungen prüfen und anwenden

Die einfachste Möglichkeit, Ihre Empfehlungen zu prüfen und anzuwenden, ist das Verwenden der Google Cloud Console. Für folgende Aufgaben müssen Sie die Cloud Console verwenden:

  • Details dazu ansehen, warum Sie eine Empfehlung erhalten haben
  • Empfehlungen verwerfen
  • Beim Anwenden einer Empfehlung automatisch eine benutzerdefinierte Rolle erstellen lassen

Sie können Empfehlungen auch mit dem gcloud-Befehlszeilentool und der Recommender API prüfen und anwenden.

Console

  1. Rufen Sie in der Cloud Console die Seite IAM auf.

    Zur Seite "IAM"

  2. Suchen Sie in der Liste der Mitglieder Ihres Projekts nach der Spalte Zu viel gewährte Berechtigungen.

    In dieser Spalte wird für jede Rolle, die einem Mitglied gewährt wurde, die Anzahl der in den letzten 90 Tagen nicht verwendeten Berechtigungen der Rolle angezeigt, gefolgt von der Gesamtzahl der Berechtigungen der Rolle:

    Das Symbol Empfehlung verfügbar  gibt an, dass für die Rolle eine Empfehlung verfügbar ist, entweder um die Rolle zu widerrufen oder um sie durch eine Rolle mit weniger Berechtigungen zu ersetzen.

    Das Symbol Empfehlung nicht verfügbar  gibt an, dass für die Rolle keine Änderungsempfehlungen vorliegen. Halten Sie den Mauszeiger über das Symbol, um den Grund herauszufinden.

  3. Falls Empfehlungen zum Prüfen vorhanden sind, klicken Sie auf ein Empfehlung verfügbar-Symbol , um sich Details zur Empfehlung anzusehen.

    Wenn die Empfehlung darin besteht, die Rolle zu ersetzen, schlägt der IAM-Recommender immer eine Reihe von vordefinierten Rollen vor, die Sie anwenden können.

    In einigen Fällen schlägt der IAM-Recommender auch vor, eine neue benutzerdefinierte Rolle auf Projektebene zu erstellen. Wenn eine Empfehlung zum Erstellen einer benutzerdefinierten Rolle verfügbar ist, wird sie standardmäßig in der Cloud Console angezeigt. Wenn Sie sich wieder ansehen möchten, welche vordefinierte Rolle empfohlen wurde, klicken Sie auf Empfohlene vordefinierte Rollen ansehen.

  4. Prüfen Sie die Empfehlung eingehend und machen Sie sich klar, wie sich dadurch der Zugriff des Mitglieds auf Google Cloud-Ressourcen ändert. Unter Empfehlungen prüfen erfahren Sie, welche Arten von Änderungen eine Empfehlung enthalten kann.

  5. Optional: Wenn die Empfehlung lautet, eine benutzerdefinierte Rolle zu erstellen, aktualisieren Sie, falls nötig, den Titel, die Beschreibung, die ID und die Phase der Rollenerstellung.

    Wenn Sie der benutzerdefinierten Rolle Berechtigungen hinzufügen möchten, klicken Sie auf Berechtigungen hinzufügen.

    Wenn Sie aus der benutzerdefinierten Rolle Berechtigungen entfernen möchten, entfernen Sie für jede Berechtigung, die Sie entfernen möchten, das Häkchen aus dem entsprechenden Kästchen.

  6. Setzen Sie die Empfehlung um.

    Klicken Sie zum Übernehmen der Empfehlung auf Anwenden oder Erstellen und Anwenden und bestätigen Sie Ihre Auswahl. Falls Sie Ihre Meinung in den nächsten 90 Tagen ändern, verwenden Sie die IAM-Recommender-Logs, um die Auswahl rückgängig zu machen.

    Wenn Sie die Empfehlung verwerfen möchten, klicken Sie auf Verwerfen und bestätigen dann Ihre Auswahl. Sie können eine verworfene Empfehlung wiederherstellen, solange die Empfehlung noch gültig ist.

  7. Wiederholen Sie die vorherigen Schritte, bis Sie alle Empfehlungen geprüft haben.

gcloud-Befehl

Führen Sie den gcloud recommender recommendations list-Befehl aus, um Ihre Empfehlungen aufzulisten:

gcloud recommender recommendations list \
    --location=global \
    --recommender=google.iam.policy.Recommender \
    --project=project-id \
    --format=format

Ersetzen Sie die folgenden Werte:

  • project-id: die Projekt-ID, z. B. project-123.
  • format: das Format der Antwort. Verwenden Sie json oder yaml.

Die Antwort ähnelt dem folgenden Beispiel. In diesem Beispiel hat ein Dienstkonto in den letzten 90 Tagen keine Berechtigungen der Rolle "Compute-Administrator" (roles/compute.admin) verwendet. Daher schlägt der IAM-Recommender vor, dass Sie die Rolle widerrufen:

[
  {
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "remove",
              "path": "/iamPolicy/bindings/*/members/*",
              "pathFilter": {
                "/iamPolicy/bindings/*/condition/expression": "",
                "/iamPolicy/bindings/*/members/*": "serviceAccount:id-1234567890@example-project.iam.gserviceaccount.com",
                "/iamPolicy/bindings/*/role": "roles/compute.admin"
              },
              "resource": "//cloudresourcemanager.googleapis.com/projects/example-project",
              "resourceType": "cloudresourcemanager.googleapis.com/Project"
            }
          ]
        }
      ]
    },
    "description": "This role has not been used during the observation window.",
    "recommenderSubtype": "REMOVE_ROLE",
    "etag": "\"770237e2c0decf40\"",
    "lastRefreshTime": "2020-01-09T06:06:17Z",
    "name": "projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "primaryImpact": {
      "category": "SECURITY",
        "securityProjection": {
          "revokedIamPermissionsCount": 708
        }
    },
    "stateInfo": {
      "state": "ACTIVE"
    }
  }
]

Prüfen Sie jede Empfehlung sorgfältig und überlegen Sie, wie sich durch die empfohlenen Änderungen der Zugriff des Mitglieds auf Google Cloud-Ressourcen ändert.

So wenden Sie eine Empfehlung an:

  1. Verwenden Sie den Befehl gcloud recommender recommendations mark-claimed, um den Status der Empfehlung in CLAIMED, zu ändern. Dadurch wird verhindert, dass sich die Empfehlung ändert, während Sie sie anwenden:

    gcloud recommender recommendations mark-claimed \
        recommendation-id \
        --location=global \
        --recommender=google.iam.policy.Recommender \
        --project=project-id \
        --format=format \
        --etag=etag \
        --state-metadata=state-metadata
    

    Ersetzen Sie die folgenden Werte:

    • recommendation-id: die eindeutige ID für die Empfehlung. Dieser Wert wird am Ende des Feldes name in der Empfehlung angezeigt. Im oben gezeigten Beispiel lautet die ID fb927dc1-9695-4436-0000-f0f285007c0f.
    • project-id: die Projekt-ID, z. B. project-123.
    • format: das Format der Antwort. Verwenden Sie json oder yaml.
    • etag: der Wert des Feldes etag in der Empfehlung, z. B. "dd0686e7136a4cbb". Beachten Sie, dass dieser Wert auch Anführungszeichen enthalten kann.
    • state-metadata: Optional. Durch Kommas getrennte Schlüssel/Wert-Paare, die die von Ihnen ausgewählten Metadaten zur Empfehlung enthalten. Beispiel: --state-metadata=reviewedBy=alice,priority=high. Die Metadaten ersetzen in der Empfehlung das Feld stateInfo.stateMetadata.

    Wenn der Befehl erfolgreich ausgeführt wurde, wird die Empfehlung in der Antwort im CLAIMED-Status aufgeführt, wie im folgenden Beispiel gezeigt. Zur Verdeutlichung wurden im Beispiel die meisten Felder weggelassen:

    [
      {
        "description": "This role has not been used during the observation window.",
        "recommenderSubtype": "REMOVE_ROLE",
        "etag": "\"df7308cca9719dcc\"",
        "name": "projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "stateInfo": {
          "state": "CLAIMED",
          "stateMetadata": {
            "reviewedBy": "alice",
            "priority": "high"
          }
        }
      }
    ]
  2. Rufen Sie die IAM-Richtlinie für das Projekt ab und ändern Sie die Richtlinie so, dass sie der Empfehlung entspricht.

  3. Aktualisieren Sie den Empfehlungsstatus auf SUCCEEDED, falls Sie die Empfehlung anwenden konnten, oder auf FAILED, falls Sie die Empfehlung nicht anwenden konnten:

    gcloud recommender recommendations command \
        recommendation-id \
        --location=global \
        --recommender=google.iam.policy.Recommender \
        --project=project-id \
        --format=format \
        --etag=etag \
        --state-metadata=state-metadata
    

    Ersetzen Sie die folgenden Werte:

    • command: Verwenden Sie mark-succeeded, wenn Sie die Empfehlung anwenden konnten, oder mark-failed, wenn Sie die Empfehlung nicht anwenden konnten.
    • recommendation-id: die eindeutige ID für die Empfehlung. Dieser Wert wird am Ende des Feldes name in der Empfehlung angezeigt. Im oben gezeigten Beispiel lautet die ID fb927dc1-9695-4436-0000-f0f285007c0f.
    • project-id: die Projekt-ID, z. B. project-123.
    • format: das Format der Antwort. Verwenden Sie json oder yaml.
    • etag: der Wert des Feldes etag in der Empfehlung, z. B. "dd0686e7136a4cbb". Beachten Sie, dass dieser Wert auch Anführungszeichen enthalten kann.
    • state-metadata: Optional. Durch Kommas getrennte Schlüssel/Wert-Paare, die die von Ihnen ausgewählten Metadaten zur Empfehlung enthalten. Beispiel: --state-metadata=reviewedBy=alice,priority=high. Die Metadaten ersetzen in der Empfehlung das Feld stateInfo.stateMetadata.

    Wenn Sie beispielsweise die Empfehlung als erfolgreich angewendet markiert haben, wird die Empfehlung in der Antwort im SUCCEEDED-Status angezeigt. Zur Verdeutlichung wurden in diesem Beispiel die meisten Felder weggelassen:

    [
      {
        "description": "This role has not been used during the observation window.",
        "recommenderSubtype": "REMOVE_ROLE",
        "etag": "\"dd0686e7136a4cbb\"",
        "name": "projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "stateInfo": {
          "state": "SUCCEEDED",
          "stateMetadata": {
            "reviewedBy": "alice",
            "priority": "high"
          }
        }
      }
    ]

REST API

Empfehlungen prüfen

Die Methode recommendations.list der Recommender API listet alle verfügbaren Empfehlungen für Ihr Projekt auf.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: Ihre Google Cloud-Projekt-ID.
  • page-size: Optional. Die maximale Anzahl von Ergebnissen, die von dieser Anfrage zurückgegeben werden sollen. Wenn nicht angegeben, bestimmt der Server die Anzahl der zurückzugebenden Ergebnisse. Wenn die Anzahl der Empfehlungen die Seitengröße überschreitet, enthält die Antwort ein Paginierungstoken, mit dem Sie die nächste Ergebnisseite abrufen können.
  • page-token: Optional. Das Paginierungstoken, das in einer früheren Antwort von dieser Methode zurückgegeben wurde. Wenn dieser Wert angegeben wird, beginnt die Liste der Empfehlungen dort, wo die vorherige Anfrage endet.
  • filter: Optional. Ein Filterausdruck, mit dem sich die zurückgegebenen Empfehlungen einschränken lassen. Sie können Empfehlungen anhand des Feldes stateInfo.state filtern. Beispiel: stateInfo.state:"DISMISSED" oder stateInfo.state:"FAILED".

HTTP-Methode und URL:

GET https://recommender.googleapis.com/v1/projects/project-id/locations/global/recommenders/google.iam.policy.Recommender/recommendations?pageSize=page-size&pageToken=page-token&filter=filter

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort ähnelt dem folgenden Beispiel. In diesem Beispiel hat ein Dienstkonto in den letzten 90 Tagen keine Berechtigungen der Rolle "Compute-Administrator" (roles/compute.admin) verwendet. Daher schlägt der IAM-Recommender vor, dass Sie die Rolle widerrufen:

{
  "recommendations": [
    "name": "projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "description": "This role has not been used during the observation window.",
    "lastRefreshTime": "2020-01-09T06:06:17Z",
    "primaryImpact": {
      "category": "SECURITY",
        "securityProjection": {
          "revokedIamPermissionsCount": 708
        }
    },
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "remove",
              "path": "/iamPolicy/bindings/*/members/*",
              "pathFilter": {
                "/iamPolicy/bindings/*/condition/expression": "",
                "/iamPolicy/bindings/*/members/*": "serviceAccount:id-1234567890@example-project.iam.gserviceaccount.com",
                "/iamPolicy/bindings/*/role": "roles/compute.admin"
              },
              "resource": "//cloudresourcemanager.googleapis.com/projects/example-project",
              "resourceType": "cloudresourcemanager.googleapis.com/Project"
            }
          ]
        }
      ]
    },
    "stateInfo": {
      "state": "ACTIVE"
    }
    "etag": "\"770237e2c0decf40\"",
    "recommenderSubtype": "REMOVE_ROLE"
  ]
}

Prüfen Sie jede Empfehlung sorgfältig und überlegen Sie, wie sich durch die empfohlenen Änderungen der Zugriff des Mitglieds auf Google Cloud-Ressourcen ändert.

So wenden Sie eine Empfehlung an:

  1. Markieren Sie die Empfehlung als CLAIMED:

    Die Methode recommendations.markClaimed der Recommender API markiert eine Empfehlung als CLAIMED. Dadurch wird verhindert, dass sich die Empfehlung ändert, während Sie sie anwenden.

    Ersetzen Sie diese Werte in den folgenden Anweisungen:

    • project-id: Ihre Google Cloud-Projekt-ID.
    • recommendation-id: Die eindeutige ID für die Empfehlung. Dieser Wert wird am Ende des Feldes name in der Empfehlung angezeigt. Wenn das Feld name beispielsweise projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f lautet, dann ist die Empfehlungs-ID fb927dc1-9695-4436-0000-f0f285007c0f.
    • etag: Der Wert des Feldes etag in der Empfehlung, z. B. "dd0686e7136a4cbb". Mit umgekehrten Schrägstrichen können Sie Anführungszeichen maskieren, z. B. "\"df7308cca9719dcc\"".
    • state-metadata: Optional. Ein Objekt, das Schlüssel/Wert-Paare mit den von Ihnen ausgewählten Metadaten zur Empfehlung enthält. Beispiel: {"reviewedBy": "alice", "priority": "high"}. Die Metadaten ersetzen in der Empfehlung das Feld stateInfo.stateMetadata.

    HTTP-Methode und URL:

    POST https://recommender.googleapis.com/v1/projects/project-id/locations/global/recommenders/google.iam.policy.Recommender/recommendations/recommendation-id:markClaimed

    JSON-Text anfordern:

    {
      "etag": "etag"
      "stateMetadata": {
        "state-metadata"
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Die Antwort zeigt die Empfehlung im CLAIMED-Status, wie im folgenden Beispiel gezeigt. Zur Verdeutlichung wurden in diesem Beispiel die meisten Felder weggelassen:

    {
      "description": "This role has not been used during the observation window.",
      "stateInfo": {
        "state": "CLAIMED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      }
      "etag": "\"dd0686e7136a4cbb\"",
      "recommenderSubtype": "REMOVE_ROLE"
    }
    

  2. Rufen Sie die IAM-Richtlinie für das Projekt ab und ändern Sie die Richtlinie so, dass sie der Empfehlung entspricht.

  3. Aktualisieren Sie den Empfehlungsstatus auf SUCCEEDED, falls Sie die Empfehlung anwenden konnten, oder auf FAILED, falls Sie die Empfehlung nicht anwenden konnten:

    SUCCEEDED

    Die Methode recommendations.markSucceeded der Recommender API markiert eine Empfehlung als SUCCEEDED, was darauf hinweist, dass Sie sie anwenden konnten.

    Ersetzen Sie diese Werte in den folgenden Anweisungen:

    • project-id: Ihre Google Cloud-Projekt-ID.
    • recommendation-id: Die eindeutige ID für die Empfehlung. Dieser Wert wird am Ende des Feldes name in der Empfehlung angezeigt. Wenn das Feld name beispielsweise projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f lautet, dann ist die Empfehlungs-ID fb927dc1-9695-4436-0000-f0f285007c0f.
    • etag: Der Wert des Feldes etag in der Empfehlung, z. B. "dd0686e7136a4cbb". Mit umgekehrten Schrägstrichen können Sie Anführungszeichen maskieren, z. B. "\"df7308cca9719dcc\"".
    • state-metadata: Optional. Ein Objekt, das Schlüssel/Wert-Paare mit den von Ihnen ausgewählten Metadaten zur Empfehlung enthält. Beispiel: {"reviewedBy": "alice", "priority": "high"}. Die Metadaten ersetzen in der Empfehlung das Feld stateInfo.stateMetadata.

    HTTP-Methode und URL:

    POST https://recommender.googleapis.com/v1/projects/project-id/locations/global/recommenders/google.iam.policy.Recommender/recommendations/recommendation-id:markSucceeded

    JSON-Text anfordern:

    {
      "etag": "etag"
      "stateMetadata": {
        "state-metadata"
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Die Antwort zeigt die Empfehlung im SUCCEEDED-Status, wie im folgenden Beispiel gezeigt. Zur Verdeutlichung wurden in diesem Beispiel die meisten Felder weggelassen:

    {
      "description": "This role has not been used during the observation window.",
      "stateInfo": {
        "state": "SUCCEEDED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      }
      "etag": "\"dd0686e7136a4cbb\"",
      "recommenderSubtype": "REMOVE_ROLE"
    }
    

    FAILED

    Die Methode recommendations.markFailed der Recommender API markiert eine Empfehlung als FAILED, was darauf hinweist, dass Sie sie nicht anwenden konnten.

    Ersetzen Sie diese Werte in den folgenden Anweisungen:

    • project-id: Ihre Google Cloud-Projekt-ID.
    • recommendation-id: Die eindeutige ID für die Empfehlung. Dieser Wert wird am Ende des Feldes name in der Empfehlung angezeigt. Wenn das Feld name beispielsweise projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f lautet, dann ist die Empfehlungs-ID fb927dc1-9695-4436-0000-f0f285007c0f.
    • etag: Der Wert des Feldes etag in der Empfehlung, z. B. "dd0686e7136a4cbb". Mit umgekehrten Schrägstrichen können Sie Anführungszeichen maskieren, z. B. "\"df7308cca9719dcc\"".
    • state-metadata: Optional. Ein Objekt, das Schlüssel/Wert-Paare mit den von Ihnen ausgewählten Metadaten zur Empfehlung enthält. Beispiel: {"reviewedBy": "alice", "priority": "high"}. Die Metadaten ersetzen in der Empfehlung das Feld stateInfo.stateMetadata.

    HTTP-Methode und URL:

    POST https://recommender.googleapis.com/v1/projects/project-id/locations/global/recommenders/google.iam.policy.Recommender/recommendations/recommendation-id:markFailed

    JSON-Text anfordern:

    {
      "etag": "etag"
      "stateMetadata": {
        "state-metadata"
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Die Antwort zeigt die Empfehlung im FAILED-Status, wie im folgenden Beispiel gezeigt. Zur Verdeutlichung wurden in diesem Beispiel die meisten Felder weggelassen:

    {
      "description": "This role has not been used during the observation window.",
      "stateInfo": {
        "state": "FAILED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      }
      "etag": "\"dd0686e7136a4cbb\"",
      "recommenderSubtype": "REMOVE_ROLE"
    }
    

Änderungen ansehen, zurücksetzen und wiederherstellen

Nachdem Sie eine Empfehlung angewendet oder verworfen haben, wird diese Aktion im Empfehlungslog aufgeführt. So sehen Sie sich das Empfehlungslog an:

  1. Rufen Sie in der Cloud Console die Seite IAM auf.

    Zur Seite "IAM"

  2. Klicken Sie oben auf dem Bildschirm auf Empfehlungs-Log.

    Die Cloud Console zeigt eine Liste der bisherigen Aktionen im Rahmen Ihrer IAM-Empfehlungen.

  3. Klicken Sie auf den Pfeil zum Maximieren , um Details zu einer Empfehlung aufzurufen.

    In der Cloud Console werden Details zur ausgeführten Aktion angezeigt, einschließlich des Mitglieds, das die Aktion ausgeführt hat:

  4. Optional: Falls erforderlich, können Sie die Empfehlung zurücksetzen, wodurch die Änderungen durch die Empfehlung rückgängig gemacht werden oder eine Empfehlung wiederhergestellt wird, die Sie verworfen haben.

    Um eine zuvor für eine Empfehlung angewendete Änderung rückgängig zu machen, klicken Sie auf Wiederherstellen. Die Cloud Console macht dann die Änderungen an den Rollen des Mitglieds wieder rückgängig. Die Empfehlung wird nun nicht mehr in der Cloud Console angezeigt.

    Klicken Sie zum Wiederherstellen einer verworfenen Empfehlung auf Wiederherstellen. Die Empfehlung wird dann in der Cloud Console auf der Seite IAM angezeigt. Es wurden keine Rollen oder Berechtigungen geändert.

Weitere Informationen