Esta página explica como usar o Inventário de recursos do Cloud para monitorar seus segredos, exportar dados para análise e executar consultas eficientes para receber os insights necessários.
Visão geral
O Inventário de recursos do Cloud analisa seu ambiente do Google Cloud e registra todas as mudanças nos recursos da nuvem, como máquinas virtuais, bancos de dados, buckets de armazenamento e, neste contexto, os segredos do Secret Manager. A integração entre o Secret Manager e o Inventário de recursos do Cloud ajuda você a fazer o seguinte:
-
Executar consultas: pesquise segredos específicos ou identifique padrões entre eles.
-
Configurar alertas: configure o Inventário de recursos do Cloud para enviar notificações ao Pub/Sub quando eventos específicos ocorrerem, como quando segredos são criados, modificados ou excluídos.
-
Exportar dados: exporte seu inventário secreto para o BigQuery para análise detalhada e geração de relatórios.
-
Gerenciar e analisar segredos: confira todos os segredos em um só lugar (em projetos e em toda a organização) e identifique segredos que podem estar configurados incorretamente ou violar as políticas de segurança da organização. Por exemplo, é possível encontrar segredos que não são trocados regularmente ou que não têm controles de acesso adequados.
Esta é uma tarefa avançada para usuários do Secret Manager. Antes de ler esta página, recomendamos que você leia o seguinte:
-
Visão geral do Secret Manager para entender os principais conceitos e recursos do Secret Manager.
-
Visão geral do Inventário de recursos do Cloud para entender o Inventário de recursos do Cloud e conferir os recursos abrangentes de gerenciamento de recursos.
Como consultar o Secret Manager
Para analisar seus segredos com consultas semelhantes a SQL, recomendamos que você exporte seus segredos e as versões deles para o BigQuery. O Secret Manager não é integrado à Busca de recursos ou à Análise de políticas. Essas consultas usam a Google Cloud CLI e o BigQuery para pesquisar seus recursos.
Limitações
O uso do Inventário de recursos do Cloud para analisar recursos do Secret Manager tem a seguinte limitação:
-
O Inventário de recursos do Cloud só é compatível com exportação e listagem de snapshots das últimas cinco semanas.
Monitorar mudanças de recursos
O Inventário de recursos do Cloud rastreia atualizações em tempo real e é compatível com o monitoramento dessas alterações. É possível configurar feeds para enviar notificações para um conjunto de tópicos do Pub/Sub configurados sempre que houver uma modificação nos seus recursos. Além disso, o Inventário de recursos do Cloud é compatível com a configuração de condições nos seus feeds para que você possa monitorar mudanças específicas em determinados tipos de recursos. Para saber como acionar fluxos de trabalho em mudanças de recursos, consulte a documentação do Pub/Sub.
Exportar recursos para o BigQuery
A exportação de secrets e versões de secrets para o BigQuery permite executar consultas semelhantes a SQL em grandes quantidades de dados e produzir insights significativos sobre seus recursos. Antes de exportar seus recursos, verifique se o conjunto de dados e as contas de serviço estão configurados corretamente.
Para exportar seus recursos, execute o seguinte comando:
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- CONTENT_TYPE: o tipo de conteúdo do recurso (
RESOURCE
). - PROJECT_ID: o ID do projeto que contém os segredos a serem analisados.
- SNAPSHOT_TIME: o horário em que os recursos serão capturados. Isso pode ser feito entre o horário atual e cinco semanas atrás.
- BIGQUERY_PROJECT_ID: o ID do projeto em que a tabela do BigQuery está.
- DATASET_ID: o ID do conjunto de dados do BigQuery.
- TABLE_NAME: a tabela para a qual você está exportando os metadados. Se não existir, ele será criado.
Execute o seguinte comando:
Linux, macOS ou 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 mais informações, consulte Como exportar para o BigQuery.
Amostras de consultas
Use estes exemplos de consultas para encontrar segredos e versões de segredos com propriedades específicas.
Secrets regionais criados nas últimas duas semanas
Encontre segredos (e as propriedades deles) que foram adicionados à sua organização nas últimas duas 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);
Substitua BIGQUERY_TABLE pelo caminho completo para a tabela do BigQuery para a qual você exportou todos os recursos na seção Exportar recursos para o BigQuery deste documento.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto que contém os segredos a serem analisados
Execute o seguinte comando:
Linux, macOS ou 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 regionais em um local específico
Encontre todos os segredos armazenados em um local específico, como us-central1
.
BigQuery
SELECT * FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/Secret' AND resource.location = "us-central1";
Substitua BIGQUERY_TABLE pelo caminho completo para a tabela do BigQuery para a qual você exportou todos os recursos na seção Exportar recursos para o BigQuery deste documento.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto que contém os segredos a serem analisados
- LOCATION: o local do Google Cloud dos segredos.
Execute o seguinte comando:
Linux, macOS ou 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"
Versões regionais do secret criadas há mais de 180 dias
Liste todas as versões secretas que foram criadas há mais de 180 dias.
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";
Substitua BIGQUERY_TABLE pelo caminho completo para a tabela do BigQuery para a qual você exportou todos os recursos na seção Exportar recursos para o BigQuery deste documento.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto que contém os segredos a serem analisados
Execute o seguinte comando:
Linux, macOS ou 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 regionais sem CMEK configurado
Liste todos os segredos que não são criptografados com chaves de criptografia do gerente de clientes (CMEK, na sigla em inglês):
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;
Substitua BIGQUERY_TABLE pelo caminho completo para a tabela do BigQuery para a qual você exportou todos os recursos na seção Exportar recursos para o BigQuery deste documento.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto que contém os segredos a serem analisados
Execute o seguinte comando:
Linux, macOS ou 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 regionais com CMEK configurada
Liste todos os secrets criptografados com 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;
Substitua BIGQUERY_TABLE pelo caminho completo para a tabela do BigQuery para a qual você exportou todos os recursos na seção Exportar recursos para o BigQuery deste documento.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto que contém os segredos a serem analisados
Execute o seguinte comando:
Linux, macOS ou 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 regionais criptografados com uma CMEK específica
Encontre segredos criptografados com uma 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;
Substitua:
-
BIGQUERY_TABLE: o caminho completo para a tabela do BigQuery para a qual você exportou todos os recursos na seção Exportar recursos para o BigQuery deste documento.
-
KMS_KEY_NAME: o ID da chave ou do identificador totalmente qualificado
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto que contém os segredos a serem analisados
- KMS_KEY_NAME: o ID da chave ou do identificador totalmente qualificado
Execute o seguinte comando:
Linux, macOS ou 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"
Versões regionais de secret sem a CMEK configurada
Encontre todas as versões secretas ativadas que não estão criptografadas com 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";
Substitua BIGQUERY_TABLE pelo caminho completo para a tabela do BigQuery para a qual você exportou todos os recursos na seção Exportar recursos para o BigQuery deste documento.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto que contém os segredos a serem analisados
Execute o seguinte comando:
Linux, macOS ou 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"
Versões regionais de secret criptografadas com uma CMEK específica
Liste todas as versões secretas ativadas criptografadas com uma versão específica da CMEK.
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";
Substitua:
-
BIGQUERY_TABLE: o caminho completo para a tabela do BigQuery para a qual você exportou todos os recursos na seção Exportar recursos para o BigQuery deste documento.
-
KMS_KEY_VERSION_NAME: o número da versão da chave do Cloud Key Management Service
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto que contém os segredos a serem analisados
Execute o seguinte comando:
Linux, macOS ou 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 regionais sem rotação configurada
Encontre todos os secrets que não têm uma programação de rotação.
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;
Substitua BIGQUERY_TABLE pelo caminho completo para a tabela do BigQuery para a qual você exportou todos os recursos na seção Exportar recursos para o BigQuery deste documento.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto que contém os segredos a serem analisados
Execute o seguinte comando:
Linux, macOS ou 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"
Secrets regionais com um período de rotação específico
Encontre todos os secrets programados a serem alterados menos de uma vez a cada 90 dias:
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)
Substitua BIGQUERY_TABLE pelo caminho completo para a tabela do BigQuery para a qual você exportou todos os recursos na seção Exportar recursos para o BigQuery deste documento.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto que contém os segredos a serem analisados
Execute o seguinte comando:
Linux, macOS ou 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 regionais que vão expirar nos próximos 30 dias
Liste as chaves secretas que vão expirar nos próximos 30 dias.
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);
Substitua BIGQUERY_TABLE pelo caminho completo para a tabela do BigQuery para a qual você exportou todos os recursos na seção Exportar recursos para o BigQuery deste documento.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto que contém os recursos a serem monitorados
Execute o seguinte comando:
Linux, macOS ou 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"
Secrets regionais com um tópico do Pub/Sub configurado
Liste todos os secrets que tenham pelo menos um tópico do 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
Substitua BIGQUERY_TABLE pelo caminho completo para a tabela do BigQuery para a qual você exportou todos os recursos na seção Exportar recursos para o BigQuery deste documento.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto que contém os recursos a serem monitorados
Execute o seguinte comando:
Linux, macOS ou 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"
A seguir
- Saiba mais sobre as práticas recomendadas.