前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Openshift容器云安全加固措施70项

Openshift容器云安全加固措施70项

作者头像
魏新宇
发布2018-03-22 16:58:06
1.6K0
发布2018-03-22 16:58:06
举报

前言

企业中使用容器承载业务,除了考虑到容器的优势之外,容器的安全更是很多客户关心的话题。本篇文章就此进行讨论。本文在书写过程中,参考了一些文档,文后给出了链接。本文仅提供技术参考,并不能直接用于生产上的建议。

一、宿主机配置

1.为容器创建单独的分区

即为docker创建单独的逻辑卷。

在Openshift中,可以设置独立的磁盘做docker-vg

2. 宿主机使用最新的Linux内核

Openshift宿主机使用RHEL7,其内核不低于3.10。

3.为宿主机做安全加固

Openshift要求宿主机RHEL启用SELinux。

4.尽量保持Docker新版本

OpenShift包含红帽企业Linux,其中包含一个稳定且完全技术支持的Docker引擎。 Red Hat为OpenShift和RHEL用户维护Docker运行时,这包括相关的错误修正和安全更新。目前红帽的Openshift最新版本中的Docker和K8S是社区最新版本的次新版本。

5.仅允许受信的用户访问docker进程

Openshift不允许用户访问宿主机上的docker进程,如果想访问,需要Openshift授权。

6.审计docker进程

7-14.审计目录和其下的文件:

/var/lib/docker、/etc/docker、docker.service、docker.socket、 /etc/default/docker、 /etc/docker/daemon.json、/usr/bin/docker-containerd、 /usr/bin/docker-runc

Openshift的宿主机默认没有对这些进程和目录进行审计。参照社区步骤可以打开这些配置:https://github.com/docker/docker-bench-security

二、Docker守护进程配置

1.限制容器之间的网络流量

目前Openshift默认的SDN--OVS支持三种模式,OVS-subnet、OVS多租户、OVS Network Policy,后两种模式可以做项目之间的pod流量隔离。

2.配置日志管理

Openshift集成EFK,提供日志管理。

3.允许Docker守护进程修改iptables

OpenShift进一步实现了在租户隔离的kubernetes级别上自动执行iptables。

4.不适用不安全的容器仓库

Openshift内部集成了一个安全的docker-registry。也可以与第三方镜像仓库集成。

5.不要使用aufs存储驱动程序

OpenShift使用RHEL附带的Docker引擎,默认情况下利用Device Mapper文件系统,也可以使用OverlayFS。 Red Hat完全支持这两种方式。

6.使用授权插件

OpenShift提供了自己的完全集成的认证和授权机制,可以控制对Docker引擎的访问。 它与作为OpenShift一部分的Kubernetes编排引擎集成在一起。

7.不适用V1版本的registry

Openshift默认使用V2版本的docker registry。

三、Docker守护进程配置文件

1.确认docker.service文件属组是root:root;

2.docker.service文件属性设置为644;

3./etc/docker目录属组是root:root,权限是644;

4.registry certificate文件的属组是root:root,权限不高于444;

5./etc/default/docker 文件属组是root:root,权限是644,或者更加严格;

Openshift已经对以上配置文件做了安全加固,默认即为安全值。

四、容器镜像和Build File

1.为容器创建独立的账户

OpenShift默认使用分配的用户标识运行容器,并且还利用由defailt配置的OpenShift安全上下文(scc)来阻止特权容器。

2.使用安全受信的容器基础镜像

红帽官方提供经过安全加固的容器镜像仓库,里面有几百种容器镜像。registry.access.redhat.com

3.不要在容器中安装不需要的包

4.允许重建镜像,以便让他们包含安全补丁

OpenShift提供了集成的构建自动化功能(S2I)。 这也可用于在修补映像并将这些更新部署到正在运行的容器中,而这个过程是自动完成的。

五、容器运行时

1.不要使用特权容器

Openshift中,特权容器只能在Master或Infra节点上运行。Node节点上不需要特权容器。

2.不要在容器上mount很重要的的宿主机系统目录

3.容器之间不要开放ssh

4.不要映射容器内的特权端口,在容器上只打开需要的端口

5.不要共享宿主机的network namespace。

6.限制容器的内存使用量

OpenShift通过配置limits可以实现。

7.容器在mount宿主机根文件系统时,权限设置为只读。

8.将入口容器流量绑定到特定的宿主机网卡

9.将'on-failure'容器重启策略设置为5

OpenShift默认使用这一策略来控制租户和群集稳定性。

10.不要共享宿主机 process namespace、IPC namespace和UTS namespace。

11.不要将宿主机设备直接expose给容器

12.仅在需要时才在运行容器时覆盖默认的ulimit

在Openshift中,只有平台管理员才可以进行此操作。

13.不要使用特权选项执行docker exec命令

OpenShift利用SELinux和docker配置,禁止使用docker特权。SCC默认不会开放这个权限。

14.限制容器获取额外的权限

