本页介绍了如何使用 Cloud Asset Inventory 监控密钥、导出数据以进行分析,以及运行强大的查询以获取所需的数据分析。
概览
Cloud Asset Inventory 会分析您的 Google Cloud 环境,并记录云资源(例如虚拟机、数据库、存储分区,在本上下文中是指 Secret Manager 中的 Secret)的任何更改。Secret Manager 与 Cloud Asset Inventory 的集成可帮助您执行以下操作:
-
运行查询:搜索特定密钥或识别密钥中的模式。
-
设置提醒:配置 Cloud Asset Inventory,以便在发生特定事件(例如创建、修改或删除 Secret)时向 Pub/Sub 发送通知。
-
导出数据:将您的秘密商品目录导出到 BigQuery,以进行深入分析和生成报告。
-
管理和分析密钥:在一个位置查看您的所有密钥(包括项目和整个组织中的密钥),并找出可能配置错误或违反贵组织安全政策的密钥。例如,您可以发现未定期轮替或缺少适当访问控制措施的 Secret。
这是面向 Secret Manager 用户的高级任务。在阅读本页之前,我们建议您先阅读以下内容:
-
Secret Manager 概览,了解 Secret Manager 的关键概念和功能
-
Cloud Asset Inventory 概览,了解 Cloud Asset Inventory 并查看其全面的资产管理功能
查询 Secret Manager
如需使用类似 SQL 的查询分析密文,我们建议您将密文和密文版本导出到 BigQuery。Secret Manager 未与资源搜索或政策分析器集成。这些查询使用 Google Cloud CLI 和 BigQuery 来搜索您的资产。
限制
使用 Cloud Asset Inventory 分析 Secret Manager 资源时,存在以下限制:
-
Cloud Asset Inventory 仅支持导出和列出过去五周内的快照。
监控资产更改
Cloud Asset Inventory 会跟踪实时更新,并支持监控这些更改。您可以配置 Feed,以便在资源每次发生更改时向一组已配置的 Pub/Sub 主题发送通知。此外,Cloud Asset Inventory 支持在 Feed 中配置条件,以便您监控特定资产类型的具体更改。如需了解如何在资源发生变化时触发工作流,请参阅 Pub/Sub 文档。
将资产导出到 BigQuery
通过将密文和密文版本导出到 BigQuery,您可以对大量数据运行类似 SQL 的查询,并生成资产有关的有意义的数据洞见。在导出资产之前,请确保数据集和服务账号已正确配置。
如需导出资源,请运行以下命令:
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- CONTENT_TYPE:资产内容类型 (
RESOURCE
)。 - PROJECT_ID:包含要分析的密钥的项目的 ID。
- SNAPSHOT_TIME:截取资源快照的时间。此时间范围可以是当前时间到过去 5 周之间的任意时间。
- BIGQUERY_PROJECT_ID:BigQuery 表所在项目的 ID。
- DATASET_ID:BigQuery 数据集的 ID。
- TABLE_NAME:要将元数据导出到的表。如果该目录不存在,系统会创建一个。
执行以下命令:
Linux、macOS 或 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
如需了解详情,请参阅导出到 BigQuery。
查询示例
您可以使用以下示例查询来查找具有特定属性的密文和密文版本。
过去两周内创建的区域性密钥
查找过去两周内添加到贵组织的密文(及其属性)。
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);
将 BIGQUERY_TABLE 替换为您在本文档的将资产导出到 BigQuery 部分中导出所有资产到的 BigQuery 表的完整路径。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID:包含要分析的密钥的项目的 ID
执行以下命令:
Linux、macOS 或 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
查找存储在特定位置(例如 us-central1
)中的所有密钥。
BigQuery
SELECT * FROM BIGQUERY_TABLE WHERE asset_type='secretmanager.googleapis.com/Secret' AND resource.location = "us-central1";
将 BIGQUERY_TABLE 替换为您在本文档的将资产导出到 BigQuery 部分中导出所有资产到的 BigQuery 表的完整路径。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID:包含要分析的密钥的项目的 ID
- LOCATION:密钥的 Google Cloud 位置
执行以下命令:
Linux、macOS 或 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"
超过 180 天前创建的区域级 Secret 版本
列出超过 180 天前创建的所有 Secret 版本。
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";
将 BIGQUERY_TABLE 替换为您在本文档的将资产导出到 BigQuery 部分中导出所有资产到的 BigQuery 表的完整路径。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID:包含要分析的密钥的项目的 ID
执行以下命令:
Linux、macOS 或 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"
未配置 CMEK 的区域级 Secret
列出未使用客户-管理员加密密钥 (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;
将 BIGQUERY_TABLE 替换为您在本文档的将资产导出到 BigQuery 部分中导出所有资产到的 BigQuery 表的完整路径。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID:包含要分析的密钥的项目的 ID
执行以下命令:
Linux、macOS 或 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"
配置了 CMEK 的区域级 Secret
列出使用 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;
将 BIGQUERY_TABLE 替换为您在本文档的将资产导出到 BigQuery 部分中导出所有资产到的 BigQuery 表的完整路径。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID:包含要分析的密钥的项目的 ID
执行以下命令:
Linux、macOS 或 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"
使用特定 CMEK 加密的区域性 Secret
查找使用特定 CMEK 加密的密文。
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;
替换以下内容:
-
BIGQUERY_TABLE:您在本文档的将素材资源导出到 BigQuery部分中导出所有素材资源到的 BigQuery 表的完整路径。
-
KMS_KEY_NAME:密钥的 ID 或密钥的完全限定标识符
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID:包含要分析的密钥的项目的 ID
- KMS_KEY_NAME:密钥的 ID 或密钥的完全限定标识符
执行以下命令:
Linux、macOS 或 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"
未配置 CMEK 的区域性 Secret 版本
查找未使用 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";
将 BIGQUERY_TABLE 替换为您在本文档的将资产导出到 BigQuery 部分中导出所有资产到的 BigQuery 表的完整路径。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID:包含要分析的密钥的项目的 ID
执行以下命令:
Linux、macOS 或 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"
使用特定 CMEK 加密的区域性 Secret 版本
列出使用特定 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";
替换以下内容:
-
BIGQUERY_TABLE:您在本文档的将素材资源导出到 BigQuery部分中导出所有素材资源到的 BigQuery 表的完整路径。
-
KMS_KEY_VERSION_NAME:Cloud Key Management Service 密钥的版本号
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID:包含要分析的密钥的项目的 ID
执行以下命令:
Linux、macOS 或 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
查找没有轮替时间表的所有密文。
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;
将 BIGQUERY_TABLE 替换为您在本文档的将资产导出到 BigQuery 部分中导出所有资产到的 BigQuery 表的完整路径。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID:包含要分析的密钥的项目的 ID
执行以下命令:
Linux、macOS 或 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
查找计划每 90 天轮替不到一次的所有密文:
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)
将 BIGQUERY_TABLE 替换为您在本文档的将资产导出到 BigQuery 部分中导出所有资产到的 BigQuery 表的完整路径。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID:包含要分析的密钥的项目的 ID
执行以下命令:
Linux、macOS 或 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"
将在接下来的 30 天内过期的区域 Secret
列出将在接下来的 30 天内过期的 Secret。
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);
将 BIGQUERY_TABLE 替换为您在本文档的将资产导出到 BigQuery 部分中导出所有资产到的 BigQuery 表的完整路径。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID:包含要监控的资产的项目的 ID
执行以下命令:
Linux、macOS 或 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"
配置了 Pub/Sub 主题的区域性密文
列出至少配置了一个 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
将 BIGQUERY_TABLE 替换为您在本文档的将资产导出到 BigQuery 部分中导出所有资产到的 BigQuery 表的完整路径。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- PROJECT_ID:包含要监控的资产的项目的 ID
执行以下命令:
Linux、macOS 或 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"
后续步骤
- 了解最佳实践。