From f5260baf3cccdfdc6c6a52b53586518f47a74caa Mon Sep 17 00:00:00 2001 From: TRsky <625310581@qq.com> Date: Sun, 17 Dec 2017 04:39:49 +0800 Subject: [PATCH 1/9] mcomplete the translation --- ...9 INTRODUCING DOCKER SECRETS MANAGEMENT.md | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md b/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md index a3fc2c886e..6fa5eb4bcd 100644 --- a/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md +++ b/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md @@ -1,35 +1,38 @@ -INTRODUCING DOCKER SECRETS MANAGEMENT -============================================================ -Containers are changing how we view apps and infrastructure. Whether the code inside containers is big or small, container architecture introduces a change to how that code behaves with hardware – it fundamentally abstracts it from the infrastructure. Docker believes that there are three key components to container security and together they result in inherently safer apps. +Dockers Secrets 管理介绍 +========================= + +容器正在改变我们对应用程序和基础设施的看法。无论容器内的代码量是大还是小,容器架构引入了一种代码与硬件起作用方式的变化 – 它从根本上将其从基础设施中抽象出来。对于容器安全来说,Docker这里有三个关键部分。且他们共同引起了本质上更安全的应用程序。 ![Docker Security](https://i2.wp.com/blog.docker.com/wp-content/uploads/e12387a1-ab21-4942-8760-5b1677bc656d-1.jpg?w=1140&ssl=1) + +构建更安全的应用程序的一个关键因素是与其他应用程序和系统进行安全通信,这通常需要证书、tokens、密码和其他类型的验证信息凭证--通常称为应用程序 secret。我们很高兴介绍Docker Sercets,Docker Secrets 是容器的本土解决方案,是加强容器安全的可信赖交付组件,用户可以在容器平台上直接集成 secret 分配功能。 -A critical element of building safer apps is having a secure way of communicating with other apps and systems, something that often requires credentials, tokens, passwords and other types of confidential information—usually referred to as application secrets. We are excited to introduce Docker Secrets, a container native solution that strengthens the Trusted Delivery component of container security by integrating secret distribution directly into the container platform. +有了容器,现在应用程序在多环境下是动态的、可移植的。这使得现存的 secret 分布解决方案略显不足,因为他们都是针对静态环境。不幸的是,这导致了应用程序secrets不善管理的增加,使其总是找到安全的,本土的解决方案,比如像GitHub嵌入secrets到版本控制系统,或着同样糟糕是像马后炮一样的定点解决。 -With containers, applications are now dynamic and portable across multiple environments. This  made existing secrets distribution solutions inadequate because they were largely designed for static environments. Unfortunately, this led to an increase in mismanagement of application secrets, making it common to find insecure, home-grown solutions, such as embedding secrets into version control systems like GitHub, or other equally bad—bolted on point solutions as an afterthought. +### Docker Secerts 管理介绍 -### Introducing Docker Secrets Management +根本上我们认为,如果有一个标准的接口来访问secrets,应用程序就更安全了。任何好的解决方案也必须遵循安全性实践,例如在传输的过程中,对secrets进行加密;在休息的时候对secrets进行加密;防止无意中泄露最终应用所消耗的secrets;并严格遵守最小特权原则即应用程序只能访问所需的secrets,不能多也不能不少。通过将secrets整合向docker的业务流程,我们能够在遵循这些确切的原则下为secrets管理问题提供一种解决方案。 -We fundamentally believe that apps are safer if there is a standardized interface for accessing secrets. Any good solution will also have to follow security best practices, such as encrypting secrets while in transit; encrypting secrets at rest; preventing secrets from unintentionally leaking when consumed by the final application; and strictly adhere to the principle of least-privilege, where an application only has access to the secrets that it needs—no more, no less. +下图提供了一个高层次视图,并展示了Docker swarm mode结构是如何将一种新类型的对象安全地传递给我们的容器:一个secret对象。 -By integrating secrets into Docker orchestration, we are able to deliver a solution for the secrets management problem that follows these exact principles. +![Docker Secrets Management](https://i0.wp.com/blog.docker.com/wp-content/uploads/b69d2410-9e25-44d8-aa2d-f67b795ff5e3.jpg?w=1140&ssl=1) -The following diagram provides a high-level view of how the Docker swarm mode architecture is applied to securely deliver a new type of object to our containers: a secret object. - - ![Docker Secrets Management](https://i0.wp.com/blog.docker.com/wp-content/uploads/b69d2410-9e25-44d8-aa2d-f67b795ff5e3.jpg?w=1140&ssl=1) - -In Docker, a secret is any blob of data, such as a password, SSH private key, TLS Certificate, or any other piece of data that is sensitive in nature. When you add a secret to the swarm (by running `docker secret create`), Docker sends the secret over to the swarm manager over a mutually authenticated TLS connection, making use of the [built-in Certificate Authority][17] that gets automatically created when bootstrapping a new swarm. + +在Docker中,一个secret是任意的数据块,比如密码、SSH 密钥、TLS凭证,或者对自然界敏感的每一块数据。当你将一个secret加入swarm(通过执行`docker secret create`)时,docker利用在引导一个新的swarm时自动创建的内置的证书权威,通过相互认证的TLS连接把secret交给swarm管理。 ``` $ echo "This is a secret" | docker secret create my_secret_data - ``` -Once the secret reaches a manager node, it gets saved to the internal Raft store, which uses NACL’s Salsa20Poly1305 with a 256-bit key to ensure no data is ever written to disk unencrypted. Writing to the internal store gives secrets the same high availability guarantees that the the rest of the swarm management data gets. +一旦,secret 达到一个管理节点,它就会被保存在采用NaCl的salsa20poly1305与一个256位的密钥来确保没有任何数据写入磁盘加密的 Raft store 中。 向内部存储写入secrets,保证了数据管理的大量获取。 -When a swarm manager starts up, the encrypted Raft logs containing the secrets is decrypted using a data encryption key that is unique per-node. This key, and the node’s TLS credentials used to communicate with the rest of the cluster, can be encrypted with a cluster-wide key encryption key, called the unlock key, which is also propagated using Raft and will be required on manager start. +当 swarm 管理器启动的时,包含secrets的被加密过的Raft日志通过每一个节点唯一的数据密钥进行解密。此密钥和用于与集群其余部分通信的节点的TLS凭据可以使用一个集群范围的密钥加密密钥进行加密,该密钥称为“解锁密钥”,还使用Raft进行传播,将且会在管理器启动的时候被要求。 -When you grant a newly-created or running service access to a secret, one of the manager nodes (only managers have access to all the stored secrets stored) will send it over the already established TLS connection exclusively to the nodes that will be running that specific service. This means that nodes cannot request the secrets themselves, and will only gain access to the secrets when provided to them by a manager – strictly for the services that require them. +当授予新创建或运行的服务访问某个secret时,管理器节的其中一个节点(只有管理人员可以访问被存储的所有存储secrets),将已建立的TLS连接发送给正在运行特定服务的节点。这意味着节点自己不能请求secrets,并且只有在管理员提供给他们的secrets时才能访问这些secrets——严格地要求那些需要他们的服务。 + + +如果一个服务被删除了,或者被重新安排在其他地方,管理员能够很快的注意到那些不再需要访问将它从内存中消除的secret 的所有节点,且那节点将不能够访问应用程序的secret。 ``` $ docker service  create --name="redis" --secret="my_secret_data" redis:alpine @@ -53,7 +56,7 @@ $ docker exec -it $(docker ps --filter name=redis -q) cat /run/secrets/my_secret cat: can't open '/run/secrets/my_secret_data': No such file or directory ``` -Check out the [Docker secrets docs][18] for more information and examples on how to create and manage your secrets. And a special shout out to Laurens Van Houtven (https://www.lvh.io/[)][19] in collaboration with the Docker security and core engineering team to help make this feature a reality. +为了获得更多的信息和一些说明如何创建和管理secrets的例子可以看Docker secrets 文档。同时,特别推荐Docker 安全合作团 Laurens Van Houtven (https://www.lvh.io/) 和是这一特性成为现实的团队。 [Get safer apps for dev and ops w/ new #Docker secrets management][5] @@ -64,7 +67,7 @@ Check out the [Docker secrets docs][18] for more information and examples on h ### Safer Apps with Docker -Docker secrets is designed to be easily usable by developers and IT ops teams to build and run safer apps. Docker secrets is a container first architecture designed to keep secrets safe and used only when needed by the exact container that needs that secret to operate. From defining apps and secrets with Docker Compose through an IT admin deploying that Compose file directly in Docker Datacenter, the services, secrets, networks and volumes will travel securely, safely with the application. +Docker secrets 为开发者设计成更易于使用且IT 运维团队用它来构建和运行更加安全的运用程序。Docker secrets 是首个被设计为既能保持secret安全又能仅在当被需要secret操作的确切容器需要的使用的容器结构。从通过直接在Docker 数据中心开发部件文件的IT管理员并使用Docker 组件来定义应用程序和secrets 来看,服务器、secrets、网络和volumes将能够安全可靠地使用应用程序。 Resources to learn more: @@ -83,7 +86,7 @@ Resources to learn more: via: https://blog.docker.com/2017/02/docker-secrets-management/ 作者:[ Ying Li][a] -译者:[译者ID](https://github.com/译者ID) +译者:[HardworkFish](https://github.com/HardworkFish) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ac7e0d02916bbb0a35de759e5da9565bb3836bd6 Mon Sep 17 00:00:00 2001 From: TRsky <625310581@qq.com> Date: Sun, 17 Dec 2017 14:44:07 +0800 Subject: [PATCH 2/9] update --- ...9 INTRODUCING DOCKER SECRETS MANAGEMENT.md | 39 +++++++------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md b/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md index a9731b32ec..6e12b71fd3 100644 --- a/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md +++ b/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md @@ -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 被安装到 /run/secrests/ 内存文件系统的容器中 ``` $ 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] -------------------------------------------------------------------------------- From 3932b5e0bc5c84f6e3308984ff07da6b9969d394 Mon Sep 17 00:00:00 2001 From: TRsky <625310581@qq.com> Date: Sun, 17 Dec 2017 22:06:08 +0800 Subject: [PATCH 3/9] complete the translation --- ...9 INTRODUCING DOCKER SECRETS MANAGEMENT.md | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md b/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md index 6e12b71fd3..d4fbffde9e 100644 --- a/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md +++ b/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md @@ -2,42 +2,41 @@ Dockers Secrets 管理介绍 ========================= -容器正在改变我们对应用程序和基础设施的看法。无论容器内的代码量是大还是小,容器架构引入了一种代码与硬件起作用方式的变化 – 它从根本上将其从基础设施中抽象出来。对于容器安全来说,Docker这里有三个关键部分。且他们共同引起了本质上更安全的应用程序。 +容器正在改变我们对应用程序和基础设施的看法。无论容器内的代码量是大还是小,容器架构都会引起代码如何与硬件相互作用方式的改变 —— 它从根本上将其从基础设施中抽象出来。对于容器安全来说,在 Docker 中,容器的安全性有三个关键组成部分,他们相互作用构成本质上更安全的应用程序。 ![Docker Security](https://i2.wp.com/blog.docker.com/wp-content/uploads/e12387a1-ab21-4942-8760-5b1677bc656d-1.jpg?w=1140&ssl=1) -构建更安全的应用程序的一个关键因素是与其他应用程序和系统进行安全通信,这通常需要证书、tokens、密码和其他类型的验证信息凭证--通常称为应用程序 secret。我们很高兴介绍Docker Sercets,Docker Secrets 是容器的本土解决方案,是加强容器安全的可信赖交付组件,用户可以在容器平台上直接集成 secret 分配功能。 +构建更安全的应用程序的一个关键因素是与其他应用程序和系统进行安全通信,这通常需要证书、tokens、密码和其他类型的验证信息凭证 —— 通常称为应用程序 涉密数据。我们很高兴可以推出Docker 涉密数据,一个容器的原生解决方案,它是加强容器安全的可信赖交付组件,用户可以在容器平台上直接集成涉密数据(secret) 分发功能。 -有了容器,现在应用程序在多环境下是动态的、可移植的。这使得现存的 secret 分布解决方案略显不足,因为他们都是针对静态环境。不幸的是,这导致了应用程序secrets不善管理的增加,使其总是找到安全的,本土的解决方案,比如像GitHub嵌入secrets到版本控制系统,或着同样糟糕是像马后炮一样的定点解决。 +有了容器,现在应用程序在多环境下是动态的、可移植的。这使得现存的涉密数据(secret) 分发的解决方案略显不足,因为它们都是针对静态环境。不幸的是,这导致了应用程序涉密数据(secrets)应用不善管理的增加,使得不安全的本地解决方案变得十分普遍,比如像GitHub嵌入涉密数据(secrets)到版本控制系统,或者在这之后考虑了其他同样不好的解决方案。 -### Docker Secerts 管理介绍 +### Docker 涉密数据(Secrets) 管理介绍 -根本上我们认为,如果有一个标准的接口来访问secrets,应用程序就更安全了。任何好的解决方案也必须遵循安全性实践,例如在传输的过程中,对secrets进行加密;在休息的时候对secrets进行加密;防止无意中泄露最终应用所消耗的secrets;并严格遵守最小特权原则即应用程序只能访问所需的secrets,不能多也不能不少。 +根本上我们认为,如果有一个标准的接口来访问涉密数据,应用程序就更安全了。任何好的解决方案也必须遵循安全性实践,例如在传输的过程中,对涉密数据进行加密;在空闲的时候也对涉密数据 进行加密;防止涉密数据在应用最终使用时被无意泄露;并严格遵守最低权限原则,即应用程序只能访问所需的涉密数据,不能多也不能不少。 -通过将secrets整合向docker的业务流程,我们能够在遵循这些确切的原则下为secrets管理问题提供一种解决方案。 +通过将涉密数据整合到 docker 的业务流程,我们能够在遵循这些确切的原则下为涉密数据的管理问题提供一种解决方案。 -下图提供了一个高层次视图,并展示了Docker swarm mode结构是如何将一种新类型的对象安全地传递给我们的容器:一个secret对象。 +下图提供了一个高层次视图,并展示了 Docker swarm mode 体系架构是如何将一种新类型的对象 —— 一个涉密数据对象,安全地传递给我们的容器。 ![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管理。 +在 Docker 中,一个涉密数据是任意的数据块,比如密码、SSH 密钥、TLS 凭证,或者任何其他本质上敏感的数据。当你将一个 涉密数据 加入集群(通过执行 `docker secret create` )时,利用在引导新集群时自动创建的内置证书颁发机构,Docker 通过相互认证的 TLS 连接将密钥发送给集群管理器。 ``` $ echo "This is a secret" | docker secret create my_secret_data - ``` -一旦,secret 达到一个管理节点,它就会被保存在采用NaCl的salsa20poly1305与一个256位的密钥来确保没有任何数据写入磁盘加密的 Raft store 中。 向内部存储写入secrets,保证了数据管理的大量获取。 +一旦,涉密数据到达一个管理节点,它将被保存到内部的 Raft 存储区中,该存储区使用NACL 开源加密库中的Salsa20Poly1305加密算生成的256 位密钥加密。以确保没有任何数据被永久写入未加密的磁盘。向内部存储写入涉密数据,给予了涉密数据跟其他集群数据一样的高可用性。 -当 swarm 管理器启动的时,包含secrets的被加密过的Raft日志通过每一个节点唯一的数据密钥进行解密。此密钥和用于与集群其余部分通信的节点的TLS凭据可以使用一个集群范围的密钥加密密钥进行加密,该密钥称为“解锁密钥”,还使用Raft进行传播,将且会在管理器启动的时候被要求。 +当集群管理器启动的时,包含 涉密数据 的被加密过的 Raft 日志通过每一个节点唯一的数据密钥进行解密。此密钥以及用于与集群其余部分通信的节点的 TLS 证书可以使用一个集群范围的加密密钥进行加密。该密钥称为“解锁密钥”,也使用Raft进行传播,将且会在管理器启动的时候被使用。 -当授予新创建或运行的服务访问某个secret时,管理器节的其中一个节点(只有管理人员可以访问被存储的所有存储secrets),将已建立的TLS连接发送给正在运行特定服务的节点。这意味着节点自己不能请求secrets,并且只有在管理员提供给他们的secrets时才能访问这些secrets——严格地要求那些需要他们的服务。如果一个服务被删除了,或者被重新安排在其他地方,管理员能够很快的注意到那些不再需要访问将它从内存中消除的secret 的所有节点,且那节点将不能够访问应用程序的secret。 +当授予新创建或运行的服务权限访问某个涉密数据时,其中一个管理器节点(只有管理人员可以访问被存储的所有涉密数据),将已建立的TLS连接分发给正在运行特定服务的节点。这意味着节点自己不能请求涉密数据,并且只有在管理员提供给他们的时候才能访问这些涉密数据 —— 严格地控制请求 涉密数据 的服务。 ``` $ docker service  create --name="redis" --secret="my_secret_data" redis:alpine ``` -未加密的 secret 被安装到 /run/secrests/ 内存文件系统的容器中 +未加密的涉密数据被挂载到一个容器,该容器位于 /run/secrets/ 的内存文件系统中。 ``` $ docker exec $(docker ps --filter name=redis -q) ls -l /run/secrets @@ -45,7 +44,7 @@ total 4 -r--r--r--    1 root     root            17 Dec 13 22:48 my_secret_data ``` -如果一个服务被删除了,或者被重新安排在其他地方,管理员能够很快的注意到那些不再需要访问将它从内存中消除的secret 的所有节点,且那节点将不能够访问应用程序的secret。 +如果一个服务被删除或者被重新安排在其他地方,集群管理器将立即通知所有不再需要访问该 涉密数据的节点,这些节点将不再有权访问该应用程序的 涉密数据。 ``` $ docker service update --secret-rm="my_secret_data" redis @@ -55,7 +54,7 @@ $ docker exec -it $(docker ps --filter name=redis -q) cat /run/secrets/my_secret cat: can't open '/run/secrets/my_secret_data': No such file or directory ``` -为了获得更多的信息和一些说明如何创建和管理secrets的例子可以看Docker secrets 文档。同时,特别推荐Docker 安全合作团 Laurens Van Houtven (https://www.lvh.io/) 和是这一特性成为现实的团队。 +查看Docker sercet文档以获取更多信息和示例,了解如何创建和管理您的涉密数据。同时,特别推荐Docker 安全合作团 Laurens Van Houtven (https://www.lvh.io/) 和使这一特性成为现实的团队。 [Get safer apps for dev and ops w/ new #Docker secrets management][5] @@ -66,7 +65,7 @@ cat: can't open '/run/secrets/my_secret_data': No such file or directory ### 通过 Docker 更安全地使用应用程序 -Docker secrets 为开发者设计成更易于使用且IT 运维团队用它来构建和运行更加安全的运用程序。Docker secrets 是首个被设计为既能保持secret安全又能仅在当被需要secret操作的确切容器需要的使用的容器结构。从通过直接在 Docker 数据中心开发部件文件的IT管理员并使用 Docker 组件来定义应用程序和secrets 来看,服务器、secrets、网络和 volumes 将能够安全可靠地使用应用程序。 +Docker 涉密数据旨在让开发人员和IT运营团队轻松使用,以用于构建和运行更安全的应用程序。它是是首个被设计为既能保持涉密数据安全又能仅在当被需要涉密数据操作的确切容器需要的使用的容器结构。从使用Docker Compose定义应用程序和涉密数据,到 IT 管理人员直接在Docker Datacenter中部署Compose文件、涉密数据(涉密数据),networks 和卷 volumes 都将加密、安全地跟应用程序一起传输。 更多相关学习资源: From e59f4a2664dbe6b4689dbc579b6d290dee90040f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=91=E9=AD=85=E9=AD=8D=E9=AD=89?= <625310581@qq.com> Date: Sun, 17 Dec 2017 22:13:19 +0800 Subject: [PATCH 4/9] complete translation and make it standard format --- ...09 INTRODUCING DOCKER SECRETS MANAGEMENT.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md b/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md index d4fbffde9e..7b6161a475 100644 --- a/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md +++ b/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md @@ -1,4 +1,4 @@ - + Dockers Secrets 管理介绍 ========================= @@ -6,9 +6,9 @@ Dockers Secrets 管理介绍 ![Docker Security](https://i2.wp.com/blog.docker.com/wp-content/uploads/e12387a1-ab21-4942-8760-5b1677bc656d-1.jpg?w=1140&ssl=1) -构建更安全的应用程序的一个关键因素是与其他应用程序和系统进行安全通信,这通常需要证书、tokens、密码和其他类型的验证信息凭证 —— 通常称为应用程序 涉密数据。我们很高兴可以推出Docker 涉密数据,一个容器的原生解决方案,它是加强容器安全的可信赖交付组件,用户可以在容器平台上直接集成涉密数据(secret) 分发功能。 +构建更安全的应用程序的一个关键因素是与其他应用程序和系统进行安全通信,这通常需要证书、tokens、密码和其他类型的验证信息凭证 —— 通常称为应用程序 涉密数据。我们很高兴可以推出 Docker 涉密数据,一个容器的原生解决方案,它是加强容器安全的可信赖交付组件,用户可以在容器平台上直接集成涉密数据(secret) 分发功能。 -有了容器,现在应用程序在多环境下是动态的、可移植的。这使得现存的涉密数据(secret) 分发的解决方案略显不足,因为它们都是针对静态环境。不幸的是,这导致了应用程序涉密数据(secrets)应用不善管理的增加,使得不安全的本地解决方案变得十分普遍,比如像GitHub嵌入涉密数据(secrets)到版本控制系统,或者在这之后考虑了其他同样不好的解决方案。 +有了容器,现在应用程序在多环境下是动态的、可移植的。这使得现存的涉密数据(secret) 分发的解决方案略显不足,因为它们都是针对静态环境。不幸的是,这导致了应用程序涉密数据(secrets)应用不善管理的增加,使得不安全的本地解决方案变得十分普遍,比如像 GitHub 嵌入涉密数据(secrets)到版本控制系统,或者在这之后考虑了其他同样不好的解决方案。 ### Docker 涉密数据(Secrets) 管理介绍 @@ -26,17 +26,17 @@ Dockers Secrets 管理介绍 $ echo "This is a secret" | docker secret create my_secret_data - ``` -一旦,涉密数据到达一个管理节点,它将被保存到内部的 Raft 存储区中,该存储区使用NACL 开源加密库中的Salsa20Poly1305加密算生成的256 位密钥加密。以确保没有任何数据被永久写入未加密的磁盘。向内部存储写入涉密数据,给予了涉密数据跟其他集群数据一样的高可用性。 +一旦,涉密数据到达一个管理节点,它将被保存到内部的 Raft 存储区中,该存储区使用 NACL 开源加密库中的Salsa20Poly1305加密算生成的256位密钥加密。以确保没有任何数据被永久写入未加密的磁盘。向内部存储写入涉密数据,给予了涉密数据跟其他集群数据一样的高可用性。 -当集群管理器启动的时,包含 涉密数据 的被加密过的 Raft 日志通过每一个节点唯一的数据密钥进行解密。此密钥以及用于与集群其余部分通信的节点的 TLS 证书可以使用一个集群范围的加密密钥进行加密。该密钥称为“解锁密钥”,也使用Raft进行传播,将且会在管理器启动的时候被使用。 +当集群管理器启动的时,包含 涉密数据 的被加密过的 Raft 日志通过每一个节点唯一的数据密钥进行解密。此密钥以及用于与集群其余部分通信的节点的 TLS 证书可以使用一个集群范围的加密密钥进行加密。该密钥称为“解锁密钥”,也使用 Raft 进行传播,将且会在管理器启动的时候被使用。 -当授予新创建或运行的服务权限访问某个涉密数据时,其中一个管理器节点(只有管理人员可以访问被存储的所有涉密数据),将已建立的TLS连接分发给正在运行特定服务的节点。这意味着节点自己不能请求涉密数据,并且只有在管理员提供给他们的时候才能访问这些涉密数据 —— 严格地控制请求 涉密数据 的服务。 +当授予新创建或运行的服务权限访问某个涉密数据时,其中一个管理器节点(只有管理人员可以访问被存储的所有涉密数据),将已建立的 TLS 连接分发给正在运行特定服务的节点。这意味着节点自己不能请求涉密数据,并且只有在管理员提供给他们的时候才能访问这些涉密数据 —— 严格地控制请求涉密数据的服务。 ``` $ docker service  create --name="redis" --secret="my_secret_data" redis:alpine ``` -未加密的涉密数据被挂载到一个容器,该容器位于 /run/secrets/ 的内存文件系统中。 +未加密的涉密数据被挂载到一个容器,该容器位于 `/run/secrets/` 的内存文件系统中。 ``` $ docker exec $(docker ps --filter name=redis -q) ls -l /run/secrets @@ -54,7 +54,7 @@ $ docker exec -it $(docker ps --filter name=redis -q) cat /run/secrets/my_secret cat: can't open '/run/secrets/my_secret_data': No such file or directory ``` -查看Docker sercet文档以获取更多信息和示例,了解如何创建和管理您的涉密数据。同时,特别推荐Docker 安全合作团 Laurens Van Houtven (https://www.lvh.io/) 和使这一特性成为现实的团队。 +查看 Docker secret 文档以获取更多信息和示例,了解如何创建和管理您的涉密数据。同时,特别推荐 Docker 安全合作团 Laurens Van Houtven (https://www.lvh.io/) 和使这一特性成为现实的团队。 [Get safer apps for dev and ops w/ new #Docker secrets management][5] @@ -65,7 +65,7 @@ cat: can't open '/run/secrets/my_secret_data': No such file or directory ### 通过 Docker 更安全地使用应用程序 -Docker 涉密数据旨在让开发人员和IT运营团队轻松使用,以用于构建和运行更安全的应用程序。它是是首个被设计为既能保持涉密数据安全又能仅在当被需要涉密数据操作的确切容器需要的使用的容器结构。从使用Docker Compose定义应用程序和涉密数据,到 IT 管理人员直接在Docker Datacenter中部署Compose文件、涉密数据(涉密数据),networks 和卷 volumes 都将加密、安全地跟应用程序一起传输。 +Docker 涉密数据旨在让开发人员和IT运营团队可以轻松使用,以用于构建和运行更安全的应用程序。它是是首个被设计为既能保持涉密数据安全又能仅在当被需要涉密数据操作的确切容器需要的使用的容器结构。从使用Docker Compose定义应用程序和涉密数据,到 IT 管理人员直接在 Docker Datacenter 中部署 Compose 文件、涉密数据(涉密数据),networks 和卷 volumes 都将加密、安全地跟应用程序一起传输。 更多相关学习资源: From eacc2a3e9a48c031c8184380992316a5299a0260 Mon Sep 17 00:00:00 2001 From: TRsky <625310581@qq.com> Date: Sun, 17 Dec 2017 22:30:26 +0800 Subject: [PATCH 5/9] mmtranslated by HardworkFish --- ...G DOCKER SECRETS MANAGEMENT.md - 快捷方式.lnk | Bin 0 -> 1168 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 translated/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md - 快捷方式.lnk diff --git a/translated/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md - 快捷方式.lnk b/translated/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md - 快捷方式.lnk new file mode 100644 index 0000000000000000000000000000000000000000..e9452e58c511f2eb35dc8fba68b2415c784c43ca GIT binary patch literal 1168 zcmcIjPiWI%6#r!owxWj)>TohK$^=D>X)mJ{VI_%OmnN-EszY;Vmj-le*U@xrg6y(` zOcXW{2Fh^$89RuAhn+-G@GQbS2!hBC3L*-M!VZG(OS*OwVJGwPy?@`!@4fuKmlOal z)It(??n#`wg?8{{caNw6uCmJI&Yr#(pIGJA=Y0L(fS<_usv)B-A?(k5NWbPk$1Vo% zzHP@*QC#T4aV2IolA4B&u;%+fjE(1XAJR&huGQ#^Q^AR^MqAJ0i$qHB3*-n z3`Hu0?!YD=*n=}$D!G;Ms_nSwYt+eW(`w$U^HXBLf73K19pqfX94BO(a9zsj#0DF) z>Yb$^YL0zjGaChs#aZv`|HS-ifAPAtL9Y=Tj}QU7ra85v$|E9%d&S69SkPqLsP}nA zecHiJ8Rjm91a>g7>1lg%go{9=uk9tttSERSsZ*0!O+!YG_-B5C;xa`fs8HyPhe28* zOQBqYd<}8Ri&LgTw&Gz3D5FUA_R_veyPGyw*ZyPxGvx24&3c<1Y(tRrtCuS)ppjw| zW0}>$s9P%3oJ_Sc?ASG{ejgTN(DFZAjPgm{%%l++WvoR(B2%NvT6RZN4|;(9!x zXo_wMWok!;K+CGjt@mU#IJP`K{x36!h^H8JvN7e>w$o|RENz~vX1{r#!^J_;>?u0# zNUbt`loKpuX@0Sk`tbOWO+F2SZ&tF>G?wk!!09cHY r4jUQcac5b6czvvYxxY`ie{%BLK8mx+L_h5plL4FApr0$^8x8pfaBt!i literal 0 HcmV?d00001 From 53dc81fdc05bb528406419d298bc4c3852fec6f4 Mon Sep 17 00:00:00 2001 From: TRsky <625310581@qq.com> Date: Sun, 17 Dec 2017 22:34:09 +0800 Subject: [PATCH 6/9] translated by HardworkFish --- ...9 INTRODUCING DOCKER SECRETS MANAGEMENT.md | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 translated/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md diff --git a/translated/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md b/translated/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md new file mode 100644 index 0000000000..7b6161a475 --- /dev/null +++ b/translated/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md @@ -0,0 +1,111 @@ + +Dockers Secrets 管理介绍 +========================= + +容器正在改变我们对应用程序和基础设施的看法。无论容器内的代码量是大还是小,容器架构都会引起代码如何与硬件相互作用方式的改变 —— 它从根本上将其从基础设施中抽象出来。对于容器安全来说,在 Docker 中,容器的安全性有三个关键组成部分,他们相互作用构成本质上更安全的应用程序。 + + ![Docker Security](https://i2.wp.com/blog.docker.com/wp-content/uploads/e12387a1-ab21-4942-8760-5b1677bc656d-1.jpg?w=1140&ssl=1) + +构建更安全的应用程序的一个关键因素是与其他应用程序和系统进行安全通信,这通常需要证书、tokens、密码和其他类型的验证信息凭证 —— 通常称为应用程序 涉密数据。我们很高兴可以推出 Docker 涉密数据,一个容器的原生解决方案,它是加强容器安全的可信赖交付组件,用户可以在容器平台上直接集成涉密数据(secret) 分发功能。 + +有了容器,现在应用程序在多环境下是动态的、可移植的。这使得现存的涉密数据(secret) 分发的解决方案略显不足,因为它们都是针对静态环境。不幸的是,这导致了应用程序涉密数据(secrets)应用不善管理的增加,使得不安全的本地解决方案变得十分普遍,比如像 GitHub 嵌入涉密数据(secrets)到版本控制系统,或者在这之后考虑了其他同样不好的解决方案。 + +### Docker 涉密数据(Secrets) 管理介绍 + +根本上我们认为,如果有一个标准的接口来访问涉密数据,应用程序就更安全了。任何好的解决方案也必须遵循安全性实践,例如在传输的过程中,对涉密数据进行加密;在空闲的时候也对涉密数据 进行加密;防止涉密数据在应用最终使用时被无意泄露;并严格遵守最低权限原则,即应用程序只能访问所需的涉密数据,不能多也不能不少。 + +通过将涉密数据整合到 docker 的业务流程,我们能够在遵循这些确切的原则下为涉密数据的管理问题提供一种解决方案。 + +下图提供了一个高层次视图,并展示了 Docker swarm mode 体系架构是如何将一种新类型的对象 —— 一个涉密数据对象,安全地传递给我们的容器。 + + ![Docker Secrets Management](https://i0.wp.com/blog.docker.com/wp-content/uploads/b69d2410-9e25-44d8-aa2d-f67b795ff5e3.jpg?w=1140&ssl=1) + +在 Docker 中,一个涉密数据是任意的数据块,比如密码、SSH 密钥、TLS 凭证,或者任何其他本质上敏感的数据。当你将一个 涉密数据 加入集群(通过执行 `docker secret create` )时,利用在引导新集群时自动创建的内置证书颁发机构,Docker 通过相互认证的 TLS 连接将密钥发送给集群管理器。 + +``` +$ echo "This is a secret" | docker secret create my_secret_data - +``` + +一旦,涉密数据到达一个管理节点,它将被保存到内部的 Raft 存储区中,该存储区使用 NACL 开源加密库中的Salsa20Poly1305加密算生成的256位密钥加密。以确保没有任何数据被永久写入未加密的磁盘。向内部存储写入涉密数据,给予了涉密数据跟其他集群数据一样的高可用性。 + +当集群管理器启动的时,包含 涉密数据 的被加密过的 Raft 日志通过每一个节点唯一的数据密钥进行解密。此密钥以及用于与集群其余部分通信的节点的 TLS 证书可以使用一个集群范围的加密密钥进行加密。该密钥称为“解锁密钥”,也使用 Raft 进行传播,将且会在管理器启动的时候被使用。 + +当授予新创建或运行的服务权限访问某个涉密数据时,其中一个管理器节点(只有管理人员可以访问被存储的所有涉密数据),将已建立的 TLS 连接分发给正在运行特定服务的节点。这意味着节点自己不能请求涉密数据,并且只有在管理员提供给他们的时候才能访问这些涉密数据 —— 严格地控制请求涉密数据的服务。 + +``` +$ docker service  create --name="redis" --secret="my_secret_data" redis:alpine +``` + +未加密的涉密数据被挂载到一个容器,该容器位于 `/run/secrets/` 的内存文件系统中。 + +``` +$ docker exec $(docker ps --filter name=redis -q) ls -l /run/secrets +total 4 +-r--r--r--    1 root     root            17 Dec 13 22:48 my_secret_data +``` + +如果一个服务被删除或者被重新安排在其他地方,集群管理器将立即通知所有不再需要访问该 涉密数据的节点,这些节点将不再有权访问该应用程序的 涉密数据。 + +``` +$ docker service update --secret-rm="my_secret_data" redis + +$ docker exec -it $(docker ps --filter name=redis -q) cat /run/secrets/my_secret_data + +cat: can't open '/run/secrets/my_secret_data': No such file or directory +``` + +查看 Docker secret 文档以获取更多信息和示例,了解如何创建和管理您的涉密数据。同时,特别推荐 Docker 安全合作团 Laurens Van Houtven (https://www.lvh.io/) 和使这一特性成为现实的团队。 + +[Get safer apps for dev and ops w/ new #Docker secrets management][5] + +[CLICK TO TWEET][6] + +### +![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) + +### 通过 Docker 更安全地使用应用程序 + +Docker 涉密数据旨在让开发人员和IT运营团队可以轻松使用,以用于构建和运行更安全的应用程序。它是是首个被设计为既能保持涉密数据安全又能仅在当被需要涉密数据操作的确切容器需要的使用的容器结构。从使用Docker Compose定义应用程序和涉密数据,到 IT 管理人员直接在 Docker Datacenter 中部署 Compose 文件、涉密数据(涉密数据),networks 和卷 volumes 都将加密、安全地跟应用程序一起传输。 + +更多相关学习资源: + +* [1.13 Docker 数据中心具有 Secrets, 安全扫描、容量缓存等新特性][7] + +* [下载 Docker ][8] 且开始学习 + +* [在 Docker 数据中心尝试使用 secrets][9] + +* [阅读文档][10] + +* 参与 [即将进行的在线研讨会][11] + +-------------------------------------------------------------------------------- + +via: https://blog.docker.com/2017/02/docker-secrets-management/ + +作者:[ Ying Li][a] +译者:[HardworkFish](https://github.com/HardworkFish) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://blog.docker.com/author/yingli/ +[1]:http://www.linkedin.com/shareArticle?mini=true&url=http://dockr.ly/2k6gnOB&title=Introducing%20Docker%20Secrets%20Management&summary=Containers%20are%20changing%20how%20we%20view%20apps%20and%20infrastructure.%20Whether%20the%20code%20inside%20containers%20is%20big%20or%20small,%20container%20architecture%20introduces%20a%20change%20to%20how%20that%20code%20behaves%20with%20hardware%20-%20it%20fundamentally%20abstracts%20it%20from%20the%20infrastructure.%20Docker%20believes%20that%20there%20are%20three%20key%20components%20to%20container%20security%20and%20... +[2]:http://www.reddit.com/submit?url=http://dockr.ly/2k6gnOB&title=Introducing%20Docker%20Secrets%20Management +[3]:https://plus.google.com/share?url=http://dockr.ly/2k6gnOB +[4]:http://news.ycombinator.com/submitlink?u=http://dockr.ly/2k6gnOB&t=Introducing%20Docker%20Secrets%20Management +[5]:https://twitter.com/share?text=Get+safer+apps+for+dev+and+ops+w%2F+new+%23Docker+secrets+management+&via=docker&related=docker&url=http://dockr.ly/2k6gnOB +[6]:https://twitter.com/share?text=Get+safer+apps+for+dev+and+ops+w%2F+new+%23Docker+secrets+management+&via=docker&related=docker&url=http://dockr.ly/2k6gnOB +[7]:http://dockr.ly/AppSecurity +[8]:https://www.docker.com/getdocker +[9]:http://www.docker.com/trial +[10]:https://docs.docker.com/engine/swarm/secrets/ +[11]:http://www.docker.com/webinars +[12]:https://blog.docker.com/author/yingli/ +[13]:https://blog.docker.com/tag/container-security/ +[14]:https://blog.docker.com/tag/docker-security/ +[15]:https://blog.docker.com/tag/secrets-management/ +[16]:https://blog.docker.com/tag/security/ +[17]:https://docs.docker.com/engine/swarm/how-swarm-mode-works/pki/ +[18]:https://docs.docker.com/engine/swarm/secrets/ +[19]:https://lvh.io%29/ From 2406e2f88fb342f9945deba47f74b8a0a1891c3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=91=E9=AD=85=E9=AD=8D=E9=AD=89?= <625310581@qq.com> Date: Sun, 17 Dec 2017 22:36:09 +0800 Subject: [PATCH 7/9] some errors --- ...G DOCKER SECRETS MANAGEMENT.md - 快捷方式.lnk | Bin 1168 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 translated/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md - 快捷方式.lnk diff --git a/translated/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md - 快捷方式.lnk b/translated/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md - 快捷方式.lnk deleted file mode 100644 index e9452e58c511f2eb35dc8fba68b2415c784c43ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1168 zcmcIjPiWI%6#r!owxWj)>TohK$^=D>X)mJ{VI_%OmnN-EszY;Vmj-le*U@xrg6y(` zOcXW{2Fh^$89RuAhn+-G@GQbS2!hBC3L*-M!VZG(OS*OwVJGwPy?@`!@4fuKmlOal z)It(??n#`wg?8{{caNw6uCmJI&Yr#(pIGJA=Y0L(fS<_usv)B-A?(k5NWbPk$1Vo% zzHP@*QC#T4aV2IolA4B&u;%+fjE(1XAJR&huGQ#^Q^AR^MqAJ0i$qHB3*-n z3`Hu0?!YD=*n=}$D!G;Ms_nSwYt+eW(`w$U^HXBLf73K19pqfX94BO(a9zsj#0DF) z>Yb$^YL0zjGaChs#aZv`|HS-ifAPAtL9Y=Tj}QU7ra85v$|E9%d&S69SkPqLsP}nA zecHiJ8Rjm91a>g7>1lg%go{9=uk9tttSERSsZ*0!O+!YG_-B5C;xa`fs8HyPhe28* zOQBqYd<}8Ri&LgTw&Gz3D5FUA_R_veyPGyw*ZyPxGvx24&3c<1Y(tRrtCuS)ppjw| zW0}>$s9P%3oJ_Sc?ASG{ejgTN(DFZAjPgm{%%l++WvoR(B2%NvT6RZN4|;(9!x zXo_wMWok!;K+CGjt@mU#IJP`K{x36!h^H8JvN7e>w$o|RENz~vX1{r#!^J_;>?u0# zNUbt`loKpuX@0Sk`tbOWO+F2SZ&tF>G?wk!!09cHY r4jUQcac5b6czvvYxxY`ie{%BLK8mx+L_h5plL4FApr0$^8x8pfaBt!i From b7155bb70230b21c28c0b29f70cd26897bb6570e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=91=E9=AD=85=E9=AD=8D=E9=AD=89?= <625310581@qq.com> Date: Sun, 17 Dec 2017 22:37:41 +0800 Subject: [PATCH 8/9] complete the translation --- ...9 INTRODUCING DOCKER SECRETS MANAGEMENT.md | 111 ------------------ 1 file changed, 111 deletions(-) delete mode 100644 sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md diff --git a/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md b/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md deleted file mode 100644 index 7b6161a475..0000000000 --- a/sources/tech/20170209 INTRODUCING DOCKER SECRETS MANAGEMENT.md +++ /dev/null @@ -1,111 +0,0 @@ - -Dockers Secrets 管理介绍 -========================= - -容器正在改变我们对应用程序和基础设施的看法。无论容器内的代码量是大还是小,容器架构都会引起代码如何与硬件相互作用方式的改变 —— 它从根本上将其从基础设施中抽象出来。对于容器安全来说,在 Docker 中,容器的安全性有三个关键组成部分,他们相互作用构成本质上更安全的应用程序。 - - ![Docker Security](https://i2.wp.com/blog.docker.com/wp-content/uploads/e12387a1-ab21-4942-8760-5b1677bc656d-1.jpg?w=1140&ssl=1) - -构建更安全的应用程序的一个关键因素是与其他应用程序和系统进行安全通信,这通常需要证书、tokens、密码和其他类型的验证信息凭证 —— 通常称为应用程序 涉密数据。我们很高兴可以推出 Docker 涉密数据,一个容器的原生解决方案,它是加强容器安全的可信赖交付组件,用户可以在容器平台上直接集成涉密数据(secret) 分发功能。 - -有了容器,现在应用程序在多环境下是动态的、可移植的。这使得现存的涉密数据(secret) 分发的解决方案略显不足,因为它们都是针对静态环境。不幸的是,这导致了应用程序涉密数据(secrets)应用不善管理的增加,使得不安全的本地解决方案变得十分普遍,比如像 GitHub 嵌入涉密数据(secrets)到版本控制系统,或者在这之后考虑了其他同样不好的解决方案。 - -### Docker 涉密数据(Secrets) 管理介绍 - -根本上我们认为,如果有一个标准的接口来访问涉密数据,应用程序就更安全了。任何好的解决方案也必须遵循安全性实践,例如在传输的过程中,对涉密数据进行加密;在空闲的时候也对涉密数据 进行加密;防止涉密数据在应用最终使用时被无意泄露;并严格遵守最低权限原则,即应用程序只能访问所需的涉密数据,不能多也不能不少。 - -通过将涉密数据整合到 docker 的业务流程,我们能够在遵循这些确切的原则下为涉密数据的管理问题提供一种解决方案。 - -下图提供了一个高层次视图,并展示了 Docker swarm mode 体系架构是如何将一种新类型的对象 —— 一个涉密数据对象,安全地传递给我们的容器。 - - ![Docker Secrets Management](https://i0.wp.com/blog.docker.com/wp-content/uploads/b69d2410-9e25-44d8-aa2d-f67b795ff5e3.jpg?w=1140&ssl=1) - -在 Docker 中,一个涉密数据是任意的数据块,比如密码、SSH 密钥、TLS 凭证,或者任何其他本质上敏感的数据。当你将一个 涉密数据 加入集群(通过执行 `docker secret create` )时,利用在引导新集群时自动创建的内置证书颁发机构,Docker 通过相互认证的 TLS 连接将密钥发送给集群管理器。 - -``` -$ echo "This is a secret" | docker secret create my_secret_data - -``` - -一旦,涉密数据到达一个管理节点,它将被保存到内部的 Raft 存储区中,该存储区使用 NACL 开源加密库中的Salsa20Poly1305加密算生成的256位密钥加密。以确保没有任何数据被永久写入未加密的磁盘。向内部存储写入涉密数据,给予了涉密数据跟其他集群数据一样的高可用性。 - -当集群管理器启动的时,包含 涉密数据 的被加密过的 Raft 日志通过每一个节点唯一的数据密钥进行解密。此密钥以及用于与集群其余部分通信的节点的 TLS 证书可以使用一个集群范围的加密密钥进行加密。该密钥称为“解锁密钥”,也使用 Raft 进行传播,将且会在管理器启动的时候被使用。 - -当授予新创建或运行的服务权限访问某个涉密数据时,其中一个管理器节点(只有管理人员可以访问被存储的所有涉密数据),将已建立的 TLS 连接分发给正在运行特定服务的节点。这意味着节点自己不能请求涉密数据,并且只有在管理员提供给他们的时候才能访问这些涉密数据 —— 严格地控制请求涉密数据的服务。 - -``` -$ docker service  create --name="redis" --secret="my_secret_data" redis:alpine -``` - -未加密的涉密数据被挂载到一个容器,该容器位于 `/run/secrets/` 的内存文件系统中。 - -``` -$ docker exec $(docker ps --filter name=redis -q) ls -l /run/secrets -total 4 --r--r--r--    1 root     root            17 Dec 13 22:48 my_secret_data -``` - -如果一个服务被删除或者被重新安排在其他地方,集群管理器将立即通知所有不再需要访问该 涉密数据的节点,这些节点将不再有权访问该应用程序的 涉密数据。 - -``` -$ docker service update --secret-rm="my_secret_data" redis - -$ docker exec -it $(docker ps --filter name=redis -q) cat /run/secrets/my_secret_data - -cat: can't open '/run/secrets/my_secret_data': No such file or directory -``` - -查看 Docker secret 文档以获取更多信息和示例,了解如何创建和管理您的涉密数据。同时,特别推荐 Docker 安全合作团 Laurens Van Houtven (https://www.lvh.io/) 和使这一特性成为现实的团队。 - -[Get safer apps for dev and ops w/ new #Docker secrets management][5] - -[CLICK TO TWEET][6] - -### -![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) - -### 通过 Docker 更安全地使用应用程序 - -Docker 涉密数据旨在让开发人员和IT运营团队可以轻松使用,以用于构建和运行更安全的应用程序。它是是首个被设计为既能保持涉密数据安全又能仅在当被需要涉密数据操作的确切容器需要的使用的容器结构。从使用Docker Compose定义应用程序和涉密数据,到 IT 管理人员直接在 Docker Datacenter 中部署 Compose 文件、涉密数据(涉密数据),networks 和卷 volumes 都将加密、安全地跟应用程序一起传输。 - -更多相关学习资源: - -* [1.13 Docker 数据中心具有 Secrets, 安全扫描、容量缓存等新特性][7] - -* [下载 Docker ][8] 且开始学习 - -* [在 Docker 数据中心尝试使用 secrets][9] - -* [阅读文档][10] - -* 参与 [即将进行的在线研讨会][11] - --------------------------------------------------------------------------------- - -via: https://blog.docker.com/2017/02/docker-secrets-management/ - -作者:[ Ying Li][a] -译者:[HardworkFish](https://github.com/HardworkFish) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://blog.docker.com/author/yingli/ -[1]:http://www.linkedin.com/shareArticle?mini=true&url=http://dockr.ly/2k6gnOB&title=Introducing%20Docker%20Secrets%20Management&summary=Containers%20are%20changing%20how%20we%20view%20apps%20and%20infrastructure.%20Whether%20the%20code%20inside%20containers%20is%20big%20or%20small,%20container%20architecture%20introduces%20a%20change%20to%20how%20that%20code%20behaves%20with%20hardware%20-%20it%20fundamentally%20abstracts%20it%20from%20the%20infrastructure.%20Docker%20believes%20that%20there%20are%20three%20key%20components%20to%20container%20security%20and%20... -[2]:http://www.reddit.com/submit?url=http://dockr.ly/2k6gnOB&title=Introducing%20Docker%20Secrets%20Management -[3]:https://plus.google.com/share?url=http://dockr.ly/2k6gnOB -[4]:http://news.ycombinator.com/submitlink?u=http://dockr.ly/2k6gnOB&t=Introducing%20Docker%20Secrets%20Management -[5]:https://twitter.com/share?text=Get+safer+apps+for+dev+and+ops+w%2F+new+%23Docker+secrets+management+&via=docker&related=docker&url=http://dockr.ly/2k6gnOB -[6]:https://twitter.com/share?text=Get+safer+apps+for+dev+and+ops+w%2F+new+%23Docker+secrets+management+&via=docker&related=docker&url=http://dockr.ly/2k6gnOB -[7]:http://dockr.ly/AppSecurity -[8]:https://www.docker.com/getdocker -[9]:http://www.docker.com/trial -[10]:https://docs.docker.com/engine/swarm/secrets/ -[11]:http://www.docker.com/webinars -[12]:https://blog.docker.com/author/yingli/ -[13]:https://blog.docker.com/tag/container-security/ -[14]:https://blog.docker.com/tag/docker-security/ -[15]:https://blog.docker.com/tag/secrets-management/ -[16]:https://blog.docker.com/tag/security/ -[17]:https://docs.docker.com/engine/swarm/how-swarm-mode-works/pki/ -[18]:https://docs.docker.com/engine/swarm/secrets/ -[19]:https://lvh.io%29/ From 8c98845be6c2158fa02b1227722d91e37ebed909 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=91=E9=AD=85=E9=AD=8D=E9=AD=89?= <625310581@qq.com> Date: Sun, 17 Dec 2017 22:49:19 +0800 Subject: [PATCH 9/9] apply for translation --- sources/tech/20171215 Linux Vs Unix.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20171215 Linux Vs Unix.md b/sources/tech/20171215 Linux Vs Unix.md index 9b5cd0b104..40c411051b 100644 --- a/sources/tech/20171215 Linux Vs Unix.md +++ b/sources/tech/20171215 Linux Vs Unix.md @@ -1,4 +1,6 @@ + translating by HardworkFish + [![Linux vs. Unix](http://www.linuxandubuntu.com/uploads/2/1/1/5/21152474/unix-vs-linux_orig.jpg)][1] ​In computer time, a substantial part of the population has a misconception that the **Unix** and **Linux** operating systems are one and the same. However, the opposite is true. Let's look at it from a closer look.