Openshift通过scc实现。

六、Docker的安全操作

1.定期对宿主机系和容器进行安全审计

Openshift可以利用atomic scan来扫描容器镜像的安全。也可以通过CloudForms自动扫描并配置不合规告警。

2.监视Docker容器的使用情况、性能和计量。

红帽通过CloudForms实现。

3.备份容器数据

Openshift中,容器可以对接ceph、GlusterFS、NAS等持久存储。备份的操作需要持久存储提供。

4.避免容器和容器镜像泛滥

而CloudForms可以提供容器/容器镜像使用频率。对于十分不常用的容器镜像,Openshift将会删除。

七、Openshift的用户和角色

1.为项目和用户配置阈值

Openshift可以配置实现。

https://docs.openshift.com/container-platform/3.7/admin_solutions/user_role_mgmt.html#setting-limits-users-projects

2.监控资源利用率

Openshift默认对容器的资源使用率进行监控。

https://docs.openshift.com/container-platform/3.7/admin_solutions/user_role_mgmt.html#control-monitor-resources

3.用角色控制用户权限

Openshift默认功能。

https://docs.openshift.com/container-platform/3.7/admin_solutions/user_role_mgmt.html#control-user-roles

4.在对用户赋予cluster-admin角色是要慎重

https://docs.openshift.com/container-platform/3.7/admin_solutions/user_role_mgmt.html#create-cluster-admin

5.使用default groups

https://docs.openshift.com/container-platform/3.7/admin_solutions/user_role_mgmt.html#leveraging-default-groups

八、OpenShift身份验证

1.必须使用带基本认证的HTTPS

Openshift默认使用https认证

https://docs.openshift.com/container-platform/3.7/admin_solutions/authentication.html#basic-auth-remote

2.启用service account认证

Openshift默认使用service account

https://docs.openshift.com/container-platform/3.7/admin_guide/service_accounts.html#enabling-service-account-authentication

3.设置SSSD以进行LDAP故障转移

https://docs.openshift.com/container-platform/3.7/install_config/advanced_ldap_configuration/sssd_for_ldap_failover.html#setting-up-for-ldap-failover

九、OpenShift功能

1.使用Seccomp限制应用程序功能

https://docs.openshift.com/container-platform/3.7/admin_guide/seccomp.html#seccomp-enabling-seccomp

2.使用ImagePolicy控制容器镜像的权限

https://docs.openshift.com/container-platform/3.7/admin_guide/image_policy.html

3.使用qouta限制使用的资源和对象

https://docs.openshift.com/container-platform/3.7/admin_guide/quota.html

4.禁用默写全局build策略

https://docs.openshift.com/container-platform/3.7/admin_guide/securing_builds.html#disabling-a-build-strategy-globally

5.限制某些全局用户的构建策略

https://docs.openshift.com/container-platform/3.7/admin_guide/securing_builds.html#restricting-build-strategies-to-a-user-globally

6.在项目中限制某些用户的构建策略

https://docs.openshift.com/container-platform/3.7/admin_guide/securing_builds.html#restricting-build-strategies-to-a-user-within-a-project

7.使用OpenSCAP对容器镜像进行合规性检查

使用CloudForms可以实现。

https://access.redhat.com/documentation/en-us/red_hat_cloudforms/4.6/html/policies_and_profiles_guide/appendix#openscap-schedule

十、OpenShift设置和配置

1.确保 internal registry的安全

https://docs.openshift.com/container-platform/3.7/install_config/registry/securing_and_exposing_registry.html#securing-the-registry

2.配置自定义证书

https://docs.openshift.com/container-platform/3.4/install_config/certificate_customization.html

3.检查证书是否过期

https://docs.openshift.com/container-platform/3.7/install_config/redeploying_certificates.html#install-config-cert-expiry

4.使用多租户为Pod和服务提供项目级别/网络隔离

https://docs.openshift.com/container-platform/3.6/architecture/additional_concepts/sdn.html#network-isolation-multitenant

5.使用Ipsec加密主机

https://docs.openshift.com/container-platform/3.7/admin_guide/ipsec.html

6.使用路由器分片来过滤名称空间/路由

https://docs.openshift.com/container-platform/3.7/install_config/router/default_haproxy_router.html#using-router-shards

7.防止DDoS攻击

https://docs.openshift.com/container-platform/3.7/install_config/router/default_haproxy_router.html#deploy-router-protecting-against-ddos-attacks

8.防止CLI版本与用户代理不匹配

https://docs.openshift.com/container-platform/3.7/install_config/configuring_authentication.html#configuring-user-agent

参考文献:

https://www.redhat.com/cms/managed-files/cl-container-security-openshift-cloud-devops-tech-detail-f7530kc-201705-en.pdf

http://www.infoq.com/cn/news/2017/02/Docker-Containerd-RunC

http://cn.linux.vbird.org/linux_basic/0440processcontrol_5.php

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大魏分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档