Google Cloud 凭据控制对托管在 Google Cloud 上的资源的访问权限。为保护您的数据安全,使其免受攻击,您必须非常谨慎地处理您的凭据。
我们建议您对所有 Google Cloud 凭据实施保护,使其免受意外访问。这些凭据包括但不限于:
服务凭据:
在开发者工作站或其他计算机上创建和管理的用户凭据:
浏览器 Cookie
Google Cloud CLI 凭据存储在用户的主目录中。您可以使用 gcloud
auth list
命令在 Google Cloud CLI 中列出它们。应用默认凭据存储在开发者的工作站上。浏览器 Cookie 是特定于浏览器的,但通常存储在开发者的工作站上。
如果您怀疑任何凭据已遭到泄露,必须立即采取措施来限制其对您的 Google Cloud 账号的影响。
监控凭据泄露
如需监控潜在的泄露情况,请考虑以下事项:
监控可疑的账号活动,例如权限提升和多个账号创建。使用 Cloud Audit Logs、Policy Intelligence 和 Security Command Center 监控这些活动。使用以下 Security Command Center 服务和功能:
- Event Threat Detection:用于根据管理员活动、群组更改和 Identity and Access Management (IAM) 权限更改来识别威胁。系统会针对每个威胁类别提供推荐的调查步骤,以帮助您做出响应。
- 敏感操作服务:用于跟踪组织、文件夹和项目中执行的操作;如果这些操作是由恶意操作者执行的,可能会损害您的业务。
- Cloud Infrastructure Entitlement Management (CIEM)(预览版),用于管理身份访问权限并生成有关配置错误的结果。
在 Google Workspace 和 Cloud Identity 中监控用户登录。为了更好地对相关问题进行跟踪,请考虑将日志导出到 Cloud Logging。
使用 Cloud Monitoring 或 CIEM 监控服务账号密钥的异常使用情况。
确保您的安全运维中心 (SOC) 能够及时收到通知,并拥有快速响应可疑凭据泄露事件所需的策略方案、工具和访问权限。使用 Security Command Center Enterprise 可启用 SIEM 和 SOAR 功能,例如策略方案、响应工作流和自动化操作。您还可以将 Security Command Center 与现有的 SIEM 集成,或将日志导入 Google Security Operations 以进一步分析。
保护您的 Google Cloud 资源免遭凭据泄露
如果您怀疑凭据遭到泄露,请尽快完成以下部分中的步骤,以保护您的资源。
撤消并重新颁发凭据
如果您怀疑凭据遭到泄露,请撤消该凭据,然后重新颁发。请谨慎操作,以确保您不会因撤消凭据而遭受服务中断。
通常,要重新颁发凭据,您需要生成一个新凭据,将其推送到需要该凭据的所有服务和用户,然后撤消旧凭据。
以下部分提供了每种凭据类型的特定说明。
替换服务账号密钥
在 Google Cloud 控制台中,转到服务账号页面。
找到受影响的服务账号。
为该服务账号创建一个新密钥。
将新密钥推送到使用旧密钥的所有位置。
删除旧密钥。
如需了解详情,请参阅创建服务账号。
重新生成 API 密钥
在 Google Cloud 控制台中,转到凭据页面。
使用创建凭据按钮创建新的 API 密钥。将新密钥的配置与遭到泄露的 API 密钥的配置保持一致。您必须遵循 API 密钥的各项限制,否则可能会遭遇服务中断。
将新 API 密钥推送到使用旧密钥的所有位置。
删除旧密钥。
如需了解详情,请参阅使用 API 密钥进行身份验证。
重置 OAuth2 客户端 ID 密文
更改客户端 ID 密文将导致在密文替换时发生临时服务中断。
在 Google Cloud 控制台中,转到凭据页面。
选择已遭泄露的 OAuth2 客户端 ID 并进行修改。
点击重置密文。
将新密文推送到您的应用。
如需了解详情,请参阅设置 OAuth 2.0 和使用 OAuth 2.0 访问 Google API。
以管理员身份移除 Google Cloud CLI 凭据
以 Google Workspace 管理员身份从用户的已连接应用列表中移除对 Google Cloud CLI 的访问权限。如需了解详情,请参阅查看和移除对第三方应用的访问权限。
当用户再次访问 Google Cloud CLI 时,它将自动要求用户重新授权该应用。
以用户身份移除 Google Cloud CLI 凭据
打开有权访问您的 Google 账号的应用列表。
从关联的应用列表中移除 Google Cloud CLI。
当您再次访问 Google Cloud CLI 时,它将自动要求您重新授权该应用。
以管理员身份撤消应用默认凭据
如果您怀疑应用默认凭据遭到泄露,您可以撤消该凭据。此过程可能导致临时服务中断,直到您重新创建凭据文件为止。
以 Google Workspace 管理员身份从用户的已连接应用列表中移除对 Google 身份验证库的访问权限。如需了解详情,请参阅查看和移除对第三方应用的访问权限。
以用户身份撤消应用默认凭据
如果您怀疑您创建的应用默认凭据遭到泄露,您可以撤消该凭据。此过程可能导致临时服务中断,直到您重新创建凭据文件为止。此过程只能由已遭泄露的凭据的所有者来完成。
安装并初始化 Google Cloud CLI(如果您尚未这样做)。
使用您的用户身份(而不是服务账号)向 gcloud CLI 授权:
gcloud auth login
如需了解详情,请参阅向 gcloud CLI 授权。
撤消凭据:
gcloud auth application-default revoke
(可选)删除
application_default_credentials.json
文件。该位置取决于您的操作系统:- Linux、macOS:
$HOME/.config/gcloud/
- Windows:
%APPDATA%\gcloud\
- Linux、macOS:
重新创建凭据文件:
gcloud auth application-default login
以管理员身份使浏览器 Cookie 失效
如果您怀疑浏览器 Cookie 已遭泄露,那么作为 Google Workspace 管理员,您可以让用户退出其账号。
此外,立即强制更改密码。
这些操作会使所有现有 Cookie 失效,并要求用户重新登录。
以用户身份使浏览器 Cookie 失效
如果您怀疑浏览器 Cookie 已遭泄露,请退出 Google 账号并立即更改密码。
这些操作会使所有现有 Cookie 失效。下次访问 Google Cloud 时,您必须重新登录。
检查未经授权的访问和资源
在撤消已遭泄露的凭据并恢复服务后,请检查对 Google Cloud 资源的所有访问权限。 您可以使用日志记录或 Security Command Center。
在“日志记录”部分,完成以下操作:
在 Google Cloud 控制台中检查审核日志。
搜索所有可能受影响的资源,并确保所有账号活动(特别是与已遭泄露的凭据相关的活动)都正常。
在 Security Command Center 中,完成以下操作:
在 Google Cloud 控制台中,转到 Security Command Center 发现结果页面。
如有必要,请选择您的 Google Cloud 项目或组织。
在快速过滤条件部分中,点击相应的过滤条件,以在发现结果的查询结果表中显示所需的发现结果。例如,如果您在来源显示名称子部分中选择 Event Threat Detection 或 Container Threat Detection,则结果中只会显示来自所选服务的发现结果。
该表会填充所选择来源的发现结果。
如需查看特定发现结果的详细信息,请点击
Category
下的发现结果名称。发现结果详情窗格会展开,以显示发现结果的详情摘要。如需显示由同一用户的操作生成的所有发现结果,请执行以下操作:
- 在发现结果详细信息窗格中,复制主账号电子邮件地址旁边的电子邮件地址。
- 关闭窗格。
在查询编辑器中输入以下查询:
access.principal_email="USER_EMAIL"
将 USER_EMAIL 替换为您之前复制的电子邮件地址。
Security Command Center 会显示与您指定的用户执行的操作相关的所有发现结果。
删除所有未经授权的资源
确保不存在任何可被已遭泄露的凭据访问的非预期资源,例如虚拟机、App Engine 应用、服务账号、Cloud Storage 存储桶等。
一旦您确认已识别出所有未经授权的资源,您可以选择立即删除这些资源。这对于 Compute Engine 资源尤其重要,因为攻击者可以使用已遭泄露的账号来渗漏数据或以其他方式危害您的生产系统。
或者,您可以尝试隔离未经授权的资源,以允许您自己的取证团队执行其他分析。
与 Cloud Customer Care 团队联系
如需有关查找调查和缓解步骤所需的 Google Cloud 日志和工具的帮助,请联系客户服务并打开支持案例。
避免凭据泄露的最佳做法
本节介绍了一些最佳做法,以帮助您避免凭据泄露。
将凭据与代码分开
将您的凭据与源代码分开管理和存储。不小心将凭据和源代码都推送到 GitHub 等源代码管理站点这种情况极其常见,这会使您的凭据容易遭到攻击。
如果您使用的是 GitHub 或其他公共代码库,则可以使用异常值检测或密文扫描等工具,以便可以在 GitHub 代码库中收到有关密文泄露的警告。如需停止向 GitHub 代码库提交密钥,请考虑使用 git-secrets 等工具。
使用 Secret Manager 和 Hashicorp Vault 等密文管理解决方案来存储密文,定期进行轮替,并应用最小权限。
实施服务账号最佳做法
为了帮助保护服务账号,请查看使用服务账号的最佳做法。
限制会话时长
如需强制定期重新进行身份验证,请限制 Google 及 Google Cloud 账号的会话保持活跃的时长。如需了解详情,请参阅以下内容:
使用 VPC Service Controls 限制访问权限
如需限制已遭泄露的凭据造成的影响,请使用 VPC Service Controls 创建服务边界。配置 VPC Service Controls 后,边界内的资源只能与边界内的其他资源通信。