Empfehlungen prüfen und anwenden

Auf dieser Seite wird erläutert, wie Sie Empfehlungen anzeigen, verstehen und anwenden, die vom Cloud IAM-Empfehlungssystem stammen. Mit dem Cloud IAM-Recommender können Sie das Prinzip der geringsten Berechtigung erzwingen, indem Sie dafür sorgen, dass die Mitglieder nur die Berechtigungen haben, die sie tatsächlich benötigen.

Bevor Sie diese Seite lesen, sollten Sie mit der Übersicht über den Cloud IAM-Recommender vertraut sein. Stellen Sie außerdem sicher, dass Sie die Cloud IAM-Berechtigungen haben, die Sie benötigen, um mit dem Cloud IAM-Recommender zu arbeiten.

Empfehlungen prüfen und anwenden

Die einfachste Möglichkeit, Empfehlungen zu überprüfen und anzuwenden, ist die Verwendung der Google Cloud Console. Details, warum Sie eine Empfehlung erhalten haben, und wie Sie Empfehlungen ablehnen, erhalten Sie über die Cloud Console.

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

Console

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

    Zur IAM-Seite

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

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

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

    Das Symbol Empfehlung nicht verfügbar gibt an, dass keine empfohlenen Änderungen an der Rolle vorgenommen wurden. Um den Grund herauszufinden, halten Sie den Mauszeiger über das Symbol.

  3. Falls Empfehlungen vorliegen, klicken Sie auf das Symbol Empfehlung verfügbar , um Details zur Empfehlung anzuzeigen.

  4. Sehen Sie sich die Empfehlung sorgfältig an und überlegen Sie sich, wie sie den Zugriff des Mitglieds auf Google Cloud-Ressourcen ändern wird.

    Klicken Sie zum Anwenden der Empfehlung auf Anwenden und anschließend wieder auf Anwenden, um Ihre Auswahl zu bestätigen.

    Klicken Sie auf Schließen,um die Empfehlung zu schließen und dann auf Schließen um Ihre Auswahl zu bestätigen.

    Wenn Sie Ihre Meinung in den nächsten 90 Tagen ändern möchten, verwenden Sie die Cloud IAM Recommender-Protokolle um Ihre Auswahl rückgängig zu machen.

  5. Wiederholen Sie die vorherigen Schritte, bis Sie alle Ihre Empfehlungen überprüft haben.

gcloud-Befehl

Um Ihre Empfehlungen aufzulisten, führen den gcloud recommender recommendations list Befehl aus:

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 wurden für dieses Dienstkonto in den letzten 90 Tagen keine Berechtigungen der Compute-Admin-Rolle (roles/compute.admin) verwendet. Daher schlägt der Cloud 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"
        }
      }
    ]

Überprüfen Sie jede Empfehlung sorgfältig und überlegen Sie, wie sie den Zugriff des Mitglieds auf Google Cloud-Ressourcen ändern wird.

So wenden Sie eine Empfehlung an:

  1. Verwenden Sie den Befehl gcloud recommender recommendations mark-claimed, um zu verhindern, dass die Empfehlung während der Anwendung geändert wird:

    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 Felds 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üsselwertpaare, die die von Ihnen ausgewählten Metadaten zu der Empfehlung enthalten. Beispiel: --state-metadata=reviewedBy=alice,priority=high. Die Metadaten ersetzen das Feld stateInfo.stateMetadata in der Empfehlung.

    Wenn der Befehl erfolgreich ist, zeigt die Antwort die Empfehlung im CLAIMED-Zustand, wie im folgenden Beispiel gezeigt. Zur Verdeutlichung werden 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 Cloud 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 FAILED, falls Sie die Empfehlung nicht übernehmen 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 Felds 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üsselwertpaare, die die von Ihnen ausgewählten Metadaten zu der Empfehlung enthalten. Beispiel: --state-metadata=reviewedBy=alice,priority=high. Die Metadaten ersetzen das Feld stateInfo.stateMetadata in der Empfehlung.

    Wenn Sie beispielsweise die Empfehlung als erfolgreich markiert haben, zeigt die Antwort die Empfehlung im SUCCEEDED-Zustand an. Zur Verdeutlichung werden 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

Um Ihre Empfehlungen zu überprüfen, verwenden Sie das Tool curl, um die REST API aufzurufen. Ersetzen Sie [PROJECT_ID] durch Ihre Projekt-ID.

curl -H "Authorization: Bearer "$(gcloud auth print-access-token) \
        "https://recommender.googleapis.com/v1/projects/[PROJECT_ID]/locations/global/recommenders/google.iam.policy.Recommender/recommendations"
    

