昨年11月にサンディエゴで開催されたKubeConで最も生産的な会議の1つは、CNCFプロジェクトNotaryの新しいバージョンに関するコラボレーションを計画するためのDocker、Amazon、Microsoftとの会議でした。 数週間後、シアトルのAmazonオフィスでNotary v2キックオフミーティングを開催しました。
これは業界を超えたコラボレーションであることを強調し、Amazon、Microsoft、Docker、IBM、Google、Red Hat、Sylabs、JFrogから18人が部屋にいました(さらにダイヤルインしました)。 これは、残念ながら直接会うことができなかったVMware Harbor開発者を除く、すべてのコンテナレジストリプロバイダーと開発者を表しています。 残念ながら、みんなの写真を撮るのを忘れてしまいました!
コンセンサスとコミュニティは、Notary v2の目的のために重要です。 しかし、公証人とは何か、そしてそれが何のためにあるのかを知らない人もいるかもしれないので、少し戻ってみましょう。
Notaryプロジェクトはもともと、ニューヨーク大学のジャスティン・カポスと彼のチームによって開発されたパッケージ管理セキュリティのモデルである更新フレームワーク(TUF)に基づくコンテナの一般的な署名インフラストラクチャを提供するために、2015年にDockerで開始されました。 これは、コンテナーへの署名を許可する "docker trust" コマンド セットと、署名を検証するためのDOCKER_CONTENT_TRUST設定をサポートするものです。
2017年、NotaryはTUF仕様とともに CNCF に 寄贈 され、業界標準になりました。Docker Trusted Registry(現在はMirantis製品)、IBMのコンテナレジストリ、Azure Container Registry、そして別のCNCFプロジェクトであるHarborプロジェクトなど、Docker Hubだけでなく他の場所にも出荷され始めました。 TUFはまた、パッケージ管理コミュニティや、自動車のファームウェアを更新するためのフレームワークであるUptaneなどのプロジェクトで、ユースケースを拡大しました。
では、なぜ今バージョン2なのでしょうか。 答えの一部は、2015年以降、コンテナの使用について多くのことを学んだことです。 コンテナ年は犬の年のようなものですか? よくわかりませんが、それ以来多くのことが起こり、コンテナの使用は非常に拡大しました。 私はKubeConの講演で多くの理由を詳しく説明しました。
サプライチェーンのセキュリティ(出荷する予定のものを本番環境に確実に出荷すること)は、ソフトウェアサプライチェーンへの攻撃が近年増加しているため、ますます重要になっています。 署名は、コンテナサプライチェーンで必要とされる検証の重要な部分です。
レジストリへの署名の統合
私たちが行いたい最初の大きな変更は、現在、すべてのレジストリがNotaryをサポートしているわけではないためです。 つまり、レジストリを組み合わせて使用する場合、署名をサポートするものとサポートしないものがあります。 また、レジストリ間で署名を移動することはできません。 これらは両方とも、事実上レジストリサイドカーとしての公証人の設計に関連しています。 Notaryはレジストリと同じ認証を共有しますが、独自のデータベースとAPIを備えた別のサービスとして構築されています。
公証人が設計されたとき、これはそれほど重要ではないように思われました。 しかし現在、多くの人々が、運用クラスターに近いローカル レジストリ、またはコードが実行されているクラウド プロバイダーのローカル レジストリ、または切断されている可能性のあるエッジ ロケーションで複雑なレジストリ構成を使用しているか、使用したいと考えています。 私たちが取り組んでいる解決策は、スタンドアロンのサイドカーサービスではなく、署名が OCIイメージ仕様 に統合され、すべてのレジストリでサポートされることです。 これの詳細はまだ検討中ですが、署名を画像でプッシュおよびプルできるようになるため、移植性がはるかに簡単になります。
ユーザビリティの向上
2番目の大きな変更点は、使いやすさに関するものです。 コンテナーに署名し、署名を確認する現在の方法は、キー管理と同様に複雑です。 Notary v2の目的の1つは、署名を取得し、可能な場合はデフォルトでチェックすることです。 現在の公証人ではこれを止める多くの問題があり、その多くはKubeConの講演で詳しく説明されており、階層と委任の欠如による多数のキーや、Kubernetesなどのさまざまなプラットフォームでの署名チェックのための標準インターフェイスの欠如などがあります。
詳細を知りたい場合は、毎週月曜日の午前10時に会議があります。 太平洋標準時 – 詳細については、 CNCF コミュニティ カレンダー を参照してください。 Slack チャネルは、CNCF Slack では #notary-v2 です。 KubeConアムステルダムでは2つのセッションがあり、1つは概要と現在の状況の紹介と、現在の問題に関する詳細な作業セッションです。 そこでお会いしましょう!