你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本指南提供了沙盒项目的设置步骤,帮助您端到端地评估GitHub高级安全性(GHAS)与Microsoft Defender for Cloud的集成,使用简单的用例。
此集成通过将运行时风险和上下文与原始代码相关联,从而最大程度地提高Microsoft的云原生应用程序安全性,以便更快地进行 AI 支持的修正。
遵循本指南,您可以:
- 为 Defender for Cloud 覆盖范围设置 GitHub 存储库。
- 创建运行时风险因素。
- 将代码链接到运行时资源。
- 在 Defender for Cloud 中测试实际用例。
Prerequisites
| Aspect | Details |
|---|---|
| 环境要求 | - 在 Defender for Cloud 中创建有连接器的 GitHub 帐户 - GHAS 许可证 - 在订阅上启用 Defender 云安全状况管理 (DCSPM) - 智能 Microsoft Security Copilot 副驾驶®(可选,用于自动修正) |
| 角色和权限 | - 安全管理员权限 - Azure 订阅的安全管理员(查看 Defender for Cloud 中的安全检查结果) - GitHub组织所有者 |
| 云环境 | 仅在商业云中可用(不在 Azure 政府、世纪互联运营的Azure或其他主权云中)。 |
准备好你的环境
步骤 1:设置GitHub存储库并运行工作流
若要测试集成,请使用沙盒示例GitHub已包含所有内容的存储库来生成易受攻击的容器映像。
在设置存储库之前,请确保:
- 为您计划在 Defender for Cloud 门户中使用的 GitHub 组织定义一个连接器。 请按照 将 GitHub 环境连接到 Microsoft Defender for Cloud 中的步骤进行操作。
- 为 GitHub 连接器配置无代理代码扫描。 按照 配置无代理代码扫描(预览)中的步骤进行操作。
- 使用专用存储库进行集成。
- 将以下存储库克隆到GitHub组织:
- https://github.com/build25-woodgrove/mdc-customer-playbook 此存储库已启用 GHAS,并已加入已启用Defender CSPM的Azure租户。
在存储库中,执行以下步骤:
- 转到设置。
- 在左窗格中,选择“ 机密和变量 > 操作”。 然后选择 “新建存储库机密”。
- 在存储库或组织级别添加以下机密:
| 可变 | 说明 |
|---|---|
| ACR_ENDPOINT | 容器注册表的身份验证服务器。 |
| ACR_USERNAME | 容器注册表的用户名。 |
| ACR_PASSWORD (ACR密码) | 容器注册表的密码。 |
注释
可以为这些变量选择任何名称。 它们不需要遵循特定模式。
可以通过以下步骤在 Azure 门户中找到此信息:
- 选择要部署到的容器注册表。
- 在 “设置”下,选择 “访问密钥”。
- “访问密钥”窗格显示身份验证服务器、用户名和密码的密钥。
在存储库中,选择操作,选择生成和推送到 ACR工作流,然后选择运行工作流。
检查镜像是否已部署到您的容器注册表。 对于示例存储库,镜像应位于名为mdc-mock-0001的注册表中,并使用标签mdc-ghas-integration。
在群集上部署一个与当前运行容器相同的镜像。 完成此步骤的一种方法是连接到群集并使用 kubectl run 命令。 下面是 Azure Kubernetes 服务(AKS)的示例:
设置群集订阅:
az account set --subscription $subscriptionID
设置群集的凭据:
az aks get-credentials --resource-group $resourceGroupName --name $kubernetesClusterName --overwrite-existing
部署镜像:
kubectl run $containerName --image=$registryName.azurecr.io/mdc-mock-0001:mdc-ghas-integration
步骤 2:创建示例风险因素(业务关键规则)
Defender for Cloud 检测到此集成的一个风险因素是业务关键性。 组织可以创建规则,将资源标记为业务关键。
- 在 Defender for Cloud 门户中,转到 “环境设置>资源关键性”。
- 在右窗格中,选择要打开Microsoft Defender 的链接。
- 选择“ 创建新分类”。
- 输入名称和描述。
- 在查询生成器中,选择 “云资源”。 编写查询以将 资源名称 设置为等于部署到群集的容器的名称进行验证。 然后选择下一步。
- 在 “预览资产 ”页上,如果Microsoft Defender 检测到资源,则容器的名称将显示为 K8s-container 或 K8s-pod 的资产类型。 即使名称尚不可见,请继续执行下一步。
- 选择关键级别,然后查看并提交分类规则。
注释
Microsoft Defender 在检测到容器后将关键性标签应用于容器。 此过程最多可能需要 24 小时。
步骤 3:验证环境是否已准备就绪
验证确认您的环境已正确配置,以生成面向运行时建议的代码并产生可执行的结果。
在此步骤中,Defender 验证从完整代码到运行时的可见性。
- Microsoft Defender for Cloud持续监视源代码存储库是否存在安全漏洞。
- 在部署之前,对构建工件(如容器映像)在容器注册表中进行扫描。
- 将监视部署到 Kubernetes 群集的运行时工作负荷,以防范安全风险。
- Defender for Cloud 将每个工件从代码经过构建和部署过程关联和跟踪到运行时,并返回到回溯。
注释
应用上述步骤后,最长可能需要 24 小时才能查看以下结果。
测试 GitHub 无代理扫描功能是否检测到存储库。
转到云安全资源管理器并执行查询。 验证查询测试 Defender 是否可以识别由管道和工作负载产生的工件。 如果查询返回结果,则表示扫描和相关性按预期工作。
注释
如果未返回任何结果,则可能表示尚未生成项目、未配置扫描或缺少权限。
- 验证 Defender for Cloud(Azure 容器注册表)是否扫描了容器映像,并使用它来创建容器。
- 在查询中,添加适合特定部署的条件。
- 验证容器是否正在运行,并且 Defender for Cloud 扫描了 AKS 群集。
- 验证是否在 Defender for Cloud 端正确配置了风险因素。 在 Defender for Cloud 清单页上搜索容器名称,应会看到它标记为关键。
注释
仅当环境中尚未配置风险因素时,才需要此步骤。
成功的验证可确保后续步骤(如建议、市场活动以及GitHub问题生成)产生有意义的结果。
后续步骤
设置 GitHub 高级安全与 Microsoft Defender for Cloud 的原生集成 - 什么是 GitHub 高级安全与 Microsoft Defender for Cloud 的集成?
- 快速入门:将 GitHub 环境连接到 Microsoft Defender for Cloud