Asset-Statistiken verwenden

In diesem Thema erfahren Sie, wie Sie mithilfe von Asset Insights potenzielle Risiken in Ihren Asset-Konfigurationen erkennen und die Sicherheit verbessern.

Übersicht

Cloud Asset Insights bietet Statistiken auf Basis der IAM-Richtlinien, die mit den Ressourcen Ihrer Organisation verknüpft sind. Es gehört zu dem Recommender-Dienst und wird als google.cloudasset.asset.Insight-Informationstyp bereitgestellt. Statistiken sind spezifische Anomalien, die anhand einer weiteren Analyse ermittelt werden müssen. Sie werden täglich basierend auf einem Snapshot 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. Recommender API aktivieren

  2. Prüfen Sie, ob Ihr Konto über die folgenden Berechtigungen verfügt.

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

    Sie können diese Berechtigungen einzeln gewähren oder eine der folgenden Rollen zuweisen.

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

Asset Insights anfordern

Am einfachsten lassen sich Asset Insights in den folgenden Schritten angeben. Weitere Arten von Dateninteraktionen finden Sie im Leitfaden für Statistiken für die Recommender API.

Projektinformationen 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 in der Konfiguration des gcloud-Tools ein Projekt als billing/quota_project festlegen, ist dieser Parameter nicht erforderlich.
  • --filter ist optional, kann jedoch zum Filtern von Ergebnissen nach Statistikuntertyp verwendet werden.
  • FORMAT ist ein unterstütztes Ausgabeformat für das gcloud-Tool. So listen Sie beispielsweise Inhaltsinformationen in vereinfachter 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 den 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 werden angefordert

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 in der Konfiguration des gcloud-Tools ein Projekt als billing/quota_project festlegen, ist dieser Parameter nicht erforderlich.
  • --filter ist optional, kann jedoch zum Filtern von Ergebnissen nach Statistikuntertyp verwendet werden.
  • FORMAT ist ein unterstütztes Ausgabeformat für das gcloud-Tool. So listen Sie beispielsweise Inhaltsinformationen in einer vereinfachten 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 den 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"

Informationen zur Organisation 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 in der Konfiguration des gcloud-Tools ein Projekt als billing/quota_project festlegen, ist dieser Parameter nicht erforderlich.
  • --filter ist optional, kann jedoch zum Filtern von Ergebnissen nach Statistikuntertyp verwendet werden.
  • FORMAT ist ein unterstütztes Ausgabeformat für das gcloud-Tool. So listen Sie beispielsweise Inhaltsinformationen in einer vereinfachten 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 den 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 standardmäßigen Statistikattributen bietet Asset Insights verschiedene spezialisierte Untertypen und Felder.

Statistikuntertypen

Es gibt sieben verschiedene Untertypen von Asset-Statistik.

  • 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 wurde.
  • 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) erteilt wurde.
  • EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR: Erkennt IAM-Richtlinien, die Nutzer oder Gruppen außerhalb der Domains Ihrer Organisation enthalten, denen die Berechtigung zur Identität von Dienstkonten erteilt wurde.
  • TERMINATED_MEMBER: Erkennt IAM-Richtlinien, die Nutzer oder Gruppen mit inaktiven oder beendeten Konten enthalten.
  • 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.

Weitere content-Felder

Zusätzlich zu den Standardfeldern in der Antwort enthält Asset Insights verschiedene spezialisierte Felder im Feld content.

  • user: Die spezifische Nutzer-E-Mail-Adresse, die in den Mitgliedern der Richtlinienbindungen für diese bestimmte Information erkannt wurde. Dieses Feld ist im Untertyp TERMINATED_MEMBER enthalten.
  • domain: Die spezifische Domain, die innerhalb der Richtlinienbindungen dieser bestimmten Information 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 der Zugriff bei dieser spezifischen Information erkannt wurde. Dieses Feld wird in den Untertypen OWNER_TERMINATED_PROJECT und PUBLIC_IAM_POLICY enthalten.
  • policyCount: Die Gesamtzahl verschiedener IAM-Richtlinien, in denen übereinstimmende Mitglieder für diese Information erkannt wurden. Dieses Feld ist in allen Asset Insights-Untertypen enthalten.
  • matchedPolicies: Eine Stichprobe der IAM-Richtlinien, die mit der erkannten Information übereinstimmen. Abgleichsrichtlinien enthalten nur die Teilmenge der Bindungen und Bindungsmitglieder, die mit der erkannten Information übereinstimmen. Dieses Feld ist in allen Asset Insights-Untertypen enthalten.
  • policySearchQuery: Eine Abfrage, die mit der IAM-Richtlinien-API für die Cloud Asset Inventory 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

  • Sie werden nicht als Gruppenmitgliedschaften angesehen und sollten nicht als vollständige Liste der übereinstimmenden Sicherheitslücken angesehen werden.
  • Einzelne Informationen umfassen eine Stichprobe von übereinstimmenden IAM-Richtlinien, die auf 100 verschiedene Richtlinien beschränkt sind. Alle übereinstimmenden Richtlinien können durch Aufrufen der Suche von Cloud Asset Inventory-Richtlinien abgerufen werden.
  • In Assetinformationen werden Dienstkonten nicht zum Generieren von Statistiken berücksichtigt.