Analizza i secret regionali con Cloud Asset Inventory

Questa pagina spiega come utilizzare Cloud Asset Inventory per monitorare i tuoi secret, esportare i dati per l'analisi ed eseguire query efficaci per ottenere le informazioni di cui hai bisogno.

Panoramica

Cloud Asset Inventory analizza l'ambiente Google Cloud e registra qualsiasi modifica alle risorse cloud, come macchine virtuali, database, bucket di archiviazione e, in questo contesto, il tuo Secret Manager i tuoi segreti. L'integrazione tra Secret Manager e Cloud Asset Inventory ti consente di:

  • Esegui query: cerca segreti specifici o identifica schemi tra i tuoi segreti.

  • Configura avvisi: configura Cloud Asset Inventory in modo da inviare notifiche a Pub/Sub quando si verificano eventi specifici, come la creazione, la modifica o l'eliminazione dei secret.

  • Esporta i dati: esporta l'inventario segreto in BigQuery per analisi approfondite e report.

  • Gestisci e analizza i tuoi segreti: visualizza tutti i tuoi segreti in un unico posto (su tutti i progetti e l'intera organizzazione) e identificare i secret che potrebbero essere configurati in modo errato o violare le i criteri di sicurezza dell'organizzazione. Ad esempio, puoi trovare i secret che non vengono ruotati regolarmente o non disporre di adeguati controlli dell'accesso.

Questa è un'attività avanzata per gli utenti di Secret Manager. Prima di leggere questa pagina, ti consigliamo di leggere quanto segue:

Esecuzione di query su Secret Manager

Per analizzare i tuoi secret con query simili a SQL, ti consigliamo di esportare il secret e le sue versioni in BigQuery. Secret Manager non è integrato con Asset Search o Policy Analyzer. Queste query utilizzano l'interfaccia a riga di comando Google Cloud e BigQuery per cercare gli asset.

Limitazioni

L'utilizzo di Cloud Asset Inventory per analizzare le risorse di Secret Manager presenta la seguente limitazione:

  • Cloud Asset Inventory supporta l'esportazione e l'elenco degli snapshot solo per le ultime cinque settimane.

Monitorare le modifiche agli asset

Cloud Asset Inventory tiene traccia degli aggiornamenti in tempo reale e supporta il monitoraggio di queste modifiche. Puoi configurare i feed per inviare notifiche a un insieme di argomenti Pub/Sub configurati ogni volta che viene apportata una modifica alle tue risorse. Inoltre, Cloud Asset Inventory supporta la configurazione di condizioni sui feed, in modo da poter monitorare modifiche specifiche per determinati tipi di asset. Per scoprire come attivare flussi di lavoro sull'asset modifiche, consulta la documentazione di Pub/Sub.

Esportare asset in BigQuery

L'esportazione dei secret e delle versioni dei secret in BigQuery consente di eseguire query di tipo SQL grandi quantità di dati e produrre insight significativi sui tuoi asset. Prima di esportare gli asset, Verificare che il set di dati e gli account di servizio siano configurati correttamente.

Per esportare gli asset, esegui il seguente comando:

gcloud

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • CONTENT_TYPE: il tipo di contenuto della risorsa (RESOURCE).
  • PROJECT_ID: l'ID del progetto contenente i secret da analizzare.
  • SNAPSHOT_TIME: l'ora in cui acquisire gli snapshot delle risorse. Può essere compreso tra l'ora corrente e 5 settimane nel passato.
  • BIGQUERY_PROJECT_ID: l'ID del progetto in cui si trova la tabella BigQuery.
  • DATASET_ID: l'ID del set di dati BigQuery.
  • TABLE_NAME: la tabella in cui stai esportando i metadati. Se non esiste, è stata creata.

Esegui il seguente comando:

Linux, macOS o 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

Per ulteriori informazioni, consulta la sezione Esportare in BigQuery.

Query di esempio

Utilizza queste query di esempio per trovare secret e versioni dei secret con proprietà specifiche.

Secret regionali creati nelle ultime due settimane

Trova i secret (e le relative proprietà) aggiunti alla tua organizzazione nella nelle ultime due settimane.

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);
  

Sostituisci BIGQUERY_TABLE con il percorso completo a BigQuery nella tabella in cui hai esportato tutti gli asset Esportare gli asset in BigQuery di questo documento.

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto contenente i secret da analizzare

Esegui la persone che seguo :

Linux, macOS o 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"

Secret regionali in una località specifica

Trova tutti i secret archiviati in una località specifica, ad esempio us-central1.

BigQuery

    SELECT * FROM BIGQUERY_TABLE
    WHERE asset_type='secretmanager.googleapis.com/Secret' AND
      resource.location = "us-central1";
  

Sostituisci BIGQUERY_TABLE con il percorso completo della tabella BigQuery in cui hai esportato tutti gli asset nella sezione Esportare asset in BigQuery di questo documento.

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto contenente i secret da analizzare
  • LOCATION: la località di Google Cloud dei segreti

Esegui la persone che seguo :

Linux, macOS o 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"

Versioni dei secret regionali create più di 180 giorni fa

Elenca tutte le versioni del secret create più di 180 giorni fa.

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";
  

Sostituisci BIGQUERY_TABLE con il percorso completo a BigQuery nella tabella in cui hai esportato tutti gli asset Esportare gli asset in BigQuery di questo documento.

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto contenente i secret da analizzare

Esegui la persone che seguo :

Linux, macOS o 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"

Secret regionali senza CMEK configurata

Elenca tutti i secret non criptati con chiavi di crittografia gestite dal cliente (CMEK):

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;
  

Sostituisci BIGQUERY_TABLE con il percorso completo della tabella BigQuery in cui hai esportato tutti gli asset nella sezione Esportare asset in BigQuery di questo documento.

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto contenente i secret da analizzare

Esegui la persone che seguo :

Linux, macOS o 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"

Secret regionali con CMEK configurata

Elenca tutti i secret criptati con CMEK.

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;
  

Sostituisci BIGQUERY_TABLE con il percorso completo a BigQuery nella tabella in cui hai esportato tutti gli asset Esportare gli asset in BigQuery di questo documento.

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto contenente i secret da analizzare

Esegui la persone che seguo :

Linux, macOS o 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"

Secret regionali criptati con una CMEK specifica

Trova i secret criptati con una CMEK specifica.

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;
  

Sostituisci quanto segue:

  • BIGQUERY_TABLE: il percorso completo della tabella BigQuery in cui hai esportato tutti gli asset nella sezione Esportare asset in BigQuery di questo documento.

  • KMS_KEY_NAME: l'ID della chiave o dell'identificatore completo della chiave

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto contenente i secret da analizzare
  • KMS_KEY_NAME: l'ID della chiave o l'identificatore completo della chiave

Esegui la persone che seguo :

Linux, macOS o 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"

Versioni dei secret regionali senza CMEK configurato

Trova tutte le versioni dei secret abilitate che non sono criptate con CMEK.

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";
  

Sostituisci BIGQUERY_TABLE con il percorso completo della tabella BigQuery in cui hai esportato tutti gli asset nella sezione Esportare asset in BigQuery di questo documento.

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto contenente i secret da analizzare

Esegui la persone che seguo :

Linux, macOS o 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"

Versioni del secret regionali criptate con una CMEK specifica

Elenca tutte le versioni del secret abilitate criptate con una versione CMEK specifica.

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";
  

Sostituisci quanto segue:

  • BIGQUERY_TABLE: il percorso completo della tabella BigQuery in cui hai esportato tutti gli asset nella sezione Esportare asset in BigQuery di questo documento.

  • KMS_KEY_VERSION_NAME: il numero di versione della chiave Cloud Key Management Service

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto contenente i secret da analizzare

Esegui la persone che seguo :

Linux, macOS o 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"

Secret regionali senza rotazione configurata

Trova tutti i secret che non hanno una pianificazione della rotazione.

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;
  

Sostituisci BIGQUERY_TABLE con il percorso completo a BigQuery nella tabella in cui hai esportato tutti gli asset Esportare gli asset in BigQuery di questo documento.

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto contenente i secret da analizzare

Esegui la persone che seguo :

Linux, macOS o 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"

Secret regionali con un periodo di rotazione specifico

Trova tutti i secret pianificati per la rotazione meno di una volta ogni 90 giorni:

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)
  

Sostituisci BIGQUERY_TABLE con il percorso completo a BigQuery nella tabella in cui hai esportato tutti gli asset Esportare gli asset in BigQuery di questo documento.

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto contenente i secret da analizzare

Esegui la persone che seguo :

Linux, macOS o 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"

Secret regionali che scadranno nei prossimi 30 giorni

Elenca i secret che scadranno nei prossimi 30 giorni.

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);
  

Sostituisci BIGQUERY_TABLE con il percorso completo della tabella BigQuery in cui hai esportato tutti gli asset nella sezione Esportare asset in BigQuery di questo documento.

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto che contiene gli asset da monitorare

Esegui il seguente comando:

Linux, macOS o 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"

Secret regionali con un argomento Pub/Sub configurato

Elenca tutti i secret per cui è configurato almeno un argomento Pub/Sub.

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
  

Sostituisci BIGQUERY_TABLE con il percorso completo a BigQuery nella tabella in cui hai esportato tutti gli asset Esportare gli asset in BigQuery di questo documento.

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto che contiene gli asset da monitorare

Esegui il seguente comando:

Linux, macOS o 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"

Passaggi successivi