Richtlinienstatistiken verwenden

Neben dem Abgeben von Empfehlungen nutzt der IAM-Recommender außerdem maschinelles Lernen (ML), um detaillierte Statistiken bereitzustellen. Diese enthalten IAM-Richtlinienstatistiken, wobei es sich um ML-basierte Erkenntnisse zur Nutzung von Berechtigungen in Ihrem Projekt handelt.

Einige Statistiken sind mit Empfehlungen verknüpft und stellen Informationen bereit, mit denen sich die verknüpften Empfehlungen belegen lassen. Sie können Statistiken jedoch unabhängig von den Empfehlungen verwenden, um Ihre IAM-Konfiguration proaktiv zu optimieren.

Vorbereitung

Erforderliche Berechtigungen

Um IAM-Richtlinienstatistiken aufrufen zu können, benötigen Sie eine Rolle für das Projekt, die die folgenden Berechtigungen enthält:

  • recommender.iamPolicyInsights.get
  • recommender.iamPolicyInsights.list

Zum Ändern der IAM-Richtlinienstatistiken benötigen Sie eine Rolle für das Projekt, die die folgenden Berechtigungen enthält:

  • recommender.iamPolicyInsights.update

Damit Sie diese Berechtigungen erhalten und gleichzeitig das Prinzip der geringsten Berechtigung anwenden, bitten Sie Ihren Administrator, Ihnen eine der folgenden vordefinierten Rollen zu gewähren:

  • Wenn Sie sich Richtlinienstatistiken und Empfehlungen nur ansehen möchten, fordern Sie eine der folgenden Rollen an:
    • Rolle "IAM Recommender-Betrachter" (roles/recommender.iamViewer)
    • Rolle "IAM-Sicherheitsprüfer" (roles/iam.securityReviewer)
  • Zum Ansehen und Ändern von Richtlinienstatistiken und Empfehlungen fordern Sie die Rolle "IAM-Recommender-Administrator" (roles/recommender.iamAdmin) an.

Alternativ kann Ihr Administrator Ihnen eine andere Rolle mit den erforderlichen Berechtigungen zuweisen, z. B. eine benutzerdefinierte Rolle oder eine vordefinierte Rolle mit mehr Berechtigungen.

Richtlinienstatistiken auflisten

Verwenden Sie eine der folgenden Methoden, um alle IAM-Richtlinienstatistiken für Ihr Projekt aufzulisten:

gcloud

Verwenden Sie den Befehl gcloud recommender insights list mit dem Statistiktyp google.iam.policy.Insight und dem Standort global, um alle IAM-Richtlinienstatistiken für Ihr Projekt aufzurufen:

gcloud recommender insights list --insight-type=google.iam.policy.Insight \
  --location=global

Die Ausgabe enthält eine Liste mit allen Richtlinienstatistiken in Ihrem Projekt. Beispiel:

INSIGHT_ID                            LOCATION  INSIGHT_TYPE               CATEGORY  INSIGHT_STATE  LAST_REFRESH_TIME
07841f74-02ce-4de8-bbe6-fc4eabb68568  global    google.iam.policy.Insight  SECURITY  ACCEPTED       2020-07-12T07:00:00Z
0d3ce433-f067-4e78-b6ae-03d7d1f6f040  global    google.iam.policy.Insight  SECURITY  ACTIVE         2020-07-13T07:00:00Z
0e2cc488-38fb-4b9b-942c-cfe06a0ab88f  global    google.iam.policy.Insight  SECURITY  ACTIVE         2020-07-13T07:00:00Z
12b557be-d48f-49cf-a0b0-b3b73a178edf  global    google.iam.policy.Insight  SECURITY  ACTIVE         2020-07-13T07:00:00Z
279ef748-408f-44db-9a4a-1ff8865b9839  global    google.iam.policy.Insight  SECURITY  ACTIVE         2020-07-13T07:00:00Z
29a4553d-9ffb-4508-9f13-77f40fc4e8b6  global    google.iam.policy.Insight  SECURITY  ACTIVE         2020-07-13T07:00:00Z
2a00a91a-3e37-4dca-81f7-fb607d18053f  global    google.iam.policy.Insight  SECURITY  ACTIVE         2020-07-13T07:00:00Z
2baea818-df89-4ab3-8a48-0e752459d816  global    google.iam.policy.Insight  SECURITY  ACTIVE         2020-07-13T07:00:00Z
4a59da9d-cde8-46cc-9c68-6980487175fb  global    google.iam.policy.Insight  SECURITY  ACTIVE         2020-07-13T07:00:00Z
78fee8d9-c25c-4070-9f1b-ae5e4a4a164b  global    google.iam.policy.Insight  SECURITY  ACTIVE         2020-07-13T07:00:00Z

