Top takeaways
今回ご紹介する機能は New Relic の脆弱性管理機能が開放されていることが必須となります。
無償のアカウントや Data Plan をご利用の方は本機能をご利用頂けませんのでご承知ください。
ご利用を希望の方は担当のアカウントチームの担当営業にお問い合わせください。
New Relic の脆弱性管理機能は以下のドキュメントで紹介しております。
https://newrelic.com/platform/vulnerability-management
本記事ではセキュリティスキャナーとして有名なTrivyのコンテナイメージの脆弱性スキャンを実施した結果を New Relic に対して転送する方法をご紹介します。
New Relic の公式ドキュメントにも連携方法を紹介しておりますので以下のドキュメントをベースに手順を紹介致します。
https://docs.newrelic.com/docs/vulnerability-management/integrations/trivy/
STEP1: ライセンスキーの取得
まず New Relic に対してデータを転送するためのライセンスキーの用意をします。
後ほどのステップで利用するものになりますのでその際にこの項目を実施して頂く形でも問題ありません。
こちらにアクセスしていただくことでお持ちの New Relic アカウントの API Key のページへ遷移します。
INGEST Type のキーを選択していただいて値をコピーして控えてください。
STEP2: Trivy のインストール
Trivy のインストールをします。
Mac をお使いの方は brew を使うことで簡単に導入することができますのでそちらでお試しください。
Github Pages にも導入手順が紹介されていますのでそちらを参考に導入を進めてください。
https://aquasecurity.github.io/trivy/v0.44/getting-started/installation/
`trivy --version` で情報が出力されれば成功です。
STEP3: Trivy でコンテナイメージのスキャン
次に Trivy で実際にコンテナのイメージスキャンを実施します。
手元にあるコンテナイメージなど好きなものを使っていただいて問題ありません。
New Relic に転送する際に SARIF フォーマットにしておく必要があるので --format でフォーマットを指定し、 -o を使って結果をファイルに出力します。
例として以下のように Trivy でイメージスキャンを実施します。
STEP4: New Relic へ転送をする
STEP3 で作成したスキャンの結果を New Relic に転送します。
curl コマンドを使用して New Relic の Security API に対して転送を実施します。
ここで STEP1 で取得した API Key を利用しますので取得してない場合はここで STEP1 の手順を実施して API Key を取得しましょう。
リポジトリ名などを指定する箇所がありますが指定した場合、リポジトリ名に対して紐づく脆弱性として New Relic は取り扱うので入れておくとより便利に活用できます。任意ですので入れなくても問題なく利用は可能です。
リクエストが問題なく終われば uuid などが表示されたレスポンスが返ってきます。
実際に New Relic の Vulnerability Management の画面で Trivy のアイコンが表示されているかと思います。
後は同じ様に脆弱性の CVE などを確認して対応などを取り組む形になります。
これで Trivy のデータを New Relic に対して転送する手順は以上となります。
New Relic が提供している他の Vulnerability Management の機能と合わせて利用して頂くことでよりお客様の環境を安心に運用できるようにすることができるかと思います。
また Github Actions などの CI ツールと連携することで CI の中で結果を通知させ即時対応ができるようになるなどの応用も Trivy と連携することで試すことができますので是非お試しください。
Next steps
また New Relic には月間100GBまでの転送量であればほぼ全ての機能を1ユーザーまでであれば無料で利用が可能になっています。今回ご紹介した Trivy の連携のみならず New Relic の基本的な機能について興味がある方は是非サインアップをしてお試しください。
https://newrelic.com/jp/sign-up-japan
The views expressed on this blog are those of the author and do not necessarily reflect the views of New Relic. Any solutions offered by the author are environment-specific and not part of the commercial solutions or support offered by New Relic. Please join us exclusively at the Explorers Hub (discuss.newrelic.com) for questions and support related to this blog post. This blog may contain links to content on third-party sites. By providing such links, New Relic does not adopt, guarantee, approve or endorse the information, views or products available on such sites.