Help us learn about your current experience with the documentation. Take the survey.

离线配置

  • Tier: Ultimate
  • Offering: GitLab Self-Managed

对于在互联网上对外部资源访问有限制、受限或间歇性访问的环境中运行的实例,需要对 DAST 作业进行一些调整才能成功运行。有关更多信息,请参阅离线环境

离线 DAST 支持的要求

您可以在离线环境中使用任何版本的 DAST。为此,您需要:

GitLab Runner 的默认 pull policyalways, 这意味着即使本地有副本,Runner 也会尝试从 GitLab 容器注册表中拉取 Docker 镜像。 在离线环境中,如果您更喜欢仅使用本地可用的 Docker 镜像,可以将 GitLab Runner 的 pull_policy 设置为 if-not-present。 但是,我们建议如果不是在离线环境中,保持拉取策略设置为 always,因为这可以在您的 CI/CD 管道中使用更新的扫描器。

使 GitLab DAST 分析器镜像在您的 Docker 注册表中可用

对于 DAST,请将以下默认 DAST 分析器镜像从 registry.gitlab.com 导入到您的本地 Docker 容器注册表中:

  • registry.gitlab.com/security-products/dast:latest

将 Docker 镜像导入本地离线 Docker 注册表的过程取决于您的网络安全策略。 请咨询您的 IT 人员,了解可接受和批准的流程,以便导入或临时访问外部资源。 这些扫描器会定期更新新的定义, 您可能可以自行进行偶尔的更新。

有关将 Docker 镜像保存和传输为文件的详细信息,请参阅 Docker 文档中的 docker savedocker loaddocker exportdocker import

设置 DAST CI/CD 作业变量以使用本地 DAST 分析器

将以下配置添加到您的 .gitlab-ci.yml 文件中。您必须替换 image 以引用托管在您本地 Docker 容器注册表中的 DAST Docker 镜像:

include:
  - template: DAST.gitlab-ci.yml
dast:
  image: registry.example.com/namespace/dast:latest

现在,DAST 作业应该使用 DAST 分析器的本地副本来扫描您的代码并生成安全报告,而无需互联网访问。

或者,您可以使用 CI/CD 变量 SECURE_ANALYZERS_PREFIX 来覆盖 dast 镜像的基础注册表地址。