Auf dieser Seite erfahren Sie, wie Sie mit Cloud Asset Inventory Ihre Secrets im Blick behalten, Daten zur Analyse exportieren und leistungsstarke Abfragen ausführen, um die erforderlichen Informationen zu erhalten.
Übersicht
Mit Cloud Asset Inventory wird Ihre Google Cloud-Umgebung analysiert und alle Änderungen an Ihren Cloud-Ressourcen wie virtuellen Maschinen, Datenbanken, Storage-Buckets und in diesem Zusammenhang auch an Ihren Secret Manager-Secrets erfasst. Die Integration von Secret Manager und Cloud Asset Inventory bietet folgende Vorteile:
-
Abfragen ausführen: Sie können nach bestimmten Geheimnissen suchen oder Muster in Ihren Geheimnissen erkennen.
-
Benachrichtigungen einrichten: Cloud Asset Inventory so konfigurieren, dass bei bestimmten Ereignissen Benachrichtigungen an Pub/Sub gesendet werden, z. B. wenn Secrets erstellt, geändert oder gelöscht werden.
-
Daten exportieren: Sie können Ihr geheimes Inventar nach BigQuery exportieren, um eine detaillierte Analyse und Berichterstellung durchzuführen.
-
Secrets verwalten und analysieren: Sie können alle Ihre Secrets an einem Ort (über Projekte und Ihre gesamte Organisation hinweg) aufrufen und Secrets identifizieren, die möglicherweise falsch konfiguriert sind oder gegen die Sicherheitsrichtlinien Ihrer Organisation verstoßen. So können Sie beispielsweise Geheimnisse finden, die nicht regelmäßig rotiert werden oder für die keine geeigneten Zugriffssteuerungen vorhanden sind.
Dies ist eine erweiterte Aufgabe für Secret Manager-Nutzer. Bevor Sie diese Seite lesen, sollten Sie sich mit den folgenden Themen vertraut machen:
-
Secret Manager – Übersicht, um die wichtigsten Konzepte und Funktionen von Secret Manager zu verstehen
-
Cloud Asset Inventory, um Cloud Asset Inventory zu verstehen und seine umfassenden Features zur Asset-Verwaltung zu sehen
Secret Manager abfragen
Wenn Sie Ihre Secrets mit SQL-ähnlichen Abfragen analysieren möchten, empfehlen wir Ihnen, Ihr Secret und Ihre Secret-Versionen nach BigQuery zu exportieren. Secret Manager ist nicht in Asset Search oder Policy Analyzer eingebunden. Bei diesen Abfragen werden die Google Cloud CLI und BigQuery verwendet, um Ihre Assets zu durchsuchen.
Beschränkungen
Die Verwendung von Cloud Asset Inventory zur Analyse von Secret Manager-Ressourcen hat die folgende Einschränkung:
-
Cloud Asset Inventory unterstützt das Exportieren und Auflisten von Snapshots nur für die letzten fünf Wochen.
Asset-Änderungen überwachen
Cloud Asset Inventory verfolgt Echtzeit-Updates und unterstützt das Monitoring dieser Änderungen. Sie können Feeds konfigurieren, um jedes Mal, wenn sich Ihre Ressourcen ändern, Benachrichtigungen an eine Reihe von konfigurierten Pub/Sub-Themen zu senden. Darüber hinaus unterstützt Cloud Asset Inventory das Konfigurieren von Bedingungen für Ihre Feeds, sodass Sie bestimmte Änderungen für bestimmte Asset-Typen überwachen können. In der Pub/Sub-Dokumentation erfahren Sie, wie Sie Workflows bei Asset-Änderungen auslösen.
Assets in BigQuery exportieren
Wenn Sie Ihre Secrets und Secret-Versionen nach BigQuery exportieren, können Sie SQL-ähnliche Abfragen für große Datenmengen ausführen und wertvolle Informationen über Ihre Assets gewinnen. Prüfen Sie vor dem Export Ihrer Assets, ob Ihr Dataset und Ihre Dienstkonten ordnungsgemäß konfiguriert sind.
Führen Sie den folgenden Befehl aus, um Ihre Assets zu exportieren:
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- CONTENT_TYPE: Asset-Inhaltstyp (
RESOURCE
). - PROJECT_ID: die ID des Projekts, das die zu analysierenden Geheimnisse enthält.
- SNAPSHOT_TIME: Zeitpunkt, für den ein Ressourcen-Snapshot erstellt werden soll. Dieser liegt zwischen jetzt und 5 Wochen in der Vergangenheit.
- BIGQUERY_PROJECT_ID: die ID des Projekts, in dem sich die BigQuery-Tabelle befindet.
- DATASET_ID: Die ID des BigQuery-Datasets.
- TABLE_NAME: die Tabelle, in die Sie Ihre Metadaten exportieren. Wenn das nicht der Fall ist, wird es erstellt.
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud asset export \ --content-type=CONTENT_TYPE \ --project=PROJECT_ID \ --snapshot-time=SNAPSHOT_TIME \ --bigquery-table=projects/BIGQUERY_PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \ --output-bigquery-force
Windows (PowerShell)
gcloud asset export ` --content-type=CONTENT_TYPE ` --project=PROJECT_ID ` --snapshot-time=SNAPSHOT_TIME ` --bigquery-table=projects/BIGQUERY_PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME ` --output-bigquery-force
Windows (cmd.exe)
gcloud asset export ^ --content-type=CONTENT_TYPE ^ --project=PROJECT_ID ^ --snapshot-time=SNAPSHOT_TIME ^ --bigquery-table=projects/BIGQUERY_PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME ^ --output-bigquery-force
Weitere Informationen finden Sie unter Nach BigQuery exportieren.
Beispielabfragen
Mit diesen Beispielabfragen können Sie nach Secrets und Secret-Versionen mit bestimmten Eigenschaften suchen.
Regionale Secrets, die in den letzten zwei Wochen erstellt wurden
Suchen Sie nach Secrets (und ihren Attributen), die Ihrer Organisation in den letzten zwei Wochen hinzugefügt wurden.
BigQuery
SELECT name, FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/Secret' AND resource.location <> "global" AND DATE(JSON_VALUE(resource.data, '$.createTime')) > DATE_SUB(CURRENT_DATE(), INTERVAL 2 WEEK);
Ersetzen Sie BIGQUERY_TABLE durch den vollständigen Pfad zur BigQuery-Tabelle, in die Sie alle Assets exportiert haben, wie im Abschnitt Assets in BigQuery exportieren dieses Dokuments beschrieben.
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID des Projekts, das die zu analysierenden Geheimnisse enthält
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID \ --asset-types='secretmanager.googleapis.com/Secret' \ --snapshot-time=$NOW \ --content-type='resource' \ --filter="resource.location != global AND resource.data.createTime>-P2W"
Windows (PowerShell)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ` --asset-types='secretmanager.googleapis.com/Secret' ` --snapshot-time=$NOW ` --content-type='resource' ` --filter="resource.location != global AND resource.data.createTime>-P2W"
Windows (cmd.exe)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ^ --asset-types='secretmanager.googleapis.com/Secret' ^ --snapshot-time=$NOW ^ --content-type='resource' ^ --filter="resource.location != global AND resource.data.createTime>-P2W"
Regionale Secrets an einem bestimmten Standort
Alle an einem bestimmten Speicherort (z. B. us-central1
) gespeicherten Geheimnisse aufrufen
BigQuery
SELECT * FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/Secret' AND resource.location = "us-central1";
Ersetzen Sie BIGQUERY_TABLE durch den vollständigen Pfad zur BigQuery-Tabelle, in die Sie alle Assets exportiert haben, wie im Abschnitt Assets in BigQuery exportieren dieses Dokuments beschrieben.
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID des Projekts, das die zu analysierenden Geheimnisse enthält
- LOCATION: den Google Cloud-Speicherort der Secrets
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID \ --asset-types='secretmanager.googleapis.com/Secret' \ --snapshot-time=$NOW \ --content-type='resource' \ --filter="resource.location = LOCATION AND resource.data.createTime>-P2W"
Windows (PowerShell)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ` --asset-types='secretmanager.googleapis.com/Secret' ` --snapshot-time=$NOW ` --content-type='resource' ` --filter="resource.location = LOCATION AND resource.data.createTime>-P2W"
Windows (cmd.exe)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ^ --asset-types='secretmanager.googleapis.com/Secret' ^ --snapshot-time=$NOW ^ --content-type='resource' ^ --filter="resource.location = LOCATION AND resource.data.createTime>-P2W"
Regionale Secret-Versionen, die vor mehr als 180 Tagen erstellt wurden
Listen Sie alle Secret-Versionen auf, die vor mehr als 180 Tagen erstellt wurden.
BigQuery
SELECT * FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/SecretVersion' resource.location <> "global" AND DATE(JSON_VALUE(resource.data, '$.createTime')) < DATE_SUB(CURRENT_DATE(), INTERVAL 180 DAY) AND JSON_VALUE(resource.data, '$.state') = "ENABLED";
Ersetzen Sie BIGQUERY_TABLE durch den vollständigen Pfad zur BigQuery-Tabelle, in die Sie alle Assets exportiert haben, wie im Abschnitt Assets in BigQuery exportieren dieses Dokuments beschrieben.
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID des Projekts, das die zu analysierenden Geheimnisse enthält
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID \ --asset-types='secretmanager.googleapis.com/SecretVersion' \ --snapshot-time=$NOW \ --content-type='resource' \ --filter="resource.location != global AND resource.data.createTime < P6M AND resource.data.state = ENABLED"
Windows (PowerShell)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ` --asset-types='secretmanager.googleapis.com/SecretVersion' ` --snapshot-time=$NOW ` --content-type='resource' ` --filter="resource.location != global AND resource.data.createTime < P6M AND resource.data.state = ENABLED"
Windows (cmd.exe)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ^ --asset-types='secretmanager.googleapis.com/SecretVersion' ^ --snapshot-time=$NOW ^ --content-type='resource' ^ --filter="resource.location != global AND resource.data.createTime < P6M AND resource.data.state = ENABLED"
Regionale Secrets ohne konfigurierten CMEK
Listen Sie alle Secrets auf, die nicht mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK) verschlüsselt wurden:
BigQuery
SELECT * FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/Secret' resource.location <> "global" AND JSON_VALUE(resource.data, "$.customerManagedEncryption.kmsKeyName") IS NOT NULL;
Ersetzen Sie BIGQUERY_TABLE durch den vollständigen Pfad zur BigQuery-Tabelle, in die Sie alle Assets exportiert haben, wie im Abschnitt Assets in BigQuery exportieren dieses Dokuments beschrieben.
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID des Projekts, das die zu analysierenden Geheimnisse enthält
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID \ --asset-types='secretmanager.googleapis.com/Secret' \ --snapshot-time=$NOW \ --content-type='resource' \ --filter="resource.location != global AND resource.data.customerManagedEncryption = NULL"
Windows (PowerShell)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ` --asset-types='secretmanager.googleapis.com/Secret' ` --snapshot-time=$NOW ` --content-type='resource' ` --filter="resource.location != global AND resource.data.customerManagedEncryption = NULL"
Windows (cmd.exe)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ^ --asset-types='secretmanager.googleapis.com/Secret' ^ --snapshot-time=$NOW ^ --content-type='resource' ^ --filter="resource.location != global AND resource.data.customerManagedEncryption = NULL"
Regionale Secrets mit konfiguriertem CMEK
Listet alle Secrets auf, die mit CMEK verschlüsselt wurden.
BigQuery
SELECT * FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/Secret' resource.location <> "global" AND JSON_VALUE(resource.data, "$.customerManagedEncryption.kmsKeyName") IS NOT NULL;
Ersetzen Sie BIGQUERY_TABLE durch den vollständigen Pfad zur BigQuery-Tabelle, in die Sie alle Assets exportiert haben, wie im Abschnitt Assets in BigQuery exportieren dieses Dokuments beschrieben.
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID des Projekts, das die zu analysierenden Geheimnisse enthält
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID \ --asset-types='secretmanager.googleapis.com/Secret' \ --snapshot-time=$NOW \ --content-type='resource' \ --filter="resource.location != global AND resource.data.customerManagedEncryption != NULL"
Windows (PowerShell)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ` --asset-types='secretmanager.googleapis.com/Secret' ` --snapshot-time=$NOW ` --content-type='resource' ` --filter="resource.location != global AND resource.data.customerManagedEncryption != NULL"
Windows (cmd.exe)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ^ --asset-types='secretmanager.googleapis.com/Secret' ^ --snapshot-time=$NOW ^ --content-type='resource' ^ --filter="resource.location != global AND resource.data.customerManagedEncryption != NULL"
Regionale Secrets, die mit einem bestimmten CMEK verschlüsselt wurden
Secrets suchen, die mit einem bestimmten CMEK verschlüsselt wurden
BigQuery
SELECT * FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/Secret' resource.location <> "global" AND JSON_VALUE(resource.data, "$.customerManagedEncryption.kmsKeyName") = KMS_KEY_NAME;
Ersetzen Sie Folgendes:
-
BIGQUERY_TABLE: Der vollständige Pfad zur BigQuery-Tabelle, in die Sie alle Assets exportiert haben, im Abschnitt Assets in BigQuery exportieren dieses Dokuments.
-
KMS_KEY_NAME: die ID des Schlüssels oder die voll qualifizierte Kennzeichnung für den Schlüssel
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID des Projekts, das die zu analysierenden Geheimnisse enthält
- KMS_KEY_NAME: die ID des Schlüssels oder die voll qualifizierte Kennzeichnung für den Schlüssel
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud beta asset list --project=PROJECT_ID \ --asset-types='secretmanager.googleapis.com/Secret' \ --snapshot-time=$NOW \ --content-type='resource' \ --filter="resource.location != global AND resource.data.customerManagedEncryption.kmsKeyName=KMS_KEY_NAME"
Windows (PowerShell)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud beta asset list --project=PROJECT_ID ` --asset-types='secretmanager.googleapis.com/Secret' ` --snapshot-time=$NOW ` --content-type='resource' ` --filter="resource.location != global AND resource.data.customerManagedEncryption.kmsKeyName=KMS_KEY_NAME"
Windows (cmd.exe)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud beta asset list --project=PROJECT_ID ^ --asset-types='secretmanager.googleapis.com/Secret' ^ --snapshot-time=$NOW ^ --content-type='resource' ^ --filter="resource.location != global AND resource.data.customerManagedEncryption.kmsKeyName=KMS_KEY_NAME"
Regionale Secret-Versionen ohne konfigurierten CMEK
Alle aktivierten Secret-Versionen finden, die nicht mit einem CMEK verschlüsselt wurden
BigQuery
SELECT * FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/SecretVersion' resource.location <> "global" AND JSON_VALUE(resource.data, "$.customerManagedEncryption.kmsKeyVersionName") IS NULL AND JSON_VALUE(resource.data, "$.state") = "ENABLED";
Ersetzen Sie BIGQUERY_TABLE durch den vollständigen Pfad zur BigQuery-Tabelle, in die Sie alle Assets exportiert haben, wie im Abschnitt Assets in BigQuery exportieren dieses Dokuments beschrieben.
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID des Projekts, das die zu analysierenden Geheimnisse enthält
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID \ --asset-types='secretmanager.googleapis.com/SecretVersion' \ --snapshot-time=$NOW \ --content-type='resource' \ --filter="(resource.location != global AND resource.data.customerManagedEncryption.kmsKeyVersionName = NULL) AND resource.data.state=ENABLED"
Windows (PowerShell)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ` --asset-types='secretmanager.googleapis.com/SecretVersion' ` --snapshot-time=$NOW ` --content-type='resource' ` --filter="(resource.location != global AND resource.data.customerManagedEncryption.kmsKeyVersionName = NULL) AND resource.data.state=ENABLED"
Windows (cmd.exe)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ^ --asset-types='secretmanager.googleapis.com/SecretVersion' ^ --snapshot-time=$NOW ^ --content-type='resource' ^ --filter="(resource.location != global AND resource.data.customerManagedEncryption.kmsKeyVersionName = NULL) AND resource.data.state=ENABLED"
Regionale Secret-Versionen, die mit einem bestimmten CMEK verschlüsselt wurden
Alle aktivierten Secret-Versionen auflisten, die mit einer bestimmten CMEK-Version verschlüsselt wurden.
BigQuery
SELECT * FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/SecretVersion' resource.location <> "global" AND JSON_VALUE(resource.data, "$.customerManagedEncryption.kmsKeyVersionName") = KMS_KEY_VERSION_NAME AND JSON_VALUE(resource.data, "$.state") = "ENABLED";
Ersetzen Sie Folgendes:
-
BIGQUERY_TABLE: Der vollständige Pfad zur BigQuery-Tabelle, in die Sie alle Assets exportiert haben, im Abschnitt Assets in BigQuery exportieren dieses Dokuments.
-
KMS_KEY_VERSION_NAME: die Versionsnummer des Cloud Key Management Service-Schlüssels
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID des Projekts, das die zu analysierenden Geheimnisse enthält
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID \ --asset-types='secretmanager.googleapis.com/SecretVersion' \ --snapshot-time=$NOW \ --content-type='resource' \ --filter="(resource.location != global AND resource.data.customerManagedEncryption.kmsKeyVersionName = KMS_KEY_VERSION_NAME) AND resource.data.state=ENABLED"
Windows (PowerShell)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ` --asset-types='secretmanager.googleapis.com/SecretVersion' ` --snapshot-time=$NOW ` --content-type='resource' ` --filter="(resource.location != global AND resource.data.customerManagedEncryption.kmsKeyVersionName = KMS_KEY_VERSION_NAME) AND resource.data.state=ENABLED"
Windows (cmd.exe)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ^ --asset-types='secretmanager.googleapis.com/SecretVersion' ^ --snapshot-time=$NOW ^ --content-type='resource' ^ --filter="(resource.location != global AND resource.data.customerManagedEncryption.kmsKeyVersionName = KMS_KEY_VERSION_NAME) AND resource.data.state=ENABLED"
Regionale Secrets ohne konfigurierte Rotation
Nach Secrets suchen, die keinen Rotationsplan haben
BigQuery
SELECT name FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/Secret' AND resource.location <> "global" AND JSON_EXTRACT(resource.data, '$.rotation') IS NULL;
Ersetzen Sie BIGQUERY_TABLE durch den vollständigen Pfad zur BigQuery-Tabelle, in die Sie alle Assets exportiert haben, wie im Abschnitt Assets in BigQuery exportieren dieses Dokuments beschrieben.
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID des Projekts, das die zu analysierenden Geheimnisse enthält
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID \ --asset-types='secretmanager.googleapis.com/Secret' \ --snapshot-time=$NOW \ --content-type='resource' \ --filter="resource.location != global AND resource.data.rotation = NULL"
Windows (PowerShell)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ` --asset-types='secretmanager.googleapis.com/Secret' ` --snapshot-time=$NOW ` --content-type='resource' ` --filter="resource.location != global AND resource.data.rotation = NULL"
Windows (cmd.exe)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ^ --asset-types='secretmanager.googleapis.com/Secret' ^ --snapshot-time=$NOW ^ --content-type='resource' ^ --filter="resource.location != global AND resource.data.rotation = NULL"
Regionale Secrets mit einem bestimmten Rotationszeitraum
Alle Secrets suchen, die planmäßig weniger als einmal alle 90 Tage rotiert werden:
BigQuery
SELECT * FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/Secret' AND resource.location <> "global" AND CAST( TRIM( JSON_VALUE(JSON_EXTRACT(resource.data, "$.rotation.rotationPeriod")),"s") AS INT64) < 86400 * 90 #Rotation period in seconds (86400s in 1 day * 90 days)
Ersetzen Sie BIGQUERY_TABLE durch den vollständigen Pfad zur BigQuery-Tabelle, in die Sie alle Assets exportiert haben, wie im Abschnitt Assets in BigQuery exportieren dieses Dokuments beschrieben.
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID des Projekts, das die zu analysierenden Geheimnisse enthält
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") ROTATION_PERIOD_SECONDS=$((90 * 24 * 60 * 60)) gcloud asset list --project=PROJECT_ID \ --asset-types='secretmanager.googleapis.com/Secret' \ --snapshot-time=$NOW \ --content-type='resource' \ --filter="resource.location != global AND resource.data.rotation != null AND resource.data.rotation.rotationPeriod <= ${ROTATION_PERIOD_SECONDS}s"
Windows (PowerShell)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") ROTATION_PERIOD_SECONDS=$((90 * 24 * 60 * 60)) gcloud asset list --project=PROJECT_ID ` --asset-types='secretmanager.googleapis.com/Secret' ` --snapshot-time=$NOW ` --content-type='resource' ` --filter="resource.location != global AND resource.data.rotation != null AND resource.data.rotation.rotationPeriod <= ${ROTATION_PERIOD_SECONDS}s"
Windows (cmd.exe)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") ROTATION_PERIOD_SECONDS=$((90 * 24 * 60 * 60)) gcloud asset list --project=PROJECT_ID ^ --asset-types='secretmanager.googleapis.com/Secret' ^ --snapshot-time=$NOW ^ --content-type='resource' ^ --filter="resource.location != global AND resource.data.rotation != null AND resource.data.rotation.rotationPeriod <= ${ROTATION_PERIOD_SECONDS}s"
Regionale Secrets, die in den nächsten 30 Tagen ablaufen
Listen Sie Secrets auf, die in den nächsten 30 Tagen ablaufen.
BigQuery
SELECT * FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/Secret' AND resource.location <> "global" AND DATE(JSON_VALUE(resource.data, '$.expireTime')) < DATE_ADD(CURRENT_DATE(), INTERVAL 30 DAY);
Ersetzen Sie BIGQUERY_TABLE durch den vollständigen Pfad zur BigQuery-Tabelle, in die Sie alle Assets exportiert haben, wie im Abschnitt Assets in BigQuery exportieren dieses Dokuments beschrieben.
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID des Projekts mit den zu überwachenden Assets
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID \ --asset-types='secretmanager.googleapis.com/Secret' \ --snapshot-time=$NOW \ --content-type='resource' \ --filter="resource.location != global AND resource.data.expireTime < PD30"
Windows (PowerShell)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ` --asset-types='secretmanager.googleapis.com/Secret' ` --snapshot-time=$NOW ` --content-type='resource' ` --filter="resource.location != global AND resource.data.expireTime < PD30"
Windows (cmd.exe)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ^ --asset-types='secretmanager.googleapis.com/Secret' ^ --snapshot-time=$NOW ^ --content-type='resource' ^ --filter="resource.location != global AND resource.data.expireTime < PD30"
Regionale Secrets mit einem konfigurierten Pub/Sub-Thema
Alle Secrets auflisten, für die mindestens ein Pub/Sub-Thema konfiguriert ist.
BigQuery
SELECT name, ARRAY_LENGTH(JSON_EXTRACT_ARRAY(resource.data, '$.topics')) AS topics_count, FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/Secret' AND resource.location <> "global" AND ARRAY_LENGTH(JSON_EXTRACT_ARRAY(resource.data, '$.topics')) > 0
Ersetzen Sie BIGQUERY_TABLE durch den vollständigen Pfad zur BigQuery-Tabelle, in die Sie alle Assets exportiert haben, wie im Abschnitt Assets in BigQuery exportieren dieses Dokuments beschrieben.
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID des Projekts mit den zu überwachenden Assets
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID \ --asset-types='secretmanager.googleapis.com/Secret' \ --snapshot-time=$NOW \ --content-type='resource' \ --filter="resource.location != global AND resource.data.topics != NULL"
Windows (PowerShell)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ` --asset-types='secretmanager.googleapis.com/Secret' ` --snapshot-time=$NOW ` --content-type='resource' ` --filter="resource.location != global AND resource.data.topics != NULL"
Windows (cmd.exe)
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset list --project=PROJECT_ID ^ --asset-types='secretmanager.googleapis.com/Secret' ^ --snapshot-time=$NOW ^ --content-type='resource' ^ --filter="resource.location != global AND resource.data.topics != NULL"