美文网首页
Docker学习(15) Docker 安全

Docker学习(15) Docker 安全

作者: August________ | 来源:发表于2019-11-16 18:46 被阅读0次

Docker学习(15) Docker 安全

  • 安全性是基于分层隔离的,
  • docker支持linux治理的安装机制,同时到此自身提供了很多简单易于配置的安全机制。
  • Linux的安全技术
  • Docker 平台的安全技术

docker 安全 ——简介

  • linux的安全技术
linux的安全技术
强制访问控制(MAC)
系统权限
控制组
内核命名空间
安全计算
  • docker 的安全技术
docker 的安全技术
密钥管理
Docker 内容信任
安全扫描
Swarm模式
  • Docker Swarm模式:默认开启安全功能,无需任何配置,可以获取节点加密ID、双向认证、自动化CA配置、自动证书更新,加密集群存储、加密网络等安全技术
  • Docker 的内容信任:允许用户对镜像签名,并对拉取的镜像的完整度和发布者进行验证
  • Docker 的安全扫描:分析docker镜像,检查已知缺陷,并提供对应的详细报告。
  • Docker 密钥:存储在加密集群的存储中,在容器传输过程中实时解密。,使用时保存在内的文件系统中。

Docker 安全——详解

Linux的安全技术

  • 每个优秀的容器平台都可以使用命名空间和控制组技术来构建容器。

Namespace

  • 内核命名空间技术将操作系统(OS)进行拆分,使一个操作系统看起来像多个独立的操作系统。
    • 可以在相同的操作系统中运行多个Web服务,同时不存在端口冲突的问题。
  • linux Docker利用了下列的内核命名空间
    • 进程ID(PID)
    • 网络(NET)
    • 文件系统/挂载(MNT)
    • 进程内通信 (IPC)
    • 用户(USER)
    • UTS
  • 容器就是由各个命名空间组合而成的
  • 进程ID命名空间:Docker使用进程ID命名空间为每个容器提供相互独立的容器树,每个容器都有自己的进程树,都有PID为1的进程
  • 网络命名空间:Docker使用NET命名空间为每个容器提供相互独立的网络桟,网络桟中包括接口、ID地址、端口地址以及路由表
  • 挂载点命名空间:每个docker容器都有相互隔离的根目录/,意味这每个容器都有/etc、/car、/dev等目录。
  • 进程内通信命名空间:docker使用IPC命名空间为容器提供共享内存。
  • 用户命名空间:docker使用用户命名空间将容器内的用户映射到linux主机不同的用户上。

Control Group

  • 控制组是用于限额的。
  • docker中,容器是相互隔离的,但是共享操作系统(OS)的资源,如CPU、RAM、以及磁盘I/O,CGroup运行用户设置限制。,这个单个容器不会占用全部CPU、RAM、磁盘I/O

Capability

  • 因为root拥有全部权限,,因此使用root运行容器很危险,但是使用非root用户,缺少权限。
  • 可以使用capability,可以选择运行容器时所需的root权限。
  • root用户由许多能力组成,包括:
    • CAP_CHOWN: 允许用户修改文件权限
    • CAP_NET_BIND_SERVICE: 运行用户将socket绑定到系统端口上
    • CAP_SETUID: 运行用户提升进程的优先级
    • CAP_SYS_BOOT :允许用户重启进程

MAC

  • Docker对新容器添加了默认的配置文件AppArmor,会根据文档描述,来提供保护

seccomp

  • Docker使用过滤模式,限制容器对宿主机发起系统调用。

Docker平台的安全技术

Swarm模式

  • Docker Swarm提供了很多开箱即用的安全特性,提供了合理的默认值

    • 加密节点ID

    • 基于TLS的认证机制

    • 安全准入令牌

    • 支持周期性证书自动更新CA配置。

    • 加密集群存储

    • 加密网络

  1. Swarm准入令牌
    • 向某个Swarm集群加入管理节点和工作节点,唯一的凭证就是准入令牌

    • 管理者所需令牌

    • 工作者所需令牌

  1. TLS和双向认证
  • 每个加入Swarm集群的工作节点和管理节点都需要发布自己的客户端证书

  • 查看指定节点的客户端证书

root@mgr-1:~# openssl x509 -in /var/lib/docker/swarm/certificates/swarm-node.crt -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            55:53:20:04:4f:a0:7c:5b:1c:6f:c8:6b:49:6c:43:a0:c2:ff:1d:db
    Signature Algorithm: ecdsa-with-SHA256
        Issuer: CN=swarm-ca
        Validity
            Not Before: Nov 15 15:05:00 2019 GMT
            Not After : Feb 13 16:05:00 2020 GMT
        Subject: O=jkrijzccz14sfb0f41ep9znrr, OU=swarm-manager, CN=l564anfboh0ne59d8vet8pzzz
        Subject Public Key Info:

  • O=jkrijzccz14sfb0f41ep9znrr:表示的swarmID
  • OU=swarm-manager:表示节点角色
  • CN=l564anfboh0ne59d8vet8pzzz:表示节点ID信息。
  1. 配置CA信息
  • 更新Swarm证书的更新周期,改为30天
lhf@mgr-1:~$ docker swarm update --cert-expiry 720h
Swarm updated.
  1. 集群存储
  • 集群存储相当于swarm的大脑,保存了集群配置和状态数据。

相关文章

网友评论

      本文标题:Docker学习(15) Docker 安全

      本文链接:https://www.haomeiwen.com/subject/xhzyictx.html