Die Antwort ähnelt dem folgenden Beispiel. In diesem Beispiel wurden für dieses Dienstkonto in den letzten 90 Tagen keine Berechtigungen der Compute-Admin-Rolle (roles/compute.admin) verwendet. Daher schlägt der Cloud 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"
        }
      }
    ]

Überprüfen Sie jede Empfehlung sorgfältig und überlegen Sie, wie sie den Zugriff des Mitglieds auf Google Cloud-Ressourcen ändern wird.

So wenden Sie eine Empfehlung an:

  1. Führen Sie den folgenden Befehl aus, um zu verhindern, dass die Empfehlung geändert wird, während Sie sie anwenden:

    curl -X POST \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer $(gcloud auth print-access-token)" \
            -H "X-Goog-User-Project: [PROJECT_ID]" \
            --data-binary @- \
            "https://recommender.googleapis.com/v1/projects/[PROJECT_ID]/locations/global/recommenders/google.iam.policy.Recommender/recommendations/[RECOMMENDATION_ID]:markClaimed" \
        << EOM
        {
          "etag": "[ETAG]",
          "stateMetadata": [STATE_METADATA]
        }
        EOM
        

    Jedes Vorkommen der folgenden Werte ersetzen:

    • [RECOMMENDATION_ID]: Die eindeutige ID für die Empfehlung. Dieser Wert wird am Ende des Felds 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". Mit umgekehrten Schrägstrichen können Sie Anführungszeichen ausblenden.
    • [STATE_METADATA]: Optional Ein Objekt, das Schlüsselwertpaare mit den von Ihnen ausgewählten Metadaten zu der Empfehlung enthält. Beispiel: {"reviewedBy": "alice", "priority": "high"}. Die Metadaten ersetzen das Feld stateInfo.stateMetadata in der Empfehlung.

    Wenn der Befehl erfolgreich ist, zeigt die Antwort die Empfehlung im CLAIMED-Zustand, wie im folgenden Beispiel gezeigt. Zur Verdeutlichung werden 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 Cloud 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 FAILED, falls Sie die Empfehlung nicht übernehmen konnten:

    curl -X POST \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer $(gcloud auth print-access-token)" \
            -H "X-Goog-User-Project: [PROJECT_ID]" \
            --data-binary @- \
            "https://recommender.googleapis.com/v1/projects/[PROJECT_ID]/locations/global/recommenders/google.iam.policy.Recommender/recommendations/[RECOMMENDATION_ID]:[COMMAND]" \
        << EOM
        {
          "etag": "[ETAG]",
          "stateMetadata": [STATE_METADATA]
        }
        EOM
        

    Jedes Vorkommen der folgenden Werte ersetzen:

    • [COMMAND]: Verwenden Sie markSucceeded, wenn Sie die Empfehlung anwenden konnten, oder markFailed, wenn Sie die Empfehlung nicht anwenden konnten.
    • [RECOMMENDATION_ID]: Die eindeutige ID für die Empfehlung. Dieser Wert wird am Ende des Felds 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". Mit umgekehrten Schrägstrichen können Sie Anführungszeichen ausblenden.
    • [STATE_METADATA]: Optional Ein Objekt, das Schlüsselwertpaare mit den von Ihnen ausgewählten Metadaten zu der Empfehlung enthält. Beispiel: {"reviewedBy": "alice", "priority": "high"}. Die Metadaten ersetzen das Feld stateInfo.stateMetadata in der Empfehlung.

    Wenn Sie beispielsweise die Empfehlung als erfolgreich markiert haben, zeigt die Antwort die Empfehlung imSUCCEEDED-Zustand an. Zur Verdeutlichung werden 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"
              }
            }
          }
        ]

Änderungen ansehen, rückgängig machen und wiederherstellen

Nachdem Sie eine Empfehlung angewendet oder abgelehnt haben, wird diese Aktion im Empfehlungsprotokoll angezeigt. So sehen Sie sich das Empfehlungslog an:

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

    Zur IAM-Seite

  2. Klicken Sie oben auf dem Bildschirm auf Empfehlungsprotokoll.

    Die Cloud Console zeigt eine Liste der vorherigen Aktionen in Ihren Cloud IAM-Empfehlungen.

  3. Klicken Sie auf den Erweiterungspfeil , um Details zu einer Empfehlung anzuzeigen.

    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 in der Empfehlung rückgängig gemacht werden, oder eine Empfehlung wiederherstellen, die Sie abgelehnt haben.

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

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

Nächste Schritte