This commit is contained in:
TRsky 2017-12-17 14:44:07 +08:00
parent e037638029
commit ac7e0d0291

View File

@ -1,11 +1,3 @@
<<<<<<< HEAD
=======
translating by HardworkFish
INTRODUCING DOCKER SECRETS MANAGEMENT
============================================================
>>>>>>> 7162ea6a1c215c9d3bafdc90adc5cb9fdbdfa989
Dockers Secrets 管理介绍
=========================
@ -20,11 +12,13 @@ Dockers Secrets 管理介绍
### Docker Secerts 管理介绍
根本上我们认为如果有一个标准的接口来访问secrets应用程序就更安全了。任何好的解决方案也必须遵循安全性实践例如在传输的过程中对secrets进行加密在休息的时候对secrets进行加密防止无意中泄露最终应用所消耗的secrets并严格遵守最小特权原则即应用程序只能访问所需的secrets不能多也不能不少。通过将secrets整合向docker的业务流程我们能够在遵循这些确切的原则下为secrets管理问题提供一种解决方案。
根本上我们认为如果有一个标准的接口来访问secrets应用程序就更安全了。任何好的解决方案也必须遵循安全性实践例如在传输的过程中对secrets进行加密在休息的时候对secrets进行加密防止无意中泄露最终应用所消耗的secrets并严格遵守最小特权原则即应用程序只能访问所需的secrets不能多也不能不少。
通过将secrets整合向docker的业务流程我们能够在遵循这些确切的原则下为secrets管理问题提供一种解决方案。
下图提供了一个高层次视图并展示了Docker swarm mode结构是如何将一种新类型的对象安全地传递给我们的容器一个secret对象。
![Docker Secrets Management](https://i0.wp.com/blog.docker.com/wp-content/uploads/b69d2410-9e25-44d8-aa2d-f67b795ff5e3.jpg?w=1140&ssl=1)
![Docker Secrets Management](https://i0.wp.com/blog.docker.com/wp-content/uploads/b69d2410-9e25-44d8-aa2d-f67b795ff5e3.jpg?w=1140&ssl=1)
在Docker中一个secret是任意的数据块比如密码、SSH 密钥、TLS凭证或者对自然界敏感的每一块数据。当你将一个secret加入swarm通过执行`docker secret create`docker利用在引导一个新的swarm时自动创建的内置的证书权威通过相互认证的TLS连接把secret交给swarm管理。
@ -37,16 +31,13 @@ $ echo "This is a secret" | docker secret create my_secret_data -
当 swarm 管理器启动的时包含secrets的被加密过的Raft日志通过每一个节点唯一的数据密钥进行解密。此密钥和用于与集群其余部分通信的节点的TLS凭据可以使用一个集群范围的密钥加密密钥进行加密该密钥称为“解锁密钥”还使用Raft进行传播将且会在管理器启动的时候被要求。
当授予新创建或运行的服务访问某个secret时管理器节的其中一个节点只有管理人员可以访问被存储的所有存储secrets将已建立的TLS连接发送给正在运行特定服务的节点。这意味着节点自己不能请求secrets并且只有在管理员提供给他们的secrets时才能访问这些secrets——严格地要求那些需要他们的服务。
如果一个服务被删除了或者被重新安排在其他地方管理员能够很快的注意到那些不再需要访问将它从内存中消除的secret 的所有节点且那节点将不能够访问应用程序的secret。
当授予新创建或运行的服务访问某个secret时管理器节的其中一个节点只有管理人员可以访问被存储的所有存储secrets将已建立的TLS连接发送给正在运行特定服务的节点。这意味着节点自己不能请求secrets并且只有在管理员提供给他们的secrets时才能访问这些secrets——严格地要求那些需要他们的服务。如果一个服务被删除了或者被重新安排在其他地方管理员能够很快的注意到那些不再需要访问将它从内存中消除的secret 的所有节点且那节点将不能够访问应用程序的secret。
```
$ docker service  create --name="redis" --secret="my_secret_data" redis:alpine
```
The  unencrypted secret is mounted into the container in an in-memory filesystem at /run/secrets/<secret_name>.
未加密的 secret 被安装到 /run/secrests/<secret name> 内存文件系统的容器中
```
$ docker exec $(docker ps --filter name=redis -q) ls -l /run/secrets
@ -54,7 +45,7 @@ total 4
-r--r--r--    1 root     root            17 Dec 13 22:48 my_secret_data
```
If a service gets deleted, or rescheduled somewhere else, the manager will immediately notify all the nodes that no longer require access to that secret to erase it from memory, and the node will no longer have any access to that application secret.
如果一个服务被删除了或者被重新安排在其他地方管理员能够很快的注意到那些不再需要访问将它从内存中消除的secret 的所有节点且那节点将不能够访问应用程序的secret。
```
$ docker service update --secret-rm="my_secret_data" redis
@ -73,21 +64,21 @@ cat: can't open '/run/secrets/my_secret_data': No such file or directory
###
![Docker Security](https://i2.wp.com/blog.docker.com/wp-content/uploads/Screenshot-2017-02-08-23.30.13.png?resize=1032%2C111&ssl=1)
### Safer Apps with Docker
### 通过 Docker 更安全地使用应用程序
Docker secrets 为开发者设计成更易于使用且IT 运维团队用它来构建和运行更加安全的运用程序。Docker secrets 是首个被设计为既能保持secret安全又能仅在当被需要secret操作的确切容器需要的使用的容器结构。从通过直接在Docker 数据中心开发部件文件的IT管理员并使用Docker 组件来定义应用程序和secrets 来看服务器、secrets、网络和volumes将能够安全可靠地使用应用程序。
Docker secrets 为开发者设计成更易于使用且IT 运维团队用它来构建和运行更加安全的运用程序。Docker secrets 是首个被设计为既能保持secret安全又能仅在当被需要secret操作的确切容器需要的使用的容器结构。从通过直接在 Docker 数据中心开发部件文件的IT管理员并使用 Docker 组件来定义应用程序和secrets 来看服务器、secrets、网络和 volumes 将能够安全可靠地使用应用程序。
Resources to learn more:
更多相关学习资源:
* [Docker Datacenter on 1.13 with Secrets, Security Scanning, Content Cache and More][7]
* [1.13 Docker 数据中心具有 Secrets, 安全扫描、容量缓存等新特性][7]
* [Download Docker][8] and get started today
* [下载 Docker ][8] 且开始学习
* [Try secrets in Docker Datacenter][9]
* [在 Docker 数据中心尝试使用 secrets][9]
* [Read the Documentation][10]
* [阅读文档][10]
* Attend an [upcoming webinar][11]
* 参与 [即将进行的在线研讨会][11]
--------------------------------------------------------------------------------