Google Cloud Platform (GCP) 凭据控制对托管在 GCP 上的资源的访问权限。为保护您的数据安全,使其免受攻击,您必须非常谨慎地处理您的凭据。
您应该保护所有 GCP 凭据免受意外访问。这些凭证包括但不限于以下列表所列类别。
在 Cloud Platform Console 中创建和管理的服务凭据:
- 服务帐号私钥(JSON 和 p12 文件)
- API 密钥
- OAuth2 客户端 ID 密文
您在开发者工作站上创建和管理的用户凭据:
- Google Cloud CLI 凭据:存储在运行
gcloud info
命令后报告的用户配置目录中。 - 浏览器 Cookie:此凭据为浏览器特有类型,通常存储在开发者的工作站上。
如果您怀疑任何凭据已遭到破解,应立即采取措施限制其对您的 GCP 帐号的影响。
为保护您的 GCP 帐号而需立即采取的措施
撤消并重新颁发凭据
所有凭证类型都支持撤消和重新颁发。请谨慎操作,以确保您不会因撤消凭据而遭受服务中断。
一般而言,最好先生成新凭据,然后将其推送到需要该凭据的所有服务和用户,最后再撤消旧凭据。
替换服务帐号私钥
在 Cloud Platform Console 上搜索“服务帐号”,找到受影响的服务帐号。为该服务帐号创建一个新密钥,将该密钥推送到使用旧密钥的所有位置,然后删除旧密钥。
重新生成 API 密钥
在 Cloud Platform Console 中搜索“凭据”。使用创建凭据按钮创建新 API 密钥,并使用与遭到破解的 API 密钥相同的配置。您必须遵循 API 密钥的各项限制,否则可能会遭遇中断。将新 API 密钥推送到使用旧密钥的所有位置,然后删除旧密钥。
重置 OAuth2 客户端 ID 密文
请注意,更改客户端 ID 密文将导致在密文替换时发生临时中断。
在 Cloud Platform Console 中搜索“凭据”。选择要重置的 OAuth2 客户端 ID 并进行修改。点击重置密钥按钮,然后将新密文推送到您的应用。
移除 Google Cloud CLI 凭据
如果用户的 Google Cloud CLI 凭据遭到破解,则应转到有权访问您帐号的应用,并从关联的应用列表中移除 Google Cloud CLI。
当您再次使用 Google Cloud CLI 时,它将自动要求您再次为应用授权。
G Suite 管理员也可以代表用户执行此操作。
使浏览器 Cookie 无效
如果用户怀疑自己的浏览器 Cookie 已被盗用,应立即在 accounts.google.com 上更改密码。这会使所有现有的 Cookie 失效,用户需要在浏览器中重新登录。
G Suite 管理员也可以代表用户执行此操作。
检查未经授权的访问和资源
在撤消外泄的凭据并恢复服务后,您应该检查对 GCP 资源的所有访问。
首先,您应该在 Cloud Platform Console 中检查所有受影响 GCP 项目中的活动日志(搜索“活动”),确保所有访问(特别是与外泄凭据相关的访问)都没有出现异常。
删除所有未经授权的资源
确保不存在任何非预期的资源,例如与项目关联的虚拟机、Google App Engine 应用,服务帐号、Google Cloud Storage 存储分区等。
一旦您确认已识别出所有未经授权的资源,您可以选择立即删除这些资源。这一措施对于 Compute 相关资源尤其重要,此类资源可能会外泄数据或以其他方式危害您的生产系统。
或者,您可以选择尝试隔离未经授权的资源,以允许您自己的取证团队和 Google Cloud 支持人员执行其他取证。
联系 Google Cloud 支持
联系 Google Cloud 支持。
一般最佳做法
将凭据与代码分开
将您的凭据与源代码分开管理和存储。不小心将凭据和源代码都推送到 GitHub 等源代码管理站点这种情况极其常见,这会使您的凭据容易遭到攻击。
服务帐号最佳做法
遵循服务帐号最佳做法。