JFrog ArtifactoryとXrayの新機能について
要約
セルフホステッド版のDockerのレート制限、違反の抑止、新しいパッケージタイプのサポートなどの最新情報をご紹介します。
2020年は間違いなく最近の歴史の中で誰にとっても最も困難な年の一つでしたが、特にDevOpsの世界の人々にとってはそうでした。JFrogは同じペースで開発と革新を続け、お客様にさらに優れたエンド・ツー・エンドのDevOps体験を提供し、お客様がオンタイムのリリースを維持できるように努めてきました。
JFrog Platformに導入された新機能を詳しくご紹介します。
セルフホスティッド版のユーザのDockerレート制限
ご存知のように、Docker社はDocker Hubから取得されるコンテナイメージに対して、消費量に応じた制限を発表しました。具体的には匿名のフリーユーザは100回/6時間、認証されたフリーユーザは200回/6時間に制限されます。
JFrogとDockerのパートナーシップにより、無料サブスクリプション(AWS、GCP、Azureで利用可能)を利用するユーザーを含む、JFrog DevOps PlatformのクラウドユーザーはDocker Hubのイメージ取得制限はありません。
JFrog ArtifactoryでDocker Registry機能はDocker社が発表した最新のレート制限の変更に対応するため、以下の機能を最適化しています:
- HEADリクエストを使用
- 新しいデフォルトの検索用キャッシュ期間
- 強化されたログとメッセージ
- ダイジェストヘッダー(Docker Content Digest)を使用
ライセンス違反や脆弱性への対応
JFrog Xrayレポートはオープンソースパッケージ、ビルド、アーティファクトのXrayスキャンの結果を優先順位付けし、対策を講じることができます。各レポートは特定の時点でのOSSリスクのスナップショットを提供し、視覚的に分かりやすい方法で情報を表示します。
レポートの範囲は脆弱性のあるコンポーネント、影響を受けるアーティファクト、スキャン日、CVE ID、CVSS深刻度スコアでフィルタリングできます。また、修正を目的とし、「すべての脆弱性」、「修正プログラムがあるもの」、「修正プログラムがないもの」を表示するようにレポートすることもできます。
JFrog Xrayレポート
レポートの種類
レポートは以下の通りです:
- 脆弱性レポートはアーティファクト、ビルド、ソフトウェアリリース(リリースバンドル)に含まれる脆弱性に関する情報、脆弱性のあるコンポーネント、CVEレコード、CVSSスコア、深刻度などの基準を提供します。
- ライセンス・デュー・ディリジェンス・レポートは全てのコンポーネントとアーティファクトに関連するソフトウェア・ライセンスを提供し、使用しているコンポーネントとアーティファクトが企業のライセンス・ガイドラインに準拠しているかどうかを確認することができます。各コンポーネントに関連するすべてのライセンスタイプと不明なライセンスや認識できないライセンスが一覧表示されます。
- 違反レポートでは選択したスコープで見つかった各コンポーネントのセキュリティとライセンスの違反に関する情報を提供します。違反の種類、影響を受けるコンポーネント、アーティファクト、深刻度などが含まれます。また、そのスコープは高度なフィルターで定義されます。
Xrayレポートの特徴の一つに、脆弱なコンポーネントのインパクトパスがあります。コンポーネントは1つのビルドイメージ内の複数の場所に現れたり、複数のビルド内に現れたりします。Xrayは脆弱性のあるコンポーネントがソフトウェアに影響を与えるすべての場所を表示します。
脆弱性レポート例
レポートのパーミッション管理
この新機能をサポートするために、JFrog Platformに新しいパーミッションロールが追加されました。このロールはレポートの作成、編集、共有できる権限設定を可能にし、個々のユーザまたはグループレベルで割り当てることができます。
セキュリティ違反抑止の管理
JFrog Xray Ignore Ruleは不要な違反ノイズをフィルタリングするためにセキュリティ違反ルールをホワイトリスト、無視、承認することができます。ルールは以下のような理由で異なるチームやユーザーが無視することができます:
- すでに脆弱性を認識しているが、安全性を保つことができる場合
- お使いの環境が違反の条件を満たしていない場合
- 脆弱性が致命的でなく、後で処理すれば問題ない場合
- 重要でない違反によりビルドやダウンロードが失敗してしまう場合
JFrog XrayのIgnore Ruleの設定
Ignore Ruleの粒度
Ignore Rule機能は幅広い柔軟性と粒度の高さを備えており、脆弱性/ライセンス、コンポーネント、アーティファクト、Watchに基づいて違反を無視することができます。そのため、無視したい内容を非常に細かく設定することができます。例えば特定のコンポーネント、特定のライセンス、特定のコンポーネントのバージョン番号などを設定することができます。
時間による無視
Ignore Ruleは一定期間実行されるように設定することができます。例えば開発を強化している間、3週間は特定の違反を無視し、その後は再び検出されるように設定することができます。
許容範囲のあるPolicyを設定
つまり、複数のライセンスを持つコンポーネントがポリシールールに準拠していないライセンスを1つ持っていても、他に少なくとも1つの許可されたライセンスタイプを持っていれば、違反なくスキャンを通過することができます。
Alpineパッケージのサポート
ArtifactoryがAlpine Linuxパッケージをネイティブにサポートするようになり、Alpine Linux(*.apk)パッケージのデプロイとリゾリューションのプロセスを完全にコントロールできるようになりました。
OCIイメージのサポート
サポートしているクライアント例 – Podman, Oras, Container D, Docker。
RubyGems Bundlerのサポート
RubyGems Bundlerクライアント(”bundle install”)のサポートを追加しました。これを可能にするためにローカル、リモート、バーチャルの3種類のリポジトリすべてに新しいコンパクトインデックスのサポートを追加しました。
Helm V3のサポート
パブリック・クラウド上でクラウド・ネイティブ・アプリケーションを開発していても、自社でホストしているDevOpsインフラストラクチャを運用していても、JFrog Platformの最近の機能強化により、新しいパッケージ技術を活用し、Docker Hubを使用する際のリスクとコストを最小限に抑え、さらにJFrog Xrayで脆弱性やライセンス違反を検出・管理することにより、ソフトウェア・リリースを安全に保つことができます。