你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将 Defender for Cloud CLI 与 CI/CD 管道集成
Defender for Cloud 命令行接口 (CLI) 是可在持续集成和持续部署 (CI/CD) 管道中使用的应用程序。 它运行静态分析工具并将代码连接到云服务。 可以在任何生成过程中使用 Defender for Cloud CLI,通过内置安全扫描程序扫描映像中是否存在安全漏洞。 它将扫描结果发送到 Defender for Cloud 门户。 然后,云安全资源管理器可以访问容器映像及其漏洞。
先决条件
已加入 Defender for Cloud 的 Azure 订阅。 如果还没有 Azure 帐户,请免费创建一个帐户。
以下 CI/CD 管道工具之一:Jenkins、BitBucket Pipelines、Google Cloud Build、Bamboo、CircleCI、Travis CI、TeamCity、Oracle DevOps Services、AWS CodeBuild
对于 Azure DevOps,Microsoft Security DevOps (MSDO) 扩展安装在 Azure DevOps 组织中。
已启用 Defender CSPM。
创建客户端 ID 和机密的安全管理员权限。
安装
以下部分介绍如何检索客户端 ID 和机密、更新 CI/CD 管道脚本,以及如何将环境变量添加到 CI/CD 管道。
检索 API 令牌
要允许将 Defender for Cloud CLI 中的安全数据传递到 Defender for Cloud 后端,Defender for Cloud 中的安全管理员必须先从 Defender for Cloud 生成 API 密钥以进行身份验证。
生成令牌时,安全管理员会选择与令牌关联的订阅范围。 从此令牌中“推送”到 Defender for Cloud 的数据的范围限定为与该令牌关联的订阅。 这些 API 令牌是不可变的,只能生成/删除。
在此基础上,安全管理员必须将令牌安全地传递给开发人员,以便将其添加到 CI/CD 管道。
登录到 Azure 门户。
转到“Microsoft Defender for Cloud”>“管理”>“环境设置”>“集成”。
选择“添加集成”,然后选择“DevOps 引入”。
输入令牌的描述性名称,所选租户会存储令牌信息。 输入机密描述和到期日期后,系统会生成客户端密码。
在“配置”中启用令牌并创建令牌。
复制每个令牌。 选择“确定”后,无法编辑或检索这些令牌。
在“集成”表中,会显示新的引入。
更新 CI/CD 管道脚本
每个 CI/CD 管道工具都有不同的语法。 此代码是 Bitbucket 管道的示例:
image: atlassian/default-image:3
pipelines:
default:
- parallel:
- step:
name: 'MSDO trivy test'
script:
- curl -L -o ./msdo_linux.zip https://www.nuget.org/api/v2/package/Microsoft.Security.DevOps.Cli.linux-x64/
- unzip ./msdo_linux.zip
- chmod +x tools/guardian
- chmod +x tools/Microsoft.Guardian.Cli
- ls -lah .
- tools/guardian init --force
- tools/guardian run -t trivy --export-file ./ubuntu-test.sarif --publish-file-folder-path ./ubuntu-test.sarif
管道变量
安全接收令牌后,开发人员必须为密钥配置环境变量。 环境变量通过 shell 脚本传递给 CLI,开发人员可以通过 curl 接收该脚本或手动将 shell 脚本复制到其存储库中。
名称 | 值 |
---|---|
GDN_PUSH_TOKEN_CLIENT_ID | <客户端 ID> |
GDN_PUSH_TOKEN_CLIENT_ID | <客户端 ID> |
GDN_PUSH_TOKEN_CLIENT_SECRET | <客户端机密> |
GDN_PIPELINENAME | bitbucket, jenkins, gcp, bamboo, circle, travis, teamcity, oci, aws |
GDN_PUSH_TOKEN_TENANT_ID | <租户 ID> |
在云安全资源管理器中查看结果
成功运行管道后,再次导航到 Microsoft Defender for Cloud。
在“Defender for Cloud”菜单中,选择“云安全资源管理器”。
依次选择“选择资源类型”下拉列表、“DevOps”和“完成”。
选择 + 图标以添加新的搜索条件。
选择“选择条件”下拉列表。 然后依次选择“数据”和“推送”。
选择“选择资源类型”下拉列表。 然后依次选择“容器”、“容器映像”和“完成”。
在环境设置中选择创建集成时所选的范围。
选择“搜索”。
查看管道到图像的映射的结果。
与受监视的容器关联
在云安全资源管理器中,输入以下查询:CI/CD 管道 ->管道 + 容器映像 ->包含在 + 容器寄存器(组)。
查看“资源名称”以查看容器映射。