2017-04-11 8 views
1

バグ報告やリクエストを経由してアクセスを制限: 私は、組織内のプライベートドッキングウィンドウのレジストリを実装しようと私のレジストリ内のマルチテナンシーを必要としています。グループAはコンテナにアクセスできますが、グループBはアクセスできません。ドキュメントは、私がコンテンツセレクタを経由してこれを行うことができますことを意味しネクサスドッカーと支援のためのコンテンツセレクタ

はちょっとビューのように、クエリの結果へのアクセスを許可するために使用することができます。私はいくつかの成功を収めましたが、バグのように見えます。

  • 私は:5000で作成したレジストリを持っています。
  • 匿名アクセスがオフになっています。
  • 私はテストユーザーを作成します。
  • 私は名前に「スパーク」でコンテナへのアクセスを制限すべきコンテンツセレクタを作成します。 path =~ ".*spark.*"

予想される結果がプレビュー出力されます。 今私はdocker loginを試してみます。 403禁止されている。

テストユーザーにnx-repository-view-docker-*-readロールを付与すると、テストユーザーはdocker loginをレジストリに追加し、すべてのコンテナを参照できます。 (おそらく意図的) コンテンツセレクタはアクセスを制限していません。

docker loginの成功後にnx-repository-view-docker-*-readロールを削除し、コンテンツセレクタロールを残した場合、コンテンツビューは意図したとおりに機能します。盗聴/不足しているかもしれないものに関しては

そうでもない実行可能な解決策が、非常に興味深いです。

アイデア?私は単にそれを間違っているのだろうか? 公式の答えは、別々のポートに複数のレジストリを作成し、そのように許可することであることを示す1つの投稿が見つかりました。 実行可能ですが、理想的ではありません。

も参照してください: Create Content Selector and Privileges via script for separating a docker registry into project owned namespaces

答えて

5

へようこそSO!

短い答えは:

format == "docker" && (path == "/v2/" || path =~ ".*spark.*")を試してみてください。

説明:

あなたは問題があるdocker login気づいたよう。コンテンツセレクタでpath == "/v2/"が指定されていない場合、このコマンドは機能しません。これはどんなコンテナにもレジストリ自体にアクセスを許可しないので、それを追加するとあなたはログインすることができます。それ以外の場合、コンテンツセレクタは期待どおりに動作するはずです。それでおしまい!

は、残念ながら、これはこれまでの資料に記載されていません。そこ@jonas

+0

こんにちは、多分あなたは私たちのためにブログ記事を書きたいのですが? – DarthHater

+0

こんにちは@DarthHater、申し訳ありませんが、私はブログを持っていません – Jonas

+0

しかし、私たちは! :)それは私の質問だった、あなたが私たちのために投稿を書いてほしいのなら@Jonas – DarthHater