REST

Die Methode insights.list der Recommender API listet alle Statistiken eines bestimmten Typs für Ihr Projekt auf. Verwenden Sie diese Methode mit dem Statistiktyp google.iam.policy.Insight und dem Standort global, um alle IAM-Richtlinienstatistiken für Ihr Projekt aufzulisten.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: Ihre Google Cloud-Projekt-ID.

HTTP-Methode und URL:

GET https://recommender.googleapis.com/v1/projects/project-id/locations/global/insightTypes/google.iam.policy.Insight/insights

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

Die Antwort enthält alle Richtlinienstatistiken für Ihr Projekt. Beispiel:

{
  "insights": [
    {
      "name": "projects/1234567890/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568",
      "description": "0 permission checks were authorized by this policy binding tuple.",
      "content": {
        "role": "roles/viewer",
        "member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com",
        "condition": {
          "expression": "",
          "title": "",
          "description": "",
          "location": ""
        },
        "exercisedPermissions": [],
        "inferredPermissions": []
      },
      "lastRefreshTime": "2020-07-12T07:00:00Z",
      "observationPeriod": "7776000s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "associatedRecommendations": [
        {
          "recommendation": "projects/1234567890/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656"
        }
      ],
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/1234567890"
      ],
      "insightSubtype": "PERMISSIONS_USAGE",
      "etag": "\"b153ab487e4ae100\""
    },
    {
      "name": "projects/1234567890/locations/global/insightTypes/google.iam.policy.Insight/insights/f4292f55-105b-4744-9dc3-fcacf59685bb",
      "description": "4 permission checks were authorized by this policy binding tuple.",
      "content": {
        "role": "roles/owner",
        "member": "serviceAccount:my-service-account2@my-project.iam.gserviceaccount.com",
        "condition": {
          "expression": "",
          "title": "",
          "description": "",
          "location": ""
        },
        "exercisedPermissions": [
          {
            "permission": "iam.roles.create"
          },
          {
            "permission": "iam.roles.delete"
          },
          {
            "permission": "iam.roles.list"
          },
          {
            "permission": "iam.roles.update"
          }
        ],
        "inferredPermissions": []
      },
      "lastRefreshTime": "2020-07-12T07:00:00Z",
      "observationPeriod": "7776000s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "associatedRecommendations": [
        {
          "recommendation": "projects/1234567890/locations/global/recommenders/google.iam.policy.Recommender/recommendations/6ab16c1d-edce-45e5-8d82-570fdd49892a"
        }
      ],
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/1234567890"
      ],
      "insightSubtype": "PERMISSIONS_USAGE",
      "etag": "\"49bb705553338fc3\""
    }
  ]
}

Weitere Informationen zu den Komponenten einer IAM-Statistik finden Sie auf dieser Seite unter Richtlinienstatistiken prüfen.

Einzelne Richtlinienstatistik abrufen

Wenn Sie weitere Informationen zu einer einzelnen Statistik abrufen möchten, einschließlich der Beschreibung, des Status und aller mit ihr verknüpften Empfehlungen, verwenden Sie eine der folgenden Methoden:

gcloud

Verwenden Sie den Befehl gcloud recommender insights describe mit Ihrer Statistik-ID, dem Statistiktyp google.iam.policy.Insight und dem Standort global, um Informationen zu einer einzelnen IAM-Richtlinienstatistik aufzurufen.

Ersetzen Sie insight-id durch die ID der Richtlinienstatistik, die Sie aufrufen möchten. Wenn Sie die IDs der Richtlinienstatistiken in Ihrem Projekt sehen möchten, listen Sie die Richtlinienstatistiken in Ihrem Projekt auf.

gcloud recommender insights describe insight-id \
  --insight-type=google.iam.policy.Insight --location=global

In der Ausgabe werden die Richtlinienstatistiken angezeigt. Beispiel:

associatedRecommendations:
- recommendation: projects/1234567890/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0573b702-96a5-4622-a916-c762e7b0731f
category: SECURITY
content:
  condition:
    description: ''
    expression: ''
    location: ''
    title: ''
  exercisedPermissions: []
  inferredPermissions: []
  member: serviceAccount:my-service-account@my-project.iam.gserviceaccount.com
  role: roles/viewer
description: 0 permission checks were authorized by this policy binding tuple.
etag: '"d3cdec23cc712bd0"'
insightSubtype: PERMISSIONS_USAGE
lastRefreshTime: '2020-07-11T07:00:00Z'
name: projects/1234567890/locations/global/insightTypes/google.iam.policy.Insight/insights/0d3ce433-f067-4e78-b6ae-03d7d1f6f040
observationPeriod: 7776000s
stateInfo:
  state: ACTIVE
targetResources:
- //cloudresourcemanager.googleapis.com/projects/1234567890

Weitere Informationen zu den Komponenten einer IAM-Statistik finden Sie auf dieser Seite unter Richtlinienstatistiken prüfen.

REST

Die Methode insights.get der Recommender API ruft eine einzelne Statistik ab. Verwenden Sie diese Methode mit dem Statistiktyp google.iam.policy.Insight und dem Standort global, um eine einzelne IAM-Richtlinienstatistik abzurufen.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • project-id: Ihre Google Cloud-Projekt-ID.
  • insight-id: Die ID der Statistik, die Sie aufrufen möchten. Wenn Sie die IDs der Richtlinienstatistiken in Ihrem Projekt aufrufen möchten, listen Sie die Richtlinienstatistiken in Ihrem Projekt auf. Die ID einer Statistik entspricht allen Angaben nach insights/ im name-Feld der Statistik.

HTTP-Methode und URL:

GET https://recommender.googleapis.com/v1/projects/project-id/locations/global/insightTypes/google.iam.policy.Insight/insights/insight-id

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

Die Antwort enthält die Richtlinienstatistik. Beispiel:

{
  "name": "projects/1234567890/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568",
  "description": "0 permission checks were authorized by this policy binding tuple.",
  "content": {
    "role": "roles/viewer",
    "member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com",
    "condition": {
      "expression": "",
      "title": "",
      "description": "",
      "location": ""
    },
    "exercisedPermissions": [],
    "inferredPermissions": []
  },
  "lastRefreshTime": "2020-07-12T07:00:00Z",
  "observationPeriod": "7776000s",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/1234567890/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656"
    }
  ],
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/1234567890"
  ],
  "insightSubtype": "PERMISSIONS_USAGE",
  "etag": "\"b153ab487e4ae100\""
}

Weitere Informationen zu den Komponenten einer IAM-Statistik finden Sie auf dieser Seite unter Richtlinienstatistiken prüfen.

Richtlinienstatistiken prüfen

IAM-Richtlinienstatistiken unterstützen derzeit den Statistik-Untertyp PERMISSION_USAGE. PERMISSION_USAGE-Statistiken enthalten Erkenntnisse zur Nutzung von Berechtigungen durch Mitglieder in Ihrem Projekt.

PERMISSION_USAGE-Statistiken haben die folgenden Komponenten, die nicht unbedingt in dieser Reihenfolge auftauchen:

name

Der Name der Statistik. PERMISSION_USAGE-Statistiknamen haben folgendes Format:

projects/project-id/locations/global/insightTypes/google.iam.policy.Insight/insights/insight-id

Dabei gilt:

  • project-id ist die ID des Projekts, in dem die Statistik generiert wurde.
  • insight-id ist eine eindeutige ID für die Statistik.
targetResources
Der voll qualifizierte Name des Google Cloud-Projekts, für das die Statistik bestimmt ist. Beispiel: //cloudresourcemanager.googleapis.com/projects/1234567890
insightSubtype
Der Statistik-Untertyp für eine PERMISSION_USAGE-Statistik ist immer PERMISSION_USAGE.
observationPeriod
Der Zeitraum, der der Statistik vorausgeht. Die zum Generieren der Statistik verwendeten Quelldaten enden zum Zeitpunkt von lastRefreshTime und beginnen bei lastRefreshTime minus observationPeriod.
content

Im Feld content einer PERMISSION_USAGE-Statistik wird die Nutzung von Berechtigungen durch ein Mitglied für eine bestimmte Rolle angegeben. Dieses Feld enthält die folgenden Komponenten:

  • member: Das Mitglied, dessen Nutzung von Berechtigungen analysiert wurde.
  • role: Die Rolle, für die die Nutzung von Berechtigungen analysiert wurde.
  • condition: Alle Bedingungen, die mit einer Bindung verknüpft sind, durch die dem Mitglied (member) die Rolle (role) zugewiesen wird. Wenn keine Bedingungen vorhanden sind, enthält dieses Feld eine leere Bedingung.
  • exercisedPermissions: Die Berechtigungen innerhalb der Rolle (role), die das Mitglied (member) im Laufe der observationPeriod verwendet hat.
  • inferredPermissions: Die Berechtigungen innerhalb der Rolle (role), die der IAM-Recommender mithilfe von ML als diejenige ermittelt hat, die das Mitglied (member) auf Basis seiner exercisedPermissions wahrscheinlich benötigt.
description
Eine Beschreibung der Anzahl der Berechtigungen, die das Mitglied während des Beobachtungszeitraums verwendet hat.
lastRefreshTime
Das Datum, an dem die Statistik zuletzt aktualisiert wurde. Dadurch wird die Aktualität der Daten angegeben, die zum Generieren der Statistik verwendet wurden.
stateInfo

Statistiken durchlaufen mehrere Statusübergänge, nachdem sie vorgeschlagen wurden:

  • ACTIVE bedeutet, dass die Statistik zwar generiert, aber noch mit keiner Aktion darauf reagiert wurde. Inhalte zu aktiven Statistiken werden aktualisiert, wenn sich die zugrunde liegenden Daten ändern. Aktive Statistiken können als DISMISSED oder ACCEPTED markiert sein.
  • ACCEPTED bedeutet, dass basierend auf der Statistik Aktionen ausgeführt wurden. Statistiken werden akzeptiert, wenn eine zugehörige Empfehlung als CLAIMED, SUCCEEDED oder FAILED markiert wurde. Statistiken können auch direkt akzeptiert werden. Die Daten für akzeptierte Statistiken sind nicht veränderbar. Akzeptierte Statistiken werden ab dem Zeitpunkt der Statusänderung 90 Tage lang aufbewahrt.
  • DISMISSED bedeutet, dass die mit der Statistik verknüpfte Empfehlung abgelehnt und keinerlei darauf basierende Aktion ausgeführt wurde. Inhalte für abgelehnte Statistiken werden aktualisiert, wenn sich die zugrunde liegenden Daten ändern.
category
Die Kategorie für PERMISSION_USAGE-Statistiken ist immer SECURITY.
etag

Ein eindeutiger Fingerabdruck, der den aktuellen Status einer Statistik angibt. Jedes Mal, wenn sich die Statistik ändert, wird ein neuer ETag-Wert zugewiesen.

Wenn Sie den Status der Statistik ändern möchten, müssen Sie das ETag der vorhandenen Statistik angeben. Dadurch wird gewährleistet, dass Vorgänge nur dann ausgeführt werden, wenn die Statistik seit dem letzten Abruf nicht geändert wurde.

associatedRecommendations
Die Referenz für alle mit der Statistik verknüpften Empfehlungen. Wenn mit der Statistik keine Empfehlungen verknüpft sind, ist dieses Feld leer.

Richtlinienstatistiken als ACCEPTED markieren

Wenn Sie eine Aktion anhand einer aktiven Statistik anwenden, können Sie diese Statistik als ACCEPTED markieren. Diese Aktion teilt der Recommender API mit, dass Sie diese Statistik angewendet haben, was dazu beiträgt, Ihre Empfehlungen zu optimieren.

Akzeptierte Statistiken werden 90 Tage lang aufbewahrt, nachdem sie als ACCEPTED markiert wurden.

gcloud

Verwenden Sie den Befehl gcloud recommender insights mark-accepted mit Ihrer Statistik-ID, dem Statistiktyp google.iam.policy.Insight und dem Standort global, um eine Richtlinienstatistik als ACCEPTED zu markieren.

Ersetzen Sie vor dem Verwenden des Beispielbefehls die folgenden Werte:

gcloud recommender insights mark-accepted insight-id \
  --insight-type=google.iam.policy.Insight --location=global --etag=etag

Die Ausgabe zeigt die Richtlinienstatistik nun mit dem Status ACCEPTED an. Beispiel:

associatedRecommendations:
- recommendation: projects/1234567890/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0573b702-96a5-4622-a916-c762e7b0731f
category: SECURITY
content:
  condition:
    description: ''
    expression: ''
    location: ''
    title: ''
  exercisedPermissions: []
  inferredPermissions: []
  member: serviceAccount:my-service-account@my-project.iam.gserviceaccount.com
  role: roles/viewer
description: 0 permission checks were authorized by this policy binding tuple.
etag: '"d3cdec23cc712bd0"'
insightSubtype: PERMISSIONS_USAGE
lastRefreshTime: '2020-07-11T07:00:00Z'
name: projects/1234567890/locations/global/insightTypes/google.iam.policy.Insight/insights/0d3ce433-f067-4e78-b6ae-03d7d1f6f040
observationPeriod: 7776000s
stateInfo:
  state: ACCEPTED
targetResources:
- //cloudresourcemanager.googleapis.com/projects/1234567890

Weitere Informationen zu den Statusinformationen einer Richtlinienstatistik finden Sie auf dieser Seite unter Richtlinienstatistiken prüfen.

REST

Die Methode insights.markAccepted der Recommender API markiert eine Statistik als ACCEPTED. Verwenden Sie diese Methode mit dem Statistiktyp google.iam.policy.Insight und dem Standort global, um eine IAM-Richtlinienstatistik als ACCEPTED zu markieren.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

HTTP-Methode und URL:

POST https://recommender.googleapis.com/v1/projects/project-id/locations/global/insightTypes/google.iam.policy.Insight/insights/insight-id:markAccepted

JSON-Text anfordern:

{
  "etag": "etag"
}

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

Die Antwort enthält die Statistik, jetzt mit dem Status ACCEPTED. Beispiel:

{
  "name": "projects/1234567890/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568",
  "description": "0 permission checks were authorized by this policy binding tuple.",
  "content": {
    "role": "roles/viewer",
    "member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com",
    "condition": {
      "expression": "",
      "title": "",
      "description": "",
      "location": ""
    },
    "exercisedPermissions": [],
    "inferredPermissions": []
  },
  "lastRefreshTime": "2020-07-12T07:00:00Z",
  "observationPeriod": "7776000s",
  "stateInfo": {
    "state": "ACCEPTED"
    },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/1234567890/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656"
    }
  ],
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/1234567890"
  ],
  "insightSubtype": "PERMISSIONS_USAGE",
  "etag": "\"b153ab487e4ae100\""
}

Weitere Informationen zu den Statusinformationen einer Richtlinienstatistik finden Sie auf dieser Seite unter Richtlinienstatistiken prüfen.

Weitere Informationen