我们正在 CodeBuild 中构建 docker 镜像。这工作正常,但我们发现安全中心“高”,因为我们必须启用特权模式:
CodeBuild.5 CodeBuild project environments should not have privileged mode enabled
我目前正在寻找一种不使用特权模式来构建 docker 映像的方法。我从 AWS 看到了这个 URL,他们也使用特权模式。
如何在不使用此模式的情况下构建 docker 映像,以便我们符合安全中心规则?
如果我们参考AWS指南https://docs.aws.amazon.com/codebuild/latest/userguide/sample-docker.html
因为你使用这个构建项目来构建Docker镜像,所以选择 特权
由于您正在构建 docker 映像,因此代码构建将需要privilegedMode=true
@ekeyse 分享了需要特权模式的 cdk 文档,否则会失败
指定 true 以启用在 Docker 内运行 Docker 守护进程 容器。仅当此构建项目时,该值才必须设置为 true 将用于构建 Docker 镜像,并指定构建 环境映像不是 AWS CodeBuild 与 Docker 提供的映像 支持。否则,所有尝试交互的关联构建 使用 Docker 守护进程将会失败。
我个人认为安全中心正在通知您有代码构建项目在特权模式下运行,如果这是有意的,您可以忽略
如果您使用 docker-compose build 而不是 docker build,则可以禁用privilegedMode。
您可以通过 aws cli 完成此操作。
aws codebuild update-project --name "my-project-name" --environment "{\"type\": \"LINUX_CONTAINER\",\"image\": \"aws/codebuild/amazonlinux2-x86_64-standard:2.0\",\"computeType\": \"BUILD_GENERAL1_SMALL\",\"privilegedMode\": false}" --profile my-aws-profile-nonprod
(目前)无法通过 AWS 控制台执行此操作。
但您可以在控制台上看到您的配置:
AWS Config > 资源 > 我的项目名称 > 查看配置项 (JSON)
之后您可以查看结果。