Rancherでレジストリのホワイトリストを設定する

はじめに

Rancherに登録さえしていればどのレジストリからもデフォルトでイメージはpull可能となっています。セキュリティの観点から「このレジストリからしかpullできないようにしておきたい」という要望はきっと出てくると思います。そういうときのためにRancherにはレジストリのホワイトリストを設定する機能があります。今回はその機能を紹介します。

quay.ioをレジストリに追加

まず、quay.ioをRancherのレジストリに追加しましょう。今回はあらかじめquay.ioのアカウントは作成してあります。Infrastructure > Registries からレジストリを追加しましょう。

Add Registry して、Quay.ioを選択してからログイン情報を入力します。

正常にいけば以下のようにQuayが増えているのが確認できます。

DockerHubとQuayからpull

Quayをレジストリに追加できたので、お試しでイメージをpullしてみましょう。DockerHubからは nginx イメージを、Quayからはあらかじめpushしておいた quay.io/kfukuyama/myfirstrepo をそれぞれRancherのサービスとして追加してみます。

特に問題なく以下のようにpullも成功してサービスも正常な状態となるはずです。

レジストリのホワイトリストを設定

それではここでQuayからのイメージのみpullできるように、レジストリのホワイトリストを設定してみましょう。 Admin > Settings に移動します。

Advanced Settingsに何やらちょっと恐い警告が書かれていますが、それをクリックして設定一覧を表示します。

そこで registry.whitelist を探します。

編集ボタンをクリックして、ホワイトリストに設定するレジストリの項目に quay.io と入力します。

この状態で先程DockerHubから取得した nginx をUpgradeしようとすると、以下のように拒否されるようになります。

「対象のレジストリがホワイトリストに入っていないのでだめですよ!」ってことですね。ホワイトリスト機能が適用されているのがわかります。もちろん、このときQuayから取得した quay.io/kfukuyama/myfirstrepo イメージは正常にUpgradeできます。

さて、DockerHubからイメージをpullできなくなるのも何かと不便になることが多いかと思うので、Quayに加えてDockerHubからもイメージをpullできるようにする方法として、カンマ区切りでホワイトリストを追加することができます。

こうすることでDockerHubから取得しているnginxのイメージも正常にpullできることが確認できます。

おわりに

このようにAdmin側でレジストリのホワイトリストを作ることができます。セキュリティが気になる方や、レジストリに関してもう一歩コントロールをしておきたい方はぜひ使ってみてください。

APN Consulting Partner
スーパーソフトウエアはAWSパートナーネットワーク(APN)のコンサルティングパートナーです。