Tag: 安全

在RESTful API中使用Docker容器来执行不可信代码的安全性和性能限制是什么?

我正在开发一套用于提供一些数据分析的RESTful API。 在调用API时,客户端也将能够传递脚本函数作为附加参数(并且这些函数将在分析pipe道期间执行)。 数据本身将从各种来源(如Amazon S3,客户端的Dropbox或Google云存储)中检索。 我希望能够在一个非常受控和隔离的环境中执行客户端脚本。 因此,我想为每个客户端请求实例化一个Docker容器,并在该受控环境中执行处理pipe道以及客户端脚本。 所以基本上,RESTful端点会dynamic实例化Docker容器以处理客户端请求。 完成后,处理结果将被推回到Dropbox / S3 / Google云端存储,此时对应的docker容器也将被移除或重新分配给另一个请求。 编辑1 : 从RESTful API的angular度来看,客户端请求将被接受(HTTP 202)并被推送到一个处理队列中。 处理队列中的每个请求都将在未来的某个时刻依次分配给docker集装箱。 客户端将能够使用另一个RESTful端点查询处理的状态。 编辑2 :这是一个链接解释类似的方法: https : //medium.com/aws-activate-startup-blog/sandboxing-code-in-the-era-of-containers-294edb3a674#.19882q2g5 我的问题: 这种方法对性能的影响是什么? 换句话说,系统地创build用于处理的docker容器而不是使用工作进程的性能成本是多less。 这种方法是否真的增加了额外的安全性?

从远程服务器获得“docker service update”

我想从我的CI服务器自动更新我的docker stack ,但我不知道如何configuration凭据能够从外部主机驱动docker。 我已经在我的服务器上启用了实验模式,并且在docker-machine的本地工作正常。 我的部署脚本如下所示: echo $DOCKER_CERT > cert.pem # which other file ? OPTS=" –tlsverify –host $DOCKER_DEPLOY_HOST –tlscert cert.pem" # which other args ??? docker $OPTS pull $REPO_IMAGE docker $OPTS service update multiverse-prod_api 有没有一种方法(或计划在未来的版本)来实现这只是一个SSH密钥? 谢谢 !!

Docker seccomp不在Kali上工作

我正在调查使用Docker的内核安全性。 我正在testingseccomp,它在Debian和Ubuntu上运行得非常好,但是它不适用于Kali Linux。 例: 我用这个内容创build了一个名为sec.json的简单json文件: { "defaultAction": "SCMP_ACT_ALLOW", "syscalls": [ { "name": "mkdir", "action": "SCMP_ACT_ERRNO" } ] } 它声称使用seccomp运行一个容器,这个文件将产生你不能在容器中使用mkdir命令。 这是docker运行命令: docker run –rm -ti –security-opt seccomp=/path/to/sec.json ubuntu:xenial sh 正如我所说的,它在Debian和Ubuntu上运行得非常好,但在Kali Linux上,我得到了这个错误: docker: Error response from daemon: linux seccomp: seccomp profiles are not supported on this daemon, you cannot specify a custom seccomp profile. 我的docker引擎版本是17.05.0-ce ,我的内核是4.9.0-kali3-amd64 #1 […]

使用通配符域证书来保护Docker守护进程

我试图保护有关https://docs.docker.com/engine/security/https/的 Docker守护进程,但是他们生成了一个新的CA. 有没有办法使用我自己的通配符域证书? 我已经生成了.csr并签名。 我如何告诉docker执行者接受由我的CA签名的证书? 感谢帮助 :)

在Dockerfile中存储用于Jenkins的API Token

我需要从Jenkins中检索一个工件来设置一个Docker-Image。 我的Jenkins需要一个可以通过wget通过的身份validation wget –auth-no-challenge –http-user=user –http-password=apiToken –secure-protocol=TLSv1 http://jenkins.yourcompany.com/job/your_job/build?token=TOKEN 如这里所见 现在我需要将API标记传递给我的Dockerfile。 至于Dockerfile是公共可访问的,我不想将api-token明文存储在文件中。 另一种select是Docker ARG,但他们不推荐将其用于密码或安全相关数据,因为它可以用“docker history” 复制和删除包含密码的文件似乎对我来说并不那么优雅。 有没有其他解决scheme?

为什么dockerized mongo会定期下载我的数据库?

我有一个小网站服务。 在后端,我得到了docker化的mongo和一些像nodejs&nginx这样的休闲游戏。 一切都在单独的容器。 并通过虚拟networking进行通信。 所以我的networking服务工作了几个月。 而在这段时间,我的数据库已经下降了两次。 但我甚至没有做任何改变。 Mongo将数据保存到卷中。 所以重新启动容器后,所有的数据都可以。 我检查了日志,看到了这一点。 但是我不知道为什么会这样。 这是一些黑客攻击? 2017-05-10T13:30:31.592+0000 I NETWORK [initandlisten] connection accepted from 178.174.137.79:51802 #120 (4 connections now open) 2017-05-10T13:30:31.719+0000 I COMMAND [conn120] dropDatabase DB_DROPPED starting 2017-05-10T13:30:31.734+0000 I COMMAND [conn120] dropDatabase DB_DROPPED finished 2017-05-10T13:30:31.775+0000 I COMMAND [conn120] dropDatabase hypergraph starting 2017-05-10T13:30:32.196+0000 I COMMAND [conn120] dropDatabase hypergraph finished 2017-05-10T13:30:32.198+0000 I […]

在kubernetes pods /容器上应用自定义SELinux策略

我最近开始玩kubernetes提供的PodsSecurityPolicies。 所以,据我所知,在这个时间点上,有几个参数可以应用到一个pod或一个容器级别,以实现组件之间的一定程度的安全性和隔离。 但是,我已经读过不同的边缘情况,可以在需要应用自定义SELinux策略的容器级别出现,因为SELinux提供了当前可用于容器的最佳安全分离。 例如: 扩展容器的SELinux策略 简而言之,我的问题是如果在集群中应用自定义策略变得绝对必要? 或者我们可以假设,通过应用正确的安全策略,我们可以实现最大限度的容器隔离?

什么是为Docker设置ENVvariablesCONTENT_TRUST的最佳位置

我想知道什么是所有用户/服务设置的最佳位置环境variablesCONTENT_TRUST(在Docker上启用Content Trust)。 我有一些候选人,但是我会感谢你select另一个选项的理由: 在sysconfig / docker上 在/etc/systemd/system/docker.service.d/上 在/ etc / enviroment上 谢谢!

Docker容器的encryption和相互authentication?

我有两个与Docker容器通信和安全相关的问题。 我已经看到,通过启用安全标志,可以通过encryption来保护容器到容器的通信。 此function是否可用于通过默认(或定制)桥接器上的docker运行产生的任何独立容器? 或者,它只能在群集模式中的相同覆盖networking的容器中使用? 那么,在容器中有没有类似于SSL相互authentication的特性呢? 就像在说,只有具有由特定CA签名的证书的容器可以相互交谈? 还是其他任何机制来限制哪些容器可以与哪些容器交谈,即使它们是同一个覆盖networking的一部分? 谢谢 沙比尔

为docker提供安全的分布式容器系统

我想知道是否存在一个安全的分布式容器系统的docker。 我想从主服务器(私人)部署encryption的容器,并执行到工作人员公共服务器(不安全)。 你知道解决scheme能做到吗? 预先感谢您的回答。