SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2021夏】セッションレポート(AD)

アーティファクトが鍵! ビジネスを安全に進化させるDevSecOps実践――JFrog 横田紋奈氏が解説【デブサミ2021夏】

【A-5】アーティファクトが鍵!ビジネスを安全に進化させるDevSecOps実践

  • このエントリーをはてなブックマークに追加

DevSecOpsを一歩進めることができるバイナリ・リポジトリマネージャー(BRM)

 ここで横田氏は「自分たちで書いて生成したソースコードだけを管理・チェックするのでは足りません。アーティファクトも管理しましょう」とバイナリ・リポジトリマネージャー(以下、BRM)の活用を提案する。BRMとはアーティファクトの保管専用ツールであり、アーティファクトの脆弱性やライセンスのチェックができるSCAツールと組み合わせて使うことができるものだ。

 しかしここで疑問が沸くのではないだろうか。「ソースコードがあればアーティファクトを作れるのだから、わざわざ別に管理する必要はないのでは」と。横田氏はこの疑問に対して「同じソースコードをビルドしても、アーティファクトの中身が同じになるとは限らないため」と説明する。依存解決の際に含まれるOSSのバージョンが変わるかもしれないし、ビルド時のフラグや設定の差異で結果が異なることもありえる。

 さらに、アーティファクトはビルドにより一度作られると、テストやデプロイのさまざまな段階で何度も使い回す。使う度にアーティファクトを刷新していては、「検品済みのものを出荷する」ことができない。せっかくテストやSCAを行っても、それと違うアーティファクトをリリースするのでは効果が弱まる恐れがある。また、ビルドにはそれなりの時間がかかる。それなら本番まで同じものを使うほうが時間を節約できて、流動的な要素を減らすことができて確実だ。

アーティファクトが重要な理由
アーティファクトが重要な理由

 アーティファクトをBRMに保存して管理するとしよう。保存するものは2種類ある。これまで説明したように自分たちのソースコードからビルドして作成したアーティファクトに加えて、Docker Hub、Maven Central、npmなど外部から取得したアーティファクトもある。

 前者についてはこれまで説明したとおり。後者は外から取ってくるわけだが、必要になるたびに取得するのではなく、保存しておけば2回目以降のダウンロード時間を短縮可能だ。何らかの障害で取得できない時に備えておくこともできる。どちらもSCAツールで定期的にセキュリティスキャンを実施し、問題があれば修正するまで使用できないように設定できる。

 このようにBRMはセキュリティの組み込みの他にもビルド時間の短縮や品質の担保に効果的なツールと言えるわけだが、今回のテーマ「DevSecOps」を考えるときにはやはりSCAとの連携が肝となる。CI/CDパイプラインの中でビルド時とリリース時にスキャンを行うことで、開発ライフサイクルにセキュリティが組み込まれることになる。DevSecOpsを1つ実現したと言えるだろう。

実現したいパイプライン
実現したいパイプライン

 横田氏は「SCAツールを導入したら、OSSスキャンは当然実施することとして定着させること」と釘を刺した。「今回は忙しいからスキップ」などとルールが形骸化してしまったら意味がない。またスキャンで問題が発覚したときのフローもあらかじめ決めておくといい。こうしてセキュリティチェックも自動化することにより、人間がより重要な判断に時間を費やせるようになる。

 最後に横田氏は「みなさんの組織ではどうでしょうか」と問いかけた。DevOpsやDevSecOpsの理解が浸透している環境だろうか。「なぜやらなくてはいけないの?」という疑問が最初の大きなハードルとなる。

 特に、上司を説得したり組織全体を巻き込んだりするところで苦労する人も多い。ただ、セキュリティはこうした壁を越えるのにも効果的である。「開発が効率化される」「運用がしやすくなる」といったメリットに比べて「セキュリティ対策ができる」というのは誰にとっても分かりやすく、所謂マネージャーや経営層を巻き込むきっかけにしやすいからだ。これを越えることができたら、以降は楽になる。アーティファクトの管理、CD/CDパイプラインの整備、CD/CDパイプラインにセキュリティを組み込む、というようにステップアップしていけばいい。

 「自分の組織でできていること、できていないことを分析し、取り組めるところから始めましょう。まずは身近な仲間と話すことから始めてみては。自分が楽になり、幸せになることを考えて行動すればチームや、ひいては会社のためになります」(横田氏)

JFrog Platformで早速DevSecOpsを始めてみませんか

 JFrog Artifactoryによるバイナリ管理を中心とした継続的インテグレーション(CI)と継続的デプロイメント(CD)の実現が可能です。まずは無料版からお気軽にお試しください。:JFrog Platformご利用開始ページ

関連リンク

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【デブサミ2021夏】セッションレポート連載記事一覧

もっと読む

この記事の著者

加山 恵美(カヤマ エミ)

フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。Webサイト:http://emiekayama.net

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/14695 2021/09/24 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング