En esta página, se explica cómo usar Cloud Asset Inventory para supervisar tus secretos, exportar datos para el análisis y ejecutar consultas potentes para obtener las estadísticas que necesitas.
Descripción general
Cloud Asset Inventory analiza tu entorno de Google Cloud y registra cualquier cambio en tus recursos de la nube, como máquinas virtuales, bases de datos, buckets de almacenamiento y, en este contexto, los secretos de Secret Manager. La integración entre Secret Manager y Cloud Asset Inventory te ayuda a hacer lo siguiente:
-
Ejecutar consultas: Busca secretos específicos o identifica patrones en tus secretos.
-
Configura alertas: Configura Cloud Asset Inventory para que envíe notificaciones a Pub/Sub cuando ocurran eventos específicos, como cuando se creen, modifiquen o borren secretos.
-
Exporta datos: Exporta tu inventario secreto a BigQuery para generar informes y realizar análisis detallados.
-
Administra y analiza tus secretos: Consulta todos tus secretos en un solo lugar (en todos los proyectos y en toda tu organización) y, luego, identifica los que podrían estar mal configurados o que infrinjan las políticas de seguridad de tu organización. Por ejemplo, puedes encontrar secretos que no se rotan con regularidad o que carecen de controles de acceso adecuados.
Esta es una tarea avanzada para los usuarios de Secret Manager. Antes de leer esta página, te recomendamos que leas lo siguiente:
-
Descripción general de Secret Manager para comprender los conceptos y las funciones clave de Secret Manager
-
Descripción general de Cloud Asset Inventory para comprender Cloud Asset Inventory y ver sus funciones de administración de recursos integrales
Cómo consultar Secret Manager
Para analizar tus secretos con consultas similares a las de SQL, te recomendamos que exportes tus secretos y versiones de secretos a BigQuery. Secret Manager no está integrado en Busca recursos ni en el Analizador de políticas. Estas consultas usan Google Cloud CLI y BigQuery para buscar tus recursos.
Limitaciones
El uso de Cloud Asset Inventory para analizar los recursos de Secret Manager tiene la siguiente limitación:
-
Cloud Asset Inventory es compatible con la exportación y la enumeración de instantáneas solo de las últimas cinco semanas.
Supervisa los cambios en los recursos
Cloud Asset Inventory realiza un seguimiento de las actualizaciones en tiempo real y admite la supervisión de estos cambios. Puedes configurar feeds para enviar notificaciones a un conjunto de temas de Pub/Sub configurados cada vez que haya una modificación en tus recursos. Además, Cloud Asset Inventory es compatible con la configuración de condiciones en tus feeds para que puedas supervisar cambios específicos en ciertos tipos de recursos. Si deseas obtener información para activar flujos de trabajo en los cambios de recursos, consulta la documentación de Pub/Sub.
Exportar elementos a BigQuery
Exportar tus secretos y versiones de secretos a BigQuery te permite ejecutar consultas similares a las de SQL sobre grandes cantidades de datos y producir estadísticas significativas sobre tus recursos. Antes de exportar tus recursos, asegúrate de que tus cuentas de servicio y conjunto de datos estén configuradas de forma correcta.
Para exportar tus recursos, ejecuta el siguiente comando:
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- CONTENT_TYPE: Es el tipo de contenido del activo (
RESOURCE
). - PROJECT_ID: Es el ID del proyecto que contiene los secretos que se analizarán.
- SNAPSHOT_TIME: Es la hora en la que se toman las instantáneas de los recursos. Puede ser entre la hora actual y las 5 semanas anteriores.
- BIGQUERY_PROJECT_ID: Es el ID del proyecto en el que se encuentra la tabla de BigQuery.
- DATASET_ID: el ID del conjunto de datos de BigQuery.
- TABLE_NAME: Es la tabla a la que exportarás tus metadatos. Si no existe, se creará.
Ejecuta el siguiente 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
Para obtener más información, consulta Exporta a BigQuery.
Consultas de muestra
Usa estas consultas de muestra para encontrar secretos y versiones de secretos con propiedades específicas.
Secretos regionales creados en las últimas dos semanas
Busca secretos (y sus propiedades) que se agregaron a tu organización en las últimas dos semanas.
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);
Reemplaza BIGQUERY_TABLE por la ruta de acceso completa a la tabla de BigQuery a la que exportaste todos los recursos en la sección Exportar recursos a BigQuery de este documento.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto que contiene los secretos que se analizarán
Ejecuta el siguiente 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.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"
Secrets regionales en una ubicación específica
Encuentra todos los secretos almacenados en una ubicación específica, como us-central1
.
BigQuery
SELECT * FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/Secret' AND resource.location = "us-central1";
Reemplaza BIGQUERY_TABLE por la ruta de acceso completa a la tabla de BigQuery a la que exportaste todos los recursos en la sección Exportar recursos a BigQuery de este documento.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID del proyecto que contiene los secretos que se analizarán.
- LOCATION: La ubicación de Google Cloud de los secretos
Ejecuta el siguiente 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 = 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"
Versiones de Secrets regionales creadas hace más de 180 días
Enumera todas las versiones de los secretos que se crearon hace más de 180 días.
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";
Reemplaza BIGQUERY_TABLE por la ruta de acceso completa a la tabla de BigQuery a la que exportaste todos los recursos en la sección Exportar recursos a BigQuery de este documento.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto que contiene los secretos que se analizarán
Ejecuta el siguiente 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/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"
Secrets regionales sin CMEK configurados
Enumera todos los secretos que no están encriptados con claves de encriptación de administrador del 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;
Reemplaza BIGQUERY_TABLE por la ruta de acceso completa a la tabla de BigQuery a la que exportaste todos los recursos en la sección Exportar recursos a BigQuery de este documento.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto que contiene los secretos que se analizarán
Ejecuta el siguiente 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.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"
Secrets regionales con CMEK configurado
Enumera todos los secretos que se encriptan 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;
Reemplaza BIGQUERY_TABLE por la ruta de acceso completa a la tabla de BigQuery a la que exportaste todos los recursos en la sección Exportar recursos a BigQuery de este documento.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto que contiene los secretos que se analizarán
Ejecuta el siguiente 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.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"
Secretos regionales encriptados con una CMEK específica
Busca secretos que estén encriptados con una CMEK específica.
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;
Reemplaza lo siguiente:
-
BIGQUERY_TABLE: Es la ruta de acceso completa a la tabla de BigQuery a la que exportaste todos los recursos en la sección Cómo exportar recursos a BigQuery de este documento.
-
KMS_KEY_NAME: El ID de la clave o el identificador completamente calificado de la clave
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID del proyecto que contiene los secretos que se analizarán.
- KMS_KEY_NAME: El ID de la clave o el identificador completamente calificado de la clave
Ejecuta el siguiente comando:
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"
Versiones de secretos regionales sin CMEK configuradas
Busca todas las versiones de secretos habilitadas que no estén encriptadas 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";
Reemplaza BIGQUERY_TABLE por la ruta de acceso completa a la tabla de BigQuery a la que exportaste todos los recursos en la sección Exportar recursos a BigQuery de este documento.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto que contiene los secretos que se analizarán
Ejecuta el siguiente 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/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"
Versiones de secretos regionales encriptadas con una CMEK específica
Enumera todas las versiones de secretos habilitadas que se encriptaron con una versión de CMEK específica.
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";
Reemplaza lo siguiente:
-
BIGQUERY_TABLE: Es la ruta de acceso completa a la tabla de BigQuery a la que exportaste todos los recursos en la sección Cómo exportar recursos a BigQuery de este documento.
-
KMS_KEY_VERSION_NAME: El número de versión de la clave de Cloud Key Management Service
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto que contiene los secretos que se analizarán
Ejecuta el siguiente 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/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"
Secrets regionales sin rotación configurada
Busca todos los secretos que no tengan un programa de rotación.
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;
Reemplaza BIGQUERY_TABLE por la ruta de acceso completa a la tabla de BigQuery a la que exportaste todos los recursos en la sección Exportar recursos a BigQuery de este documento.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto que contiene los secretos que se analizarán
Ejecuta el siguiente 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.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"
Secretos regionales con un período de rotación específico
Busca todos los secretos programados para rotar menos de una vez cada 90 días:
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)
Reemplaza BIGQUERY_TABLE por la ruta de acceso completa a la tabla de BigQuery a la que exportaste todos los recursos en la sección Cómo exportar recursos a BigQuery de este documento.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto que contiene los secretos que se analizarán
Ejecuta el siguiente comando:
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"
Secrets regionales que vencerán en los próximos 30 días
Enumera los secretos que vencerán en los próximos 30 días.
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);
Reemplaza BIGQUERY_TABLE por la ruta de acceso completa a la tabla de BigQuery a la que exportaste todos los recursos en la sección Exportar recursos a BigQuery de este documento.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto que contiene los recursos que se deben supervisar
Ejecuta el siguiente 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"
Secretos regionales con un tema de Pub/Sub configurado
Enumera todos los secretos que tengan al menos un tema de Pub/Sub configurado.
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
Reemplaza BIGQUERY_TABLE por la ruta de acceso completa a la tabla de BigQuery a la que exportaste todos los recursos en la sección Exportar recursos a BigQuery de este documento.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto que contiene los recursos que se deben supervisar
Ejecuta el siguiente 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"
¿Qué sigue?
- Obtén información sobre las prácticas recomendadas.