启用密文扫描

本文档介绍了如何使用 Secure Source Manager 中的集成式密钥扫描功能保护敏感信息。

Secure Source Manager 中的 Secret 扫描功能可提高代码库的安全性。它会分析推送到代码库或通过拉取请求合并的提交内容,主动扫描您应加密或移除的敏感信息。如果检测到此类数据,Secret 扫描会自动拒绝推送或阻止拉取请求合并,从而防止敏感详细信息被意外合并。

Secure Source Manager 中的 Secret 扫描会将以下类别的信息视为敏感信息:

  • 加密密钥:包括 SSH 私钥等。
  • AWS 凭证:Amazon Web Services 的访问密钥和私钥。
  • Google Cloud credentials:服务账号密钥和其他 Google Cloud 密钥。
  • OAuth 客户端密钥:用于通过 OAuth 进行应用身份验证的密钥。
  • 密钥:用于身份验证或授权的敏感密钥。

启用 Secret 扫描

确保为您的代码库启用了以下角色和设置。

所需的角色

如需获得启用 Secret 扫描所需的权限,请让管理员为您授予 Secure Source Manager 代码库的 Secure Source Manager Repository Admin (roles/securesourcemanager.repoAdmin) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

此预定义角色包含启用 Secret 扫描所需的 securesourcemanager.repositories.update 权限。

您也可以使用自定义角色或其他预定义角色来获取此权限。

如需了解如何授予 Secure Source Manager 角色,请参阅使用 IAM 进行访问权限控制和向用户授予实例访问权限。

服务账号权限

如果您将 Secret 扫描配置为使用自定义 Sensitive Data Protection 检查模板,则 Secure Source Manager 使用的服务账号必须具有读取模板的权限(例如 DLP Reader 角色 roles/dlp.reader)。

  • 如果为代码库配置了每个代码库的服务账号,Secure Source Manager 将专门使用该服务账号。您必须向每个代码库的服务账号授予模板读取权限。
  • 如果未配置每个代码库的服务账号,Secure Source Manager 会使用实例服务账号。

更新代码库设置

您可以通过 Secure Source Manager 界面为代码库启用 Secret 扫描:

  1. 前往要启用 Secret 扫描的代码库。
  2. 点击设置图标。
  3. 找到密钥扫描切换开关。
  4. 点击切换开关,将其切换到开启位置。
  5. 可选:在检查模板字段中,输入 Sensitive Data Protection 检查模板的资源名称。
  6. 点击 Update Settings 按钮。

使用 Secret 扫描

启用 Secret 扫描后,它会主动监控对代码库的提交。如果在通过 Git 推送的提交或通过网页界面中的拉取请求合并的提交中发现敏感信息,则提交会被拒绝或合并会被阻止。

从命令行推送时,您会收到一条错误消息,指出存在敏感数据。此时,您有两种选择:

还原更改

如需移除敏感信息,您可以使用以下命令还原存在问题的提交:

git reset --soft COMMIT_ID

将 COMMIT_ID 替换为实际提交 ID。

由于 Git 会保留所有提交的历史记录,因此仍可以从之前的提交中恢复敏感材料。为避免这种情况,请使用 git reset --soft 命令。然后,更正文件并再次提交,以从分支的近期历史记录中移除数据。

强制推送提交(绕过密钥扫描)

在特定情况下,如果检测到的信息被视为可接受,则具有适当权限的用户可以选择绕过密钥扫描检查并强制推送提交。

git push -o dlpskip=true origin \
    BRANCH_NAME

将 BRANCH_NAME 替换为您要合并的分支的名称。

后续步骤