处理被破解的 Google Cloud 凭据

Google Cloud 凭据控制对托管在 Google Cloud 上的资源的访问权限。为保护您的数据安全,使其免受攻击,您必须非常谨慎地处理您的凭据。

我们建议您对所有 Google Cloud 凭据实施保护,使其免受意外访问。这些凭据包括但不限于:

Google Cloud CLI 凭据存储在用户的主目录中。您可以使用 gcloud auth list 命令在 Google Cloud CLI 中列出它们。应用默认凭据存储在开发者的工作站上。浏览器 Cookie 是特定于浏览器的,但通常存储在开发者的工作站上。

如果您怀疑任何凭据已遭到泄露,必须立即采取措施来限制其对您的 Google Cloud 账号的影响。

监控凭据泄露

如需监控潜在的泄露情况,请考虑以下事项:

  • 监控可疑的账号活动,例如权限提升和多个账号创建。使用 Cloud Audit LogsEvent Threat Detection 监控这些活动。根据 Compute Engine 审核日志和 Google Kubernetes Engine (GKE) 审核日志中的管理员活动配置提醒。使用 Event Threat Detection 根据管理员活动、群组更改和 Identity and Access Management (IAM) 权限更改来识别威胁。

  • Google WorkspaceCloud Identity 中监控用户登录。为了更好地对相关问题进行跟踪,请考虑将日志导出到 Cloud Logging

  • 使用密文扫描等工具监控代码库中的密文。

  • 使用 Cloud Monitoring 监控服务账号密钥的异常使用。

确保您的安全运营中心 (SOC) 能够及时收到通知。您可以将 Security Command Center 与您的 SIEM 集成,将日志从 Cloud Logging 导出到 SIEM,或将日志导入 Chronicle 以进一步分析。

确保您的 SOC 拥有快速响应可疑凭据泄露事件所需的策略方案、工具和访问权限。

保护您的 Google Cloud 资源免遭凭据泄露

如果您怀疑凭据遭到泄露,请尽快完成以下部分中的步骤,以保护您的资源。

撤消并重新颁发凭据

如果您怀疑凭据遭到泄露,请撤消该凭据,然后重新颁发。请谨慎操作,以确保您不会因撤消凭据而遭受服务中断。

通常,要重新颁发凭据,您需要生成一个新凭据,将其推送到需要该凭据的所有服务和用户,然后撤消旧凭据。

以下部分提供了每种凭据类型的特定说明。

替换服务账号密钥

  1. 在 Google Cloud 控制台中,转到服务账号页面。

    转到“服务账号”

  2. 找到受影响的服务账号。

  3. 为该服务账号创建一个新密钥。

  4. 将新密钥推送到使用旧密钥的所有位置。

  5. 删除旧密钥。

如需了解详情,请参阅创建和管理服务账号

重新生成 API 密钥

  1. 在 Google Cloud 控制台中,转到凭据页面。

    转到“凭据”页面

  2. 使用创建凭据按钮创建新的 API 密钥。配置新密钥,使其与遭到泄露的 API 密钥具有相同的配置。您必须遵循 API 密钥的各项限制,否则可能会遭遇服务中断。

  3. 将新 API 密钥推送到使用旧密钥的所有位置。

  4. 删除旧密钥。

如需了解详情,请参阅使用 API 密钥

重置 OAuth2 客户端 ID 密文

更改客户端 ID 密文将导致在密文替换时发生临时服务中断。

  1. 在 Google Cloud 控制台中,转到凭据页面。

    转到“凭据”页面

  2. 选择已遭泄露的 OAuth2 客户端 ID 并进行修改。

  3. 点击重置密文

  4. 将新密文推送到您的应用。

如需了解详情,请参阅设置 OAuth 2.0使用 OAuth 2.0 访问 Google API

以管理员身份移除 Google Cloud CLI 凭据

以 Google Workspace 管理员身份从用户的已连接应用列表中移除对 Google Cloud CLI 的访问权限。如需了解详情,请参阅查看和移除对第三方应用的访问权限

当用户再次访问 Google Cloud CLI 时,它将自动要求用户重新授权该应用。

以用户身份移除 Google Cloud CLI 凭据

  1. 打开有权访问您的 Google 账号的应用列表。

  2. 从关联的应用列表中移除 Google Cloud CLI。

当您再次访问 Google Cloud CLI 时,它将自动要求您重新授权该应用。

以管理员身份撤消应用默认凭据

如果您怀疑应用默认凭据遭到泄露,您可以撤消该凭据。此过程可能导致临时服务中断,直到您重新创建凭据文件为止。

以 Google Workspace 管理员身份从用户的已连接应用列表中移除对 Google 身份验证库的访问权限。如需了解详情,请参阅查看和移除对第三方应用的访问权限

以用户身份撤消应用默认凭据

如果您怀疑您创建的应用默认凭据遭到泄露,您可以撤消该凭据。此过程可能导致临时服务中断,直到您重新创建凭据文件为止。此过程只能由已遭泄露的凭据的所有者来完成。

  1. 安装并初始化 Google Cloud CLI(如果您尚未这样做)。

  2. 使用您的用户身份(而不是服务账号)向 gcloud CLI 授权:

     gcloud auth login
    

    如需了解详情(向 gcloud CLI 授权),请参阅 /sdk/docs/authorizing。

  3. 撤消凭据:

      gcloud auth application-default revoke
    
  4. (可选)删除 application_default_credentials.json 文件。该位置取决于您的操作系统:

    • Linux、macOS:$HOME/.config/gcloud/
    • Windows:%APPDATA%\gcloud\
  5. 重新创建凭据文件:

     gcloud auth application-default login
    

以管理员身份使浏览器 Cookie 失效

如果您怀疑浏览器 Cookie 已遭泄露,那么作为 Google Workspace 管理员,您可以让用户退出其账号

此外,立即强制更改密码

这些操作会使所有现有 Cookie 失效,并要求用户重新登录。

以用户身份使浏览器 Cookie 失效

如果您怀疑浏览器 Cookie 已遭泄露,请退出 Google 账号并立即更改密码。

这些操作会使所有现有 Cookie 失效。下次访问 Google Cloud 时,您必须重新登录。

检查未经授权的访问和资源

在撤消已遭泄露的凭据并恢复服务后,请检查对 Google Cloud 资源的所有访问权限。

  1. 在 Google Cloud 控制台中检查审核日志

    转到日志浏览器

  2. 搜索所有可能受影响的资源,并确保所有账号活动(特别是与已遭泄露的凭据相关的活动)都正常。

删除所有未经授权的资源

确保不存在任何可被已遭泄露的凭据访问的非预期资源,例如虚拟机、App Engine 应用、服务账号、Cloud Storage 存储桶等。

一旦您确认已识别出所有未经授权的资源,您可以选择立即删除这些资源。这对于 Compute Engine 资源尤其重要,因为攻击者可以使用已遭泄露的账号来渗漏数据或以其他方式危害您的生产系统。

或者,您可以尝试隔离未经授权的资源,以允许您自己的取证团队执行其他分析。

与 Cloud Customer Care 团队联系

如需有关查找调查和缓解步骤所需的 Google Cloud 日志和工具的帮助,请联系客户服务并打开支持案例

避免凭据泄露的最佳做法

本节介绍了一些最佳做法,以帮助您避免凭据泄露。

将凭据与代码分开

将您的凭据与源代码分开管理和存储。不小心将凭据和源代码都推送到 GitHub 等源代码管理站点这种情况极其常见,这会使您的凭据容易遭到攻击。

如果您使用的是 GitHub 或其他公共代码库,则可以使用密文扫描等工具,以便可以在 GitHub 代码库中收到有关密文泄露的警告。如需停止向 GitHub 代码库提交密钥,请考虑使用 git-secrets 等工具。

使用 Secret ManagerHashicorp Vault 等密文管理解决方案来存储密文,定期进行轮替,并应用最小权限。

实施服务账号最佳做法

为了帮助保护服务账号,请查看使用服务账号的最佳做法

限制会话时长

如需强制定期重新进行身份验证,请限制 Google 及 Google Cloud 账号的会话保持活跃的时长。如需了解详情,请参阅以下内容:

使用 VPC Service Controls 限制访问权限

如需限制已遭泄露的凭据造成的影响,请使用 VPC Service Controls 创建服务边界。配置 VPC Service Controls 后,边界内的资源只能与边界内的其他资源通信。