更新日:2025年7月15日
9分で読めます
DevSecOpsプラットフォームを使用して開発速度を保ったまま、コンプライアンスを遵守しましょう。

この記事では、GitLab DevSecOpsプラットフォームを使用して職務分離と 継続的なコンプライアンスを実現するためのさまざまな方法についてご紹介します。まずは、2つの重要な概念について説明しましょう。
コンプライアンスとは、企業や政府機関などが定めたガイドラインや規格に則って 行動することです。コンプライアンスは、 企業倫理や適切なユーザーポリシー、セキュリティ基準などを守り、 消費者の安全を確保する上で役立ちます。
コンプライアンスに違反した場合、裁判費用や罰金が発生する可能性があります。そのため、コンプライアンスを維持することは非常に重要です。DevSecOpsチームはコンプライアンスを遵守しつつ開発速度を維持し、さらにシンプルさや可視性、制御といった要件も満たす必要があります。
職務分離とは、エラーの防止や不正行為の抑止を目的に、業務を複数の担当者で分担することです。職務分離を行うことで、その作業に最適な担当者が作業を実施する体制となります。たとえば以下のように、 それぞれの担当者が特定の目的のもとで業務を受け持ちます。
このように業務が分担されていれば、たとえばデベロッパーが実行中のパイプラインを変更することはできません。 そのような業務を行えるのはコンプライアンス担当者のみであり、承認なしでプッシュできるのはコンプライアンスに準拠しているコードのみであることが保証されます。
脆弱性のあるコードのレビューと承認を担当するアプリケーションセキュリティエンジニアは、適切な方法で脆弱性を軽減し、将来的に問題が発生しないようにします。このシナリオでは、コンプライアンス とセキュリティの要件が満たされるまでデベロッパーはコードをマージできません。
GitLabのセキュリティポリシーを使用すれば、セキュリティチームは設定に従ってセキュリティスキャンが必ず実行されるように指定できます。これにより、セキュリティチームは、設定済みのスキャンが変更されたり無効化されたりしていないことを把握できます。
セキュリティポリシーは、特定のコンプライアンスフレームワークを満たすようにスコープを設定できます。この場合、プロジェクトには特定のコンプライアンス要件が適用されているため、追加で監視を行う必要があります。このラベルは、トップレベルグループの 「セキュア」>「コンプライアンスセンター」>「フレームワーク」 から作成できます。

注:コンプライアンスラベルは、ラベルを作成したトップレベルグループ内のプロジェクトにのみ割り当てられます。
ポリシーには、スキャン実行ポリシー、マージリクエスト承認ポリシー、パイプライン実行ポリシーの3種類があります。
これらのポリシーは、ポリシーエディタ上で簡単な手順で設定できます。
name: force_sast
description: 'require sast to run'
enabled: true
rules:
- type: pipeline branches: - main actions:
- scan: sast
すべてのスキャン実行ポリシーの変更は、10分ごとに実行されるバックグラウンドジョブを通じて適用されます。 対象プロジェクトにコミットされたポリシーの変更が反映されるまで、最長で10分かかることがあります。
注:タイマーを設定してSASTを強制的に実行することもできます。詳細はスキャン実行ポリシーの ドキュメントをご参照ください。


注:ポリシーは設定したルールに従って評価されます。 そのため、ルールが無効であるか評価できない場合は、承認が必要となります。これを防ぐには、デフォルトのフォールバック動作フィールドをopenに変更します。

脆弱性の追加方法については、GitLab DevSecOpsワークショップの「デベロッパーワークフロー」セクションをご参照ください。
パイプライン実行ポリシーを設定するには、まず実行するCIファイルを含むプロジェクトを作成する必要があります。職務分離を確実にするため、セキュリティチームや管理者だけがアクセスできるように設定してください。例として、適用したいYAMLを含む「コンプライアンスとデプロイ」プロジェクトを作成しました。

コンプライアンスを遵守する上でもうひとつ重要なのは、実際にグループやプロジェクト内で起きていることを把握することです。GitLabには、監査に対応するために監査イベントとコンプライアンスレポートが備わっています。
監査イベントを使用すると、GitLabのオーナーと管理者は、特定のアクションを実行したユーザーや、そのアクションが行われた時間といった重要なイベントを追跡できます。

監査イベントはグループやプロジェクトごとにさまざまなイベントを記録するもので、監査イベントのドキュメントで内容を 確認できます。 監査イベントには、**「セキュリティとコンプライアンス」>「監査イベント」**の順に移動してアクセスできます。 以下はその一例です。
監査イベントは、監査イベントストリーミングを使用してHTTPエンドポイントに送信することもできます。監査イベントストリーミングの 実装方法については、こちらの動画をご覧ください。
**「基準遵守」**では、グループのマージリクエストアクティビティを確認できます。ここでは、グループ内のすべてのプロジェクトの概要が表示されます。

このレポートでは、次の情報を確認できます。
基準遵守レポートは、トップレベルグループの 「セキュア」 >「コンプライアンスセンター」にある「基準遵守」 タブから確認できます。
ここまでお読みいただきありがとうございました。GitLabでの職務分離について詳しくは、GitLabによる継続的なソフトウェアコンプライアンスをご参照ください。