Bug报告或请求帮助:我试图在我的组织中实现一个私有的码头注册中心,并且需要在我的注册中心内进行多租户操作。A组可以使用他们的容器,但B组没有。
文档意味着我可以通过内容选择器来实现这一点,可以用来授予对查询结果的访问权限,就像视图一样。我已经取得了一些成功,但遇到了一个看似错误的东西。
:5000上创建了一个注册表。path =~ ".*spark.*"查询的预览输出预期结果。现在我试试docker login。我得到了403块的紫禁药。
如果我授予我的测试用户nx-repository-view-docker-*-read角色,测试用户可以将docker login授予注册表并查看所有容器。(可能是有意的)但是内容选择器并没有限制访问。
但是,如果我在成功的nx-repository-view-docker-*-read之后删除了docker login角色,并保留了内容选择器角色,那么content视图将按预期工作。
这并不是一个可行的解决方案,但就可能缺少的/被窃听的内容而言,却非常有趣。
有什么想法吗?我是不是做错了?我发现有一篇文章指出,官方的答案是在不同的端口上创建多个注册中心,并以这种方式允许它们。可行,但不理想。
发布于 2017-04-12 07:17:35
欢迎来到这里!
简短回答:
试试format == "docker" && ( path == "/v2/" || path =~ ".*spark.*" )。
解释:
正如您注意到的,问题在于docker login。如果内容选择器中没有指定path == "/v2/",则此命令无法工作。这并不授予您对任何容器的访问权限,而是授予对注册表本身的访问权限,因此添加它将允许您登录。除此之外,您的内容选择器应该按照预期工作。就这样!
不幸的是,到目前为止,这还没有包括在文档中。
https://stackoverflow.com/questions/43354352
复制相似问题