本文档介绍了如何使用 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 扫描功能:
- 前往您要启用 Secret 扫描功能的代码库。
- 点击设置 图标。
- 找到 Secret 扫描 开关。
- 点击该开关,将其置于开启 位置。
- 可选:在 检查模板 字段中,输入 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 替换为您要合并的分支的名称。