/*************************************************

* Author : Samson

* Date : 08/07/2015

* Test platform:

* gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2

* GNU bash, 4.3.11(1)-release (x86_64-pc-linux-gnu)

* ***********************************************/

1、GRSEC and PaX

加固主机系统。

2、Use Docker in combination with AppArmor/SELinux/TOMOYO

使用强制訪问控制(mandatory access control (MAC))对Docker中使用的各种资源依据业务场景的详细分析进行资源的訪问的控制。

3、Limit traffic with iptables

使用netfilter对网络的出入訪问依据实际应用会被外网訪问的port、应用会与外网的交互网络地址、port、协议等进行梳理,进行白名单的生成并使用uptables进行配置以限制訪问;

4、Do not run software as root:不要使用root用户执行应用程序

在实际应用程序使用中,有一些必须要使用root用户才可以进行的操作,那么从安全的角度,须要将这一部分与仅使用普通用户权限运行的部分分离解耦。那么怎样在docker中使用普通用户权限对不须要root权限运行的部分进行实施呢?

在编写dockerfile时,使用类似例如以下的命令进行创建一个普通权限的用户。并设置创建的UID为以后执行程序的用户,例如以下:

RUN useradd noroot -u 1000 -s /bin/bash --no-create-home

USER noroot

RUN Application_name

docker命令參考:

https://docs.docker.com/reference/builder/#user

https://docs.docker.com/reference/builder/#run

5、docker run时不要使用--privileged选项

默认情况下,Docker容器是没有特权的,默认一个容器是不同意訪问不论什么设备的;当使用--privileged选项时。则此窗体将能訪问全部设备。比如:打开此选项后,即能够进行对Host中的/dev/下有的全部设备进行操作。若非要对host上的某些设备进行訪问的话,能够使用--device来进行设备的加入,而不是全部的设备。

Ref:

https://docs.docker.com/reference/run/#security-configuration

6、Use –cap-drop and –cap-add

使用这两个选项可能对更加细粒度的控制设置,能够加入或删除GNU Linux的能力在此容器中,能够使用的參数名支持http://linux.die.net/man/7/capabilities此网页中的全部能力选项參数。

Ref:

https://docs.docker.com/reference/run/#security-configuration

http://linux.die.net/man/7/capabilities

7、关注docker的漏洞信息、及时更新修复漏洞的安全补丁。

REF:

http://linux-audit.com/docker-security-best-practices-for-your-vessel-and-containers/

430

docker安全最佳实践概述的更多相关文章

  1. AWS 架构最佳实践概述(十一)

    AWS 架构最佳实践 AWS合理架构的框架支柱 安全性 - 保护并监控系统 能够保护信息.系统和资产 通过风险评估和缓解策略 可靠性 - 从故障中恢复并减少中断 从基础设施或服务故障中恢复 动态获取计 ...

  2. 使用nodejs构建Docker image最佳实践

    目录 简介 准备nodejs应用程序 创建Dockerfile文件 创建.dockerignore文件 创建docker image 运行docker程序 node的docker image需要注意的 ...

  3. Docker 开发最佳实践

    Docker development best practices The following development patterns have proven to be helpful for p ...

  4. Docker监控:最佳实践以及cAdvisor和Prometheus监控工具的对比

    在DockerCon EU 2015上,Brian Christner阐述了“Docker监控”的概况,分享了这方面的最佳实践和Docker stats API的指南,并对比了三个流行的监控方案:cA ...

  5. Serilog 最佳实践

    Serilog 最佳实践 概述 Serilog是 Microsoft .NET 的结构化日志记录库,并已成为[Checkout.com .NET 的首选日志记录库..它支持各种日志记录目的地(称为接收 ...

  6. Java 服务 Docker 容器化最佳实践

    转载自:https://mp.weixin.qq.com/s/d2PFISYUy6X6ZAOGu0-Kig 1. 概述 当我们在容器中运行 Java 应用程序时,可能希望对其进行调整参数以充分利用资源 ...

  7. 镜像命名的最佳实践 - 每天5分钟玩转 Docker 容器技术(18)

    我们已经学会构建自己的镜像了.接下来的问题是如何在多个 Docker Host 上使用镜像. 这里有几种可用的方法: 用相同的 Dockerfile 在其他 host 构建镜像. 将镜像上传到公共 R ...

  8. 【原创】Docker实战 Dockerfile最佳实践&&容器之间通信

    官方最佳实践文档 https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#from Docker实战(三十) ...

  9. Web前端开发最佳实践(1):前端开发概述

    引言 我从07年开始进入博客园,从最开始阅读别人的文章到自己开始尝试表达一些自己对技术的看法.可以说,博客园是我参与技术讨论的一个主要的平台.在这其间,随着接触技术的广度和深度的增加,也写了一些得到了 ...

随机推荐

  1. Convolutional Networks for Image Semantic Segmentation

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/52857657 把前段时间自己整理的一个 ...

  2. 九度oj 题目1374:所有员工年龄排序

    题目描述: 公司现在要对所有员工的年龄进行排序,因为公司员工的人数非常多,所以要求排序算法的效率要非常高,你能写出这样的程序吗? 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入的第一行为一 ...

  3. 读《MySql必知必会》笔记

    MySql必知必会 2017-12-21 意义:记录个人不注意的,或不明确的,或不知道的细节方法技巧,此书250页 登陆: mysql -u root-p -h myserver -P 9999 SH ...

  4. 【Luogu】P3343地震后的幻想乡(对积分概率进行DP)

    题目链接 神难qwq.配合rqy的博客食用. 首先我们学到有一个概率函数$p(x)$表示某事件发生概率取值小于x的函数.这个函数有什么特点呢? 那就是$\int_{-∞}^{∞}p(x)dx=1$ 这 ...

  5. BZOJ3505 & 洛谷P3166 [Cqoi2014]数三角形 【数学、数论】

    题目 给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4x4的网格上的一个三角形. 注意三角形的三点不能共线. 输入格式 输入一行,包含两个空格分隔的正整数m和n. 输出格式 输出 ...

  6. Linux目录结构简析

    Linux目录结构简析 Linux继承了unix操作系统结构清晰的特点.在linux下的文件结构非常有条理.但是,上述的优点只有在对linux相当熟悉时,才能体会到.现在,虫虫就把linux下的目录结 ...

  7. jq 的replaceWith方法在360下面会出现兼容问题

    弄的繁琐点, 先remove旧的元素,然后append就好了

  8. poj 3532 Resistance

    ---恢复内容开始--- Resistance Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 1289   Accepte ...

  9. freemarker实现自定义指令和自定义函数

    自定义指令: 1.指令在前台实现 <#macro name param1,param2,param3...paramN> </#macro> 2.指令在后台实现 1.实现Tem ...

  10. Session挂起

    异常信息: toString() unavailable - no suspended threads 使用Spring管理 ,在使用hibernate时使用如下语句Session session = ...