KubeCon + CloudNativeCon North America 2017が近づいてきて楽しみですね。
CloudNativeCon/KubeCon NA 2016まではCNCon + KubeConだったのですが、今年春のKubeCon + CNCon EU 2017から順序が逆転しましたね。そんなわけで、Kubernetes以外のコンテナの様子が気になるわけです。
Kubernetes上で実行するコンテナの脆弱性スキャナとしても利用できるClairについて、質問に答える機会があったので、メモしておきます。
Clair (coreos/clair)
Core OSが開発・公開しているコンテナ(イメージ)の脆弱性静的分析ツールのOSS(Apache 2.0 License)でGitHubレポジトリは https://github.com/coreos/clair です。最新版は2.0.1です。
CoreOS(現Core OS Container Linux)に惚れ込んでいた頃、Docker Meetup Tokyo #6で一緒に登壇していた@spesnovaさんがClairについて話していた記憶があります。
最近だと、行けなかったので、詳細不明だけど、Kubernetes Meetup Tokyo #7の参加者レポートを見る限り@mumoshuさんがメンションされていたようです。
が、情報が少ない。
アーキテクチャ
via https://github.com/coreos/clair/blob/master/Documentation/running-clair.md
一般的にはコンテナレジストリとの連携が一般的でしょう。
でも、コンテナレジストリなんて運用したくないし、Docker Hub、Google Container Registry (GCR)、Amazon EC2 Container Registry (ECR)、Azure Container Registry (ACR)使っててるだけです、って人が大半だと思われる。
CI/CDパイプラインの中でやりたい
そんな意見もあるでしょう。
ローカルにあるこのイメージで確認したいだけなんだ
そんな意見もあるでしょう。
そんなあなたやローカルで実行できるClairクライアントが必要。
(deprecated) coreos/analyze-local-images (deprecated)
CoreOSから2015年11月にcontribとして現れましたが、緩やかなメンテナンスを経て、2017年5月にdeprecatedに。
deprecated tool for interacting with Clair locally
via https://github.com/coreos/analyze-local-images
関連記事
(deprecated) wemanity-belgium/hyperclair (deprecated)
公式ではないが、2016年1月に出てきて、2-3ヶ月アクティブに改善が続けられるも、その後メンテナンスが止まりました。2017年2月にdeprecatedに。
今ではリードにもこう書かれています。
DEPRECATED [mv to https://github.com/jgsqware/clairctl] -> A CLI for using Clair with Registry https://github.com/jgsqware/clairctl
via https://github.com/wemanity-belgium/hyperclair
clairctl (jgsqware/clairctl)
そんなわけで今はclairctl。2016年10月hyperclairから移動される形?で、clairctlが立ち上がる。今に至るまで開発・メンテナンスもされています。
Tracking container vulnerabilities with Clair Control for CoreOS Clair
via https://github.com/jgsqware/clairctl
デモ
デモはhyperclairのままで古い。が、イメージはこんな感じ。
その他Clairの参考情報
CoreOS in CNCon NA 2017
CoreOSはKubeCon + CloudNativeCon North America 2017のスポンサーもしているものの、Tectonic/Quay推しだと想像されるのでなかなかチャンスは少なそうですが、Clairについても聞いてこれたらなと思います。