问题标签 [notary]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 镜像 docker 内容信任
TL;DR - 我如何运行(可能不安全的)docker 注册表镜像并信任内容?
我有一系列设备在没有互联网访问的封闭网络上运行 docker 容器。我可以临时连接一台以前可以访问网络的笔记本电脑。最终目标是更新每个设备正在运行的容器镜像。
我可以通过以下方式原则上使其工作:
- 从 Internet 注册表(Docker 集线器或私有)拉取到笔记本电脑。
- 在笔记本电脑上运行注册表。
推送到这个注册表
/li>- 断开笔记本电脑与互联网的连接并连接到封闭的网络。
告诉设备做一个
/li>
并使用新图像重新启动他们的容器(我如何做到这一点并不是特别相关,假设我可以laptophostname
与他们交流,其余的由他们完成)。
但真正重要的是我让它与 Docker Content Trust(又名 Notary)一起工作。否则任何人都可以连接到网络并告诉设备开始运行任意代码。
我也可以在笔记本电脑上运行公证服务器,这工作正常,除了当我将更新的图像从本地 docker 推送到笔记本电脑上的注册表时(上面的第 3 步),它要求我提供新的签名密钥,即它正在给容器新的信任信息而不是仅仅复制原始开发者创建的信任。
目前我可以控制用于进行更新的机器(即笔记本电脑),但将来可能不是这样,所以我不想在这上面有任何开发人员密钥。公证人宣传不安全的镜像是一个用例,那么我如何让它与 docker 一起使用?
编辑
这可能相关也可能不相关,但其想法是客户一次购买一个或多个这些设备,并分阶段将它们添加到网络中。我需要一种提供签名软件更新的方法,因此最初计划编写一个应用程序来充当注册表镜像。如果没有内容信任,很容易欺骗设备运行任何图像。
amazon-web-services - 将环境变量添加到 ECS 主机
我正在尝试在托管 ECS 容器的 EC2 实例中设置环境变量。EC2 实例上的 docker 客户端在运行时应该可以读取环境变量。我知道可以像这样添加 userData:
但是由于某种原因,在实例化 ECS 任务时,docker 客户端没有拾取这个 env_var。
知道我该怎么做吗?提前致谢。
docker - Docker Notary 找不到 Yubikey
我正在使用 docker、Notary 0.4.3 和 yubico-piv-tool 1.5.0 运行 Ubuntu 16 LTS piv 工具与 yubokey 一起使用,可以创建证书并将它们导入到 yubikey。Notary 也可以正常工作,但它似乎没有注意到 yubikey。
降级到 yubikey-piv-tools 1.4.0 时,我收到以下恐慌报告:安装 yubico-piv-tool 1.4.0 时,我认为 NOtary 找到了密钥,但因以下报告而恐慌
docker - 无法在 Notary 中签署和推送信任元数据
我正在虚拟机中实现 Notary。为了获得参考,我在主机 A上有一个 docker 注册表,我想在主机 B上部署 Notary Server、Signer 和 CLI,以将图像推送到注册表并从不同的机器对它们进行签名。但是,当我尝试在 Notary 的主机 B 上使用角色目标对图像进行签名时,就会出现问题。出现以下错误消息:
Docker 映像被推送到注册表,但在签名时我收到错误消息,即找不到要签名的“密钥”。但是,如果我看到公证人的密钥,则找不到该密钥以进行签名(如果可用)。然后我不知道为什么会发生这种情况或者我配置错误:
我什至不能在角色下签名:目标或目标/发布
docker - 我们如何为私有注册表(如 nexus)设置 docker notary-server、notary-signer 和 notary-client?
我为公证人设置了以下基础设施:
- 公证服务器
- 公证人
- 使用 docker-compose 的“公证服务器”和“公证签名者”的 mariadb 数据库。
我想使用我的私有 docker 注册表(nexus),它部署在不同的机器上,并带有我已经启动并运行的公证基础设施。
你能告诉我一步一步的过程吗?
我正在扩展我的发现:
我正在尝试使用此链接https://github.com/theupdateframework/notary中提供的说明设置我自己的公证服务
我做了什么:
执行上述步骤后,我在我的 docker 主机上启动并运行了 3 个容器(在本地笔记本电脑上运行 -Ubuntu16.04)
- 公证服务器
- notary_signer
- 玛丽亚数据库:10.1.28
现在,为了将我的本地公证服务与私有注册表关联(作为容器托管在其他机器上)一起使用,我已经完成了以下步骤:
在此之后,我使用以下命令测试了连接并成功。
现在为了签署图像并将其推送到私有注册表,我设置了以下环境变量。
问题:当我发出如下所示的 docker push 命令时
sudo docker push nexus.xyz.com:5000/nginx:latest (我之前做过适当的标记)
它不经过签名,它直接将图像推送到私有注册表
但是当我使用
它签署了图像并推送,但在我使用时不显示任何受信任的内容
问题:我需要做任何其他配置才能使用我自己的公证服务吗?
任何帮助将非常感激。
docker - Docker 信任初始化
当初始化对 docker content trust with notary on tuf 的初始信任时,我了解 TUF、Notary 和 Content Trust 的工作原理。
但我不清楚的是,初始信任是如何设置的。
我怎么知道,第一次拉不是一个妥协的,最初的 root.json 是值得信赖的?
因此,例如,如果我docker pull
启用了内容信任,我只会得到签名的图像。但是我如何验证这张图片是由正确的人签名的?
notary - Docker 信任:如何签署图像而不将其推送到存储库
我们运行私有 docker 注册表,我正在尝试使用公证人添加图像签名。我已经设置了公证人,Docker 客户端可以在图像推送到注册表时对其进行签名。
我的问题是我们没有推送到我们从中提取的相同注册表名称。我们使用 Nexus 来托管我们的 docker 镜像,这是 Nexus 运行私有注册表的方式的产物。
我们推送到docker-registry-publish.example.com并从docker-registry.example.com 拉取
我们无法推送到docker-registry.example.com
我找不到让 docker 或公证人在不先推送图像的情况下签署图像的方法。我想做的是这样的:
没有“ docker sign ”命令,据我所知,docker 签署图像的唯一方法是推送它。' notary sign ' 需要一个文件,我不知道如何为它提供一个 docker 图像。
有没有办法让码头工人或公证人只做签名?
谢谢!
artifactory - Artifactory 默认公证服务器
我正在寻找人工默认公证服务器。Dockerhub 默认公证服务器是托管在云上的 notary.docker.io。Artifactory 是否也支持任何云公证服务器?
docker - 如何使用 Docker Hub 注册表/公证人调试失败的 Docker 映像签名?
从今天开始,由于图像签名失败,我无法将新签名的图像推送到 Docker Hub 私有存储库。我启用了 Docker 内容信任。我不知道我的环境中有任何重大变化可能会影响到这一点,除了几天前例行安装最新的安全更新到 Ubuntu 之外。但是在这些升级之后,签名图像推送确实起作用了。
我的问题是,如何调试与签名相关的问题?谷歌搜索或duckduckgoing似乎没有多少可用的。
我尝试运行公证 CLI,但它似乎并没有为我提供太多帮助。不同命令的各种选项没有很好的记录。
环境:
- 操作系统:Ubuntu 18.04.1 LTS
- Docker 版本 18.06.1-ce,构建 e68fc7a
相关环境变量:
DOCKER_CONTENT_TRUST=1 DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE=[未公开] DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE=[未公开]
失败的命令:
样本输出(从不相关的部分混淆):
当我取消设置 DOCKER_CONTENT_TRUST 时,推送图像没有问题。
docker - 如何验证 docker 映像的签名?
假设一家公司使用其 X509 证书和公共 CA 颁发的相应私钥在其自己的 docker 注册表上推送并签署了一个图像。
在我的计算机上拥有他们的证书副本,我如何验证我从他们的注册表中提取的图像是否真的由他们签名?