Asset Insights verwenden

In diesem Thema erfahren Sie, wie Sie mit Asset Insights potenzielle Risiken in Ihren Asset-Konfigurationen erkennen und den Sicherheitsstatus verbessern können.

Überblick

Cloud Asset Insights bietet Insights basierend auf den IAM-Richtlinien, die den Ressourcen Ihrer Organisation zugeordnet sind. Es ist Teil des Recommender-Dienstes und wird als Insight-Typ google.cloudasset.asset.Insight bereitgestellt. Insights sind spezifische Anomalien, die eine weitere Analyse erfordern, um die entsprechende Aktion zu bestimmen. Sie werden täglich anhand eines Snapshots der in Cloud Asset Inventory gespeicherten Daten generiert.

Hinweis

Bevor Sie Asset Insights verwenden können, müssen Sie die folgenden Schritte ausführen.

  1. Aktivieren Sie die Recommender API.

  2. Prüfen Sie, ob Ihr Konto die folgenden Berechtigungen hat.

    • recommender.cloudAssetInsights.get
    • recommender.cloudAssetInsights.list
    • recommender.cloudAssetInsights.update

    Sie können diese Berechtigungen einzeln erteilen oder eine der folgenden Rollen:

    • Rolle "CloudCloud Asset Insights-Betrachter“ (roles/recommender.cloudAssetInsightsViewer)
    • Rolle "CloudCloud Asset Insights-Administrator“ (roles/recommender.cloudAssetInsightsAdmin)

Asset Insights anfordern

Um Asset-Statistiken anzufordern, ist es am einfachsten, die Insights wie in den folgenden Schritten gezeigt aufzulisten. Weitere Arten von Insight-Interaktionen finden Sie im Insight-Leitfaden für die Recommender API.

Projektstatistiken anfordern

Führen Sie die folgenden Schritte aus, um Statistiken für ein Projekt anzufordern.

gcloud

Führen Sie den folgenden gcloud-Toolbefehl aus.

gcloud recommender insights list \
  --project=PROJECT \
  --billing-project=BILLING_PROJECT \
  --location=global \
  --insight-type=google.cloudasset.asset.Insight \
  --filter="insightSubtype:SUBTYPE" \
  --format=FORMAT

Wobei:

  • BILLING_PROJECT ist das Projekt, das die Recommender API aktiviert hat. Wenn Sie ein Projekt als billing/quota_project in der Konfiguration des gcloud-Tools festlegen, ist dieser Parameter alternativ nicht erforderlich.
  • --filter ist optional, kann jedoch zum Filtern der Ergebnisse nach Insight-Untertyp verwendet werden.
  • FORMAT ist ein unterstütztes Ausgabeformat für das gcloud-Tool. So listen Sie beispielsweise Insight-Inhalte als vereinfachte Tabelle auf:
gcloud recommender insights list \
    --project=PROJECT \
    --location=global \
    --insight-type=google.cloudasset.asset.Insight \
    --flatten="content.matchedPolicies[].matchedBindings[].matchedMembers[]" \
    --format="table(insightSubtype, name,
    content.matchedPolicies.matchedBindings.matchedMembers,
    content.matchedPolicies.matchedBindings.role,
    content.matchedPolicies.resource)"

API

Führen Sie folgenden curl-Befehl aus:

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
  -H "x-goog-user-project: WHITELISTED_PROJECT" \
  "https://recommender.googleapis.com/v1/projects/PROJECT/locations/global/insightTypes/google.cloudasset.asset.Insight/insights"

Ordnerstatistiken anfordern

Führen Sie die folgenden Schritte aus, um Statistiken für einen Ordner anzufordern.

gcloud

Führen Sie den folgenden gcloud-Toolbefehl aus.

gcloud recommender insights list \
  --folder=FOLDER_NUMBER \
  --billing-project=BILLING_PROJECT \
  --location=global \
  --insight-type=google.cloudasset.asset.Insight \
  --filter="insightSubtype:SUBTYPE" \
  --format=FORMAT

Wobei:

  • BILLING_PROJECT ist das Projekt, das die Recommender API aktiviert hat. Wenn Sie ein Projekt als billing/quota_project in der Konfiguration des gcloud-Tools festlegen, ist dieser Parameter alternativ nicht erforderlich.
  • --filter ist optional, kann jedoch zum Filtern der Ergebnisse nach Insight-Untertyp verwendet werden.
  • FORMAT ist ein unterstütztes Ausgabeformat für das gcloud-Tool. So listen Sie beispielsweise Insight-Inhalte als vereinfachte Tabelle auf:
gcloud recommender insights list \
    --folder=FOLDER_NUMBER \
    --location=global \
    --insight-type=google.cloudasset.asset.Insight \
    --flatten="content.matchedPolicies[].matchedBindings[].matchedMembers[]" \
    --format="table(insightSubtype, name,
    content.matchedPolicies.matchedBindings.matchedMembers,
    content.matchedPolicies.matchedBindings.role,
    content.matchedPolicies.resource)"

API

Führen Sie folgenden curl-Befehl aus:

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
  -H "x-goog-user-project: PROJECT" \
  "https://recommender.googleapis.com/v1/folders/FOLDER_NUMBER/locations/global/insightTypes/google.cloudasset.asset.Insight/insights"

Organisationsstatistiken anfordern

Führen Sie die folgenden Schritte aus, um Statistiken für eine Organisation anzufordern.

gcloud

Führen Sie den folgenden gcloud-Toolbefehl aus.

gcloud recommender insights list \
  --organization=ORGANIZATION \
  --billing-project=BILLING_PROJECT \
  --location=global \
  --insight-type=google.cloudasset.asset.Insight \
  --filter="insightSubtype:SUBTYPE" \
  --format=FORMAT

Wobei:

  • BILLING_PROJECT ist das Projekt, das die Recommender API aktiviert hat. Wenn Sie ein Projekt als billing/quota_project in der Konfiguration des gcloud-Tools festlegen, ist dieser Parameter alternativ nicht erforderlich.
  • --filter ist optional, kann jedoch zum Filtern der Ergebnisse nach Insight-Untertyp verwendet werden.
  • FORMAT ist ein unterstütztes Ausgabeformat für das gcloud-Tool. So listen Sie beispielsweise Insight-Inhalte als vereinfachte Tabelle auf:
gcloud recommender insights list \
    --organization=ORGANIZATION \
    --location=global \
    --insight-type=google.cloudasset.asset.Insight \
    --flatten="content.matchedPolicies[].matchedBindings[].matchedMembers[]" \
    --format="table(insightSubtype, name,
    content.matchedPolicies.matchedBindings.matchedMembers,
    content.matchedPolicies.matchedBindings.role,
    content.matchedPolicies.resource)"

API

Führen Sie folgenden curl-Befehl aus:

curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)"  \
-H "x-goog-user-project: PROJECT" \
"https://recommender.googleapis.com/v1/organizations/ORGANIZATION

Statistikantworten interpretieren

Zusätzlich zu den Standardattributen von Informationen bietet Asset Insights mehrere spezielle Untertypen und Felder.

Untertypen von Informationen

Es gibt sieben verschiedene Asset Insight-Untertypen.

  • EXTERNAL_MEMBER: Erkennt IAM-Richtlinien, die Nutzer oder Gruppen enthalten, die zu einer Domain außerhalb der Domains Ihrer Organisation gehören.
  • EXTERNAL_POLICY_EDITOR: Erkennt IAM-Richtlinien, die Nutzer oder Gruppen außerhalb der Domains Ihrer Organisation enthalten, denen die Berechtigung zum Ändern von IAM-Richtlinien gewährt wird.
  • EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER: Erkennt IAM-Richtlinien, die Nutzer oder Gruppen außerhalb der Domains Ihrer Organisation enthalten, denen die Berechtigung zum Abrufen oder Auflisten von Speicherobjekten (storage.objects.list oder storage.objects.get permission) gewährt wird.
  • EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR: Erkennt IAM-Richtlinien, die Nutzer oder Gruppen außerhalb der Domains Ihrer Organisation enthalten, denen die Berechtigung zum Übernehmen der Identität von Dienstkonten gewährt wurde.
  • TERMINATED_MEMBER: Erkennt IAM-Richtlinien mit Nutzern oder Gruppen mit deaktivierten, gelöschten oder gelöschten Konten.
  • PUBLIC_IAM_POLICY: Erkennt IAM-Richtlinien, die alle Nutzer oder alle authentifizierten Nutzer enthalten.
  • OWNER_TERMINATED_PROJECT: Erkennt Projekte, die keine aktiven Nutzer oder Gruppen innerhalb der IAM-Richtlinie des Projekts enthalten.

Zusätzliche content-Felder

Zusätzlich zu den Standardfeldern in der Antwort bietet Asset Insights mehrere spezielle Felder im Feld content.

  • user: Die spezifische Nutzer-E-Mail-Adresse, die in den Mitgliedern der Richtlinienbindungen für diese bestimmte Statistik erkannt wurde. Dieses Feld ist im Untertyp TERMINATED_MEMBER enthalten.
  • domain: Die spezifische Domain, die in den Mitgliedern der Richtlinienbindungen dieser bestimmten Statistik erkannt wurde. Dieses Feld ist in den Untertypen EXTERNAL_MEMBER, EXTERNAL_POLICY_EDITOR, EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER und EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR enthalten.
  • assetName: Der Asset-Name, für den dieser Zugriff für diesen speziellen Insights erkannt wurde. Dieses Feld wird in die Untertypen OWNER_TERMINATED_PROJECT und PUBLIC_IAM_POLICY aufgenommen.
  • policyCount: Gesamtzahl der verschiedenen IAM-Richtlinien, in denen übereinstimmende Mitglieder für diese bestimmte Statistik erkannt wurden. Dieses Feld ist für alle Asset Insights-Untertypen enthalten.
  • matchedPolicies: Eine Stichprobe der IAM-Richtlinien, die mit der erkannten Statistik übereinstimmen. Übereinstimmende Richtlinien enthalten nur die Teilmenge der Bindungen und Bindungsmitglieder, die mit der erkannten Statistik übereinstimmen. Dieses Feld ist für alle Asset Insights-Untertypen enthalten.
  • policySearchQuery: Eine Abfrage, die mit der Cloud Asset Inventory IAM API für die Richtliniensuche verwendet werden kann, um alle relevanten Richtlinien in Echtzeit abzurufen.

Beispielantwort

Das folgende Snippet zeigt das Format einer Beispielantwort.

[{
   "name":"organizations/1234567/locations/global/insightTypes/google.cloudasset.asset.Insight/insights/0ab35ae7-afa8-42a3-a173-92da8771a489",
   "description":"Domain example.com detected in 1 IAM policies",
   "content":{
      "domain":"example.com",
      "policyCount":1,
      "policySearchQuery":"policy: example.com",
      "matchedPolicies":[
         {
            "resource":"//cloudresourcemanager.googleapis.com/projects/5678910",
            "project":"projects/5678910",
            "matchedBindings":[
               {
                  "role":"roles/viewer",
                  "matchedMembers":[
                     "user:example@example.com"
                  ]
               }
            ]
         }
      ]
   },
   "lastRefreshTime":"2020-12-04T06:59:04Z",
   "observationPeriod":"0s",
   "stateInfo":{
      "state":"ACTIVE"
   },
   "category":"SECURITY",
   "targetResources":[
      "//cloudresourcemanager.googleapis.com/organizations/1234567"
   ],
   "insightSubtype":"EXTERNAL_MEMBER",
   "etag":"\"00000000000\"",
   "initialRefreshTime":"2020-12-01T06:58:03Z"
}]

Beschränkungen

  • Bei diesen Statistiken werden Gruppenmitgliedschaften nicht als Teil der Ergebnisse berücksichtigt und sollten nicht als vollständige Liste übereinstimmender Sicherheitslücken betrachtet werden.
  • Zu den einzelnen Erkenntnissen gehört eine Stichprobe übereinstimmender IAM-Richtlinien, die auf 100 verschiedene Richtlinien beschränkt sind. Alle übereinstimmenden Richtlinien können durch Aufrufen der Cloud Asset Inventory-Richtliniensuche abgerufen werden.
  • Bei Asset-Statistiken werden Dienstkonten für die Generierung von Informationen nicht berücksichtigt.