启用密文扫描

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

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

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

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

启用 Secret 扫描功能

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

所需角色

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

您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。

如需了解如何授予 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. 找到 Secret 扫描 开关。
  4. 点击该开关,将其置于开启 位置。
  5. 可选:在 检查模板 字段中,输入 Sensitive Data Protection 检查模板的资源名称 。

使用 Secret 扫描功能

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

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

还原更改

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

git reset --soft COMMIT_ID

COMMIT_ID 替换为实际的提交 ID。

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

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

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

git push -o dlpskip=true origin \
    BRANCH_NAME

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

后续步骤