はじめに
前回までは、GitとGitLabの具体的な機能や操作方法を入門者向けに解説してきました。
今回は、GitLabの根幹となる「DevSecOps」という考え方を中心に解説します。近年のソフトウェア開発では、開発のスピードを上げつつ、セキュリティを確保することが不可欠です。この相反する課題を解決するために必要なアプローチが「DevSecOps」です。
このDevSecOpsをGitLabがどのように実現しているのか、そしてそれがどのようなメリットを生み出すのかを、公式事例を交えて具体的に解説します。
DevOpsとは?
まず、DevSecOpsを理解するために、その土台となるDevOpsについて解説します。
DevOpsは、開発チーム(Development)と運用チーム(Operations)が連携し、アプリケーションのビルドからテスト、デプロイ、リリースまでのプロセスを自動化し、高速化する取り組みです。これにより、新しい機能を素早く提供し、顧客のフィードバックに迅速に対応することが可能になります。
DevSecOpsとは?
DevSecOpsとは、DevOpsの迅速な開発・運用プロセスにセキュリティを統合することで、スピードと安全性を両立する手法です。
従来の「開発の後にセキュリティチェックを行う」アプローチではなく、開発ライフサイクルの各段階にセキュリティを組み込む点が特徴です。開発の最終段階で脆弱性が発見されると、その修正には時間とコストがかかり、リリースの遅延につながります。DevSecOpsは、このような手戻りをなくすために、早い段階で問題を検知し、小さな修正で済ませることを目指します。これにより、開発のスピードを保ちつつ、コスト削減と安全性の向上を同時に実現できます。
詳細については以下の記事で解説していますので、ご参照ください。
DevSecOpsとは?安全性とスピードを両立する開発手法 | SIOS Tech. Lab
GitLabでのDevSecOpsの扱い
GitLabは、DevOpsの統合プラットフォームであるため、DevSecOpsを体現したツールです。
GitLabはCI/CDパイプラインにセキュリティスキャン機能を組み込むことが可能です。開発者は、追加のツールや設定をすることなく、以下の代表的なセキュリティ機能をCI/CDパイプラインに含めることができます。
- 静的アプリケーションセキュリティテスト(SAST):コードをビルドする前に、ソースコードに存在する脆弱性を自動で検知します。
- 認証情報検知(Secret Detection):コード内に誤ってコミットされたAPIキーやパスワードなどの機密情報を自動で検出します。
- 依存関係スキャン(Dependency Scanning):プロジェクトが使用しているライブラリやフレームワークに既知の脆弱性がないかをチェックします。
これらのスキャン結果は、マージリクエスト画面にCI/CDパイプラインの実行結果として直接表示されるため、レビュー時にコード品質とセキュリティの両方を一度に確認できます。
参考:Git & GitLab 入門 (6) ~Git マスターへの道~「GitLabの画面説明とよく利用される機能説明」
GitLab公式で提示しているDevSecOpsの事例について
GitLabのDevSecOps機能は、規模を問わず多くの企業で成果を上げています。ここでは、GitLabの公式事例からそのメリットを具体的に見てみましょう。
参考:https://about.gitlab.com/ja-jp/customers/
エンタープライズ事例:Hilti社(デプロイ時間の短縮)
建設業界の大手であるHiltiは、以前、ソフトウェア開発の一部を外部に委託しており、社内でのコード管理やCI/CD体制が十分に整っていませんでした。そのため、バグや脆弱性への対応が後手に回り、セキュリティ上のリスクやコード品質の低下が課題となっていました。
これらの課題を解決し、セキュリティスキャンを最優先にソフトウェア開発を社内化するため、統合のしやすさ、SCM (Source Code Management)、豊富なSAST/DAST等のセキュリティ機能を理由にGitLab Ultimateを採用しました。
GitLab導入の具体的な成果として、デプロイ時間が平均3時間からわずか15分に短縮されました。これは、以下が大きな要因です。
- 開発・テストチームがコードを管理し、脆弱性を事前に発見できるようになった
- フィードバックループが6日から3日に短縮されたこと
- コードチェック頻度が3か月6回から週2回に増加
これにより、Hiltiはセキュリティ、コード品質、開発効率、チームコラボレーションを大幅に向上させることができました。
参考:https://about.gitlab.com/customers/hilti/
ミッドマーケット事例:Carfax社(脆弱性の早期発見)
自動車履歴データベースを提供するCarfaxは、以前、複数のDevOpsツールチェーンの維持管理をするため、多くの時間やコストがかかっていました。さらに、開発ライフサイクル後半の手動による脆弱性スキャンで問題が発覚することが多く、迅速な修正が難しい状況でした。
より早い段階でセキュリティリスクを検知したいという課題から、GitLabのDevSecOpsプラットフォームを採用しました。Carfaxは導入後6ヶ月以内に、コードをGitLabに移し、GitLabのセキュリティスキャンを活用し始めました。
GitLabの自動セキュリティ機能(依存関係スキャン、コンテナスキャン、シークレット検出など)を導入することで、Carfaxは1年間で脆弱性の約3分の1を開発ライフサイクルのかなり早い段階で発見できるようになりました。これにより、開発チーム全体がソフトウェアライフサイクルの最も早い段階からセキュリティを考慮する「シフトレフト」を実現し、問題の修正にかかる時間とコストを大幅に削減し、セキュリティを向上させました。
参考:https://about.gitlab.com/customers/carfax/
中小企業(SMB)事例:Jasper Solutions社(オールインワンの利点)
政府・民間向けのソフトウェア開発を行うJasper Solutionsは、以前、複数の個別ツールを組み合わせた開発パイプラインを利用していましたが、個々のツールのバージョンアップが原因でパイプラインが頻繁に機能しなくなり、開発チームは顧客向けのコード開発よりもその修正に多くのリソースを割かなければなりませんでした。
こうした運用負荷を根本から解決するため、GitLabをCI/CD、SCMを統合した「オールインワン」プラットフォームとして採用しました。
GitLabの「オールインワン」プラットフォームにより、パイプラインの破損がほぼなくなり、単一のアップグレードでパイプライン全体が常に最新の状態に保たれるため、開発チームはアプリケーション開発に集中できるようになりました。この統合によって、以下の具体的なメリットが生まれています。
- 1製品あたり年間平均約350人時の作業時間を削減
- 個別のツールを維持管理する費用と比較して年間33〜37%のコスト削減
- サイクルタイムが30%短縮され、デプロイ頻度が25%向上
Jasper Solutionsは、GitLabの「オールインワン」の利点を最大限に活用することで、複数のツールチェーンの維持管理から解放され、開発への集中と運用コストの削減を同時に実現できました。
参考:https://about.gitlab.com/customers/jasper-solutions/
GitLabのDevSecOpsを導入することによって、Hilti社ではデプロイ時間の短縮、Carfax社では脆弱性の早期発見、Jasper Solutions社では運用コスト削減と安定化が実現されました。
事例 |
改善効果 |
Hilti社 |
デプロイ時間の短縮(平均3時間から15分) |
Carfax社 |
脆弱性の早期発見(約3分の1) |
Jasper Solutions社 |
運用コスト削減と安定化(年間33〜37%のコスト削減) |
まとめ
今回は、GitLabがCI/CDパイプラインにセキュリティスキャン機能を統合することで、開発スピードと安全性を両立する「DevSecOps」という手法を実現していることを解説しました。
そして、GitLabが実際の企業事例(Hilti、Carfax、Jasper Solutions)でどのような具体的な成果(デプロイ時間の短縮、脆弱性の早期発見、運用コストの削減など)を生み出しているかを具体的に見てきました。
これまで学んだGitLabの基本操作を踏まえ、次は実際にDevSecOpsを体験できる環境を構築する方法をご紹介します。
DevSecOps実践ガイド:セキュアなCI/CD運用の実践編