はじめに
Rancherに登録さえしていれば、どのレジストリからもデフォルトでイメージはpull可能となっています。
しかし、セキュリティの観点から「このレジストリからしかpullできないようにしておきたい」という要望はきっと出てくると思います。
そういうときのために、Rancherにはレジストリのホワイトリストを設定する機能があります。
今回はその機能についてご紹介します。
quay.ioをレジストリに追加
まず、quay.ioをRancherのレジストリに追加しましょう。
今回はあらかじめquay.ioのアカウントは作成してあります。Infrastructure > Registries
からレジストリを追加しましょう。
![](https://capsulecloud.io/wp-content/uploads/2017/07/スクリーンショット_2017-07-11_23_15_53.png)
Add Registry
して、Quay.ioを選択してからログイン情報を入力します。
![](https://capsulecloud.io/wp-content/uploads/2017/07/スクリーンショット_2017-07-11_23_16_18.png)
正常にいけば、以下のようにQuayが増えているのが確認できます。
![](https://capsulecloud.io/wp-content/uploads/2017/07/スクリーンショット_2017-07-11_23_16_25.png)
DockerHubとQuayからpull
Quayをレジストリに追加できたので、お試しでイメージをpullしてみましょう。
DockerHubからはnginx
イメージを、Quayからはあらかじめpushしておいたquay.io/kfukuyama/myfirstrepo
をそれぞれRancherのサービスとして追加してみます。
![](https://capsulecloud.io/wp-content/uploads/2017/07/スクリーンショット_2017-07-11_23_19_30.png)
![](https://capsulecloud.io/wp-content/uploads/2017/07/スクリーンショット_2017-07-11_23_18_28.png)
特に問題なく以下のようにpullも成功し、サービスも正常な状態となるはずです。
![](https://capsulecloud.io/wp-content/uploads/2017/07/スクリーンショット_2017-07-11_23_33_00.png)
レジストリのホワイトリストを設定
それでは、ここでQuayからのイメージのみpullできるようレジストリのホワイトリストを設定してみましょう。Admin > Settings
に移動します。
![](https://capsulecloud.io/wp-content/uploads/2017/07/スクリーンショット_2017-07-11_23_33_11.png)
Advanced Settingsに何やらちょっと恐い警告が書かれていますが、それをクリックして設定一覧を表示します。
![](https://capsulecloud.io/wp-content/uploads/2017/07/スクリーンショット_2017-07-11_23_33_18.png)
そこでregistry.whitelist
を探します。
![](https://capsulecloud.io/wp-content/uploads/2017/07/スクリーンショット_2017-07-11_23_33_35.png)
編集ボタンをクリックし、ホワイトリストに設定するレジストリの項目にquay.io
と入力します。
![](https://capsulecloud.io/wp-content/uploads/2017/07/スクリーンショット_2017-07-11_23_34_01.png)
この状態で先程DockerHubから取得したnginx
をUpgradeしようとすると、以下のように拒否されるようになります。
![](https://capsulecloud.io/wp-content/uploads/2017/07/スクリーンショット_2017-07-11_23_34_48.png)
「対象のレジストリがホワイトリストに入っていないのでだめですよ!」ってことですね。
ホワイトリスト機能が適用されているのがわかります。
もちろん、このときQuayから取得したquay.io/kfukuyama/myfirstrepo
イメージは正常にUpgradeできます。
さて、DockerHubからイメージをpullできなくなるのも何かと不便なことが多いので、Quayに加えてDockerHubからもイメージをpullできるようにしましょう。
方法として、カンマ区切りでホワイトリストを追加することができます。
![](https://capsulecloud.io/wp-content/uploads/2017/07/スクリーンショット_2017-07-11_23_57_36.png)
こうすることで、DockerHubから取得しているnginxのイメージも正常にpullできることが確認できます。
![](https://capsulecloud.io/wp-content/uploads/2017/07/スクリーンショット_2017-07-11_23_58_39.png)
おわりに
このようにAdmin側でレジストリのホワイトリストを作ることができます。
セキュリティが気になる方や、レジストリに関してもう一歩コントロールをしておきたい方はぜひ使ってみてください。