コンプライアンスセンター
GitLab 16.3のコンプライアンスレポートから名称変更。
グループの標準遵守、違反、コンプライアンス・フレームワークのレポートと管理をご覧ください。
標準遵守ダッシュボード
フラグ: セルフマネジメントのGitLabでは、デフォルトではこの機能は利用できません。プロジェクトごと、またはインスタンス全体で利用できるようにするには、管理者がcompliance_adherence_report
とadherence_report_ui
という機能フラグを有効にします。GitLab.comでは、この機能は利用できません。この機能はまだ本番環境では使用できません。
標準遵守ダッシュボードは、GitLab標準に準拠しているプロジェクトの遵守状況を一覧表示します。
標準遵守ダッシュボードを見る
前提条件:
- グループの管理者またはオーナーロールを持っている必要があります。
グループの基準遵守ダッシュボードを表示するには:
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 左サイドバーで、「セキュリティ」>「コンプライアンス・センター」を選択します。
GitLab 標準
GitLab標準は3つのルールで構成されています:
- 作成者を承認者にしないこと。
- コミッターが承認者にならないようにします。
- 少なくとも2つの承認者。
作成者が承認者にならないようにします。
GitLab 標準に準拠するには、ユーザーが自分のマージリクエストを承認できないようにする必要があります。詳しくは、Prevent approval by author をご覧ください。
セルフマネージド GitLab では、インスタンスレベルで作成者による承認を防ぐ設定を更新しても、インスタンス上のすべてのプロジェクトのアドヒアランスステータスは自動的に更新されません。これらのプロジェクトのステータスを更新するには、グループレベルかプロジェクトレベルの設定を更新する必要があります。
コミッターを承認者にしない
GitLab 標準に準拠するためには、ユーザーがコミットを追加したマージリクエストを承認できないようにする必要があります。詳しくは、コミットを追加したユーザーによる承認者を防ぐ をご覧ください。
セルフマネージド GitLab では、コミットを追加したユーザーによる承認を防ぐためのインスタンスレベルの設定が更新されても、インスタンス上のすべてのプロジェクトのアドヒアランスステータスは自動的に更新されません。これらのプロジェクトのステータスを更新するには、グループレベルまたはプロジェクトレベルの設定を更新する必要があります。
少なくとも 2 つの承認者
GitLab 標準に準拠するために、マージリクエストをマージするには少なくとも2人のユーザーの承認が必要です。詳しくはマージリクエストの承認ルールをご覧ください。
コンプライアンス違反レポート
- GitLab 12.8でコンプライアンスダッシュボードとして導入されました。
- GitLab 14.1でコンプライアンス違反ドロワーが導入されました。
- GitLab 14.2でコンプライアンスレポートに名称変更。
- GitLab 14.6でマージリクエストバイオレーションに置き換えられ 、
compliance_violations_report
というフラグが追加されました。デフォルトでは無効。- GitLab 14.9で導入されたGraphQL API。
- GitLab 14.10で一般的に利用可能。機能フラグ
compliance_violations_report
を削除しました。- GitLab 15.9でコンプライアンス違反レポートに名称変更。
- GitLab 16.0で導入されたコンプライアンスフレームワークの作成と編集機能。
コンプライアンス違反レポートで、グループ内の全プロジェクトのマージリクエストアクティビティをハイレベルで見ることができます。
コンプライアンス違反レポートで行を選択すると、ドロワーが表示されます:
- プロジェクトにコンプライアンス フレームワークが割り当てられている場合は、プロジェクト名とコンプライアンス フレームワーク ラベル。
- 違反を引き起こしたマージリクエストへのリンク。
-
[source] into [target]
の形式でのマージリクエストのブランチパス。 - マージリクエストに変更をコミットしたユーザーのリスト。
- マージリクエストにコメントしたユーザーのリスト。
- マージリクエストを承認したユーザーのリストです。
- マージリクエストをマージしたユーザーです。
グループのコンプライアンス違反レポートの表示
GitLab 16.0 で導入されたターゲットブランチ検索。
前提条件:
- グループの管理者またはオーナーロールを持っている必要があります。
コンプライアンス違反のレポーターを表示するには
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 左サイドバーで、「セキュリティ」>「コンプライアンス・センター」を選択します。
コンプライアンス レポートを並べ替えることができます:
- 重大度レベル。
- 違反の種類
- マージリクエストタイトル。
コンプライアンス違反レポーターをフィルタリングできます:
- プロジェクト
- マージの日付範囲。
- ターゲットブランチ。
コンプライアンス違反の詳細を表示するには、行を選択します。
重大度レベル
各コンプライアンス違反には、以下の重大度のいずれかがあります。
アイコン | 重大度 |
---|---|
{深刻度クリティカル, 18, gl-fill-red-800}. | クリティカル |
{深刻度高、18、gl-fill-red-600}。 | 高い |
厳しさ中, 18, gl-fill-オレンジ-400} {厳しさ中, 18, gl-fill-オレンジ-400}。 | 中規模 |
{厳しさ低、18、gl-fill-orange-300}。 | 低 |
{厳しさ情報、18、gl-fill-blue-400}。 | 情報 |
違反の種類
GitLab 14.10から、利用可能なコンプライアンス違反は以下の通りです。
違反内容 | 重大度 | カテゴリ | 説明 |
---|---|---|---|
作成者がマージリクエストを承認しました。 | 高い | 職務の分離 | マージリクエストの作成者が自分のマージリクエストを承認しました。詳細については、作成者による承認を防ぐをご覧ください。 |
マージリクエストを承認したコミッター | 高い | 職務の分離 | マージリクエストのコミッターは自分が貢献したマージリクエストを承認しました。詳細については、コミットを追加したユーザーによる承認者を防ぐを参照してください。 |
承認者が2人以下 | 高い | 職務の分離 | マージリクエストが 2 つ未満の承認者でマージされました。詳細については、マージリクエストの承認ルールを参照してください。 |
以下は、エピック 5237 で追跡される利用できないコンプライアンス違反です。
違反内容 | 重大度 | カテゴリ | 説明 |
---|---|---|---|
パイプラインの失敗 | 中規模 | パイプラインの結果 | マージリクエストのパイプラインが失敗し、マージされました。 |
パイプラインは警告付きで通過しました。 | 情報 | パイプラインの結果 | マージリクエストパイプラインは警告付きで通過し、マージされました。 |
コードカバレッジが10%以上減少 | 高い | コードカバレッジ | マージリクエストのコード・カバレッジ・レポートでは、カバレッジが 10% 以上減少しています。 |
コード・カバレッジが5%から10%低下 | 中規模 | コードカバレッジ | マージリクエストのコードカバレッジレポートでは、カバレッジが5%から10%低下しています。 |
コード・カバレッジが1%から5%減少 | 低 | コードカバレッジ | マージリクエストのコードカバレッジレポートでは、カバレッジが1%から5%低下しています。 |
コード・カバレッジが1%未満減少 | 情報 | コードカバレッジ | マージリクエストのコードカバレッジレポートによると、カバレッジの減少は1%未満です。 |
職務の分離
GitLabはマージリクエストを作成するユーザーと承認するユーザーの間の職務分離ポリシーをサポートしています。私たちの職務分離の基準は以下の通りです:
- マージリクエスト作成者はマージリクエストを承認することはできません。
- マージリクエストコミッターは自分がコミットを追加したマージリクエストを承認することはできません。
- マージリクエストをマージするために必要な承認者の最低数は2人です。
CoC レポート
- GitLab 13.3 で導入されました。
- GitLab15.3で導入された電子メールを使ったChain of Custodyレポートの送信には、
async_chain_of_custody_report
というフラグが必要です。デフォルトでは無効になっています。- GitLab 15.5で一般的に利用可能。機能フラグ
async_chain_of_custody_report
を削除しました。- Chain of Custodyレポートがすべてのコミットを含む(マージコミットだけでなく)GitLab 15.9で導入された
all_commits_compliance_report
というフラグ。デフォルトでは無効。- GitLab 15.9で一般的に利用可能。機能フラグ
all_commits_compliance_report
を削除しました。
Chain of Custody レポートは、グループ配下のプロジェクトに対するすべてのコミットを 1 ヶ月分追跡します。
すべてのコミットのレポートを作成するには、GitLab:
- グループの下にある全てのプロジェクトを取得します。
- 各プロジェクトについて、直近一ヶ月のコミットを取得します。各プロジェクトのコミット数の上限は 1024 です。一ヶ月のウィンドウに 1024 を超えるコミットがある場合は切り捨てられます。
- CSV ファイルにコミットを書き込みます。レポートは添付ファイルとしてEメールで送信されるため、ファイルは15MBで切り捨てられます(GitLab 15.5以降)。
レポートには以下が含まれます:
- コミットSHA
- 作成者をコミットします。
- コミッター
- コミット日
- グループ
- プロジェクト
コミットに関連するマージコミットがある場合は、以下も含まれます:
- マージコミット SHA。
- マージリクエスト ID。
- マージリクエストをマージしたユーザー。
- マージ日。
- パイプラインID。
- マージリクエスト承認者。
CoC レポートの作成
Chain of Custodyレポートを作成します:
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 左サイドバーで、「セキュリティ」>「コンプライアンス・センター」を選択します。
- List of all merge commits]を選択します。
GitLab のバージョンによって、Chain of Custody レポートはメールで送信されるか、ダウンロード可能です。
コミット別のChain of Custodyレポートを作成
指定されたコミット SHA に対して、コミット固有の Chain of Custody レポートを生成することができます。このレポートは、指定されたコミット SHA の詳細のみを提供します。
コミット固有のChain of Custodyレポートを生成するには、以下の手順に従います:
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 左サイドバーで、「セキュリティ」>「コンプライアンス・センター」を選択します。
- コンプライアンス レポートの上部で、[すべてのコミットの一覧] の右側にある下向き矢印({chevron-lg-down}) を選択します。
- コミットSHAを入力し、コミットカストディレポートのエクスポートを選択します。
GitLab のバージョンによって、Chain of Custody レポートはメールで送信されるか、ダウンロード可能です。
また、直接リンクを使用することもできます:https://gitlab.com/groups/<group-name>/-/security/merge_commit_reports.csv?commit_sha={optional_commit_sha}
commit_sha
クエリパラメータにオプションの値を渡します。
コンプライアンス・フレームワーク・レポート
GitLab 15.10 で導入されました。
コンプライアンスフレームワークレポートでは、グループ内のプロジェクトに適用されているコンプライアンスフレームワークを確認することができます。レポートの各行に表示されます:
- プロジェクト名
- プロジェクトパス
- プロジェクトにコンプライアンス・フレームワーク・ラベルが割り当てられている場合。
グループのデフォルトのフレームワークには、デフォルトのバッジがあります。
グループのコンプライアンス フレームワーク レポートの表示
前提条件:
- グループの管理者またはオーナーロールを持っている必要があります。
コンプライアンス フレームワーク レポートを表示するには
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 左サイドバーで、「セキュリティ」>「コンプライアンス・センター」を選択します。
- ページで、「Frameworks」タブを選択します。
グループ内のプロジェクトへのコンプライアンス フレームワークの適用
グループ内のプロジェクトにコンプライアンスフレームワークを適用することができます。
前提条件:
- グループのオーナーロールを持っている必要があります。
グループ内の1つのプロジェクトにコンプライアンス・フレームワークを適用すること:
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 左サイドバーで、「セキュリティ」>「コンプライアンス・センター」を選択します。
- ページで、「Frameworks」タブを選択します。
- コンプライアンスフレームワークを追加するプロジェクトの横にある{plus}を選択します。フレームワークを追加します。
- 既存のコンプライアンス フレームワークを選択するか、新しいフレームワークを作成します。
グループ内の複数のプロジェクトにコンプライアンス フレームワークを適用するには
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 左サイドバーで、「セキュリティ」>「コンプライアンス・センター」を選択します。
- ページで、「Frameworks」タブを選択します。
- 複数のプロジェクトを選択します。
- Choose one bulk actionドロップダウンリストから、Apply framework to selected projectsを選択します。
- 適用するフレームワークを選択します。
- 適用を選択します。
グループ内のプロジェクトからコンプライアンス フレームワークを削除します。
グループ内のプロジェクトからコンプライアンスフレームワークを削除することができます。
前提条件:
- グループのオーナーロールを持っている必要があります。
グループ内の 1 つのプロジェクトからコンプライアンス フレームワークを削除するには
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 左サイドバーで、「セキュリティ」>「コンプライアンス・センター」を選択します。
- ページで、「Frameworks」タブを選択します。
- プロジェクトから削除するコンプライアンスフレームワークの横で、フレームワークラベルの{閉じる}を選択します。
グループ内の複数のプロジェクトからコンプライアンス フレームワークを削除するには
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 左サイドバーで、「セキュリティ」>「コンプライアンス・センター」を選択します。
- ページで、「Frameworks」タブを選択します。
- 複数のプロジェクトを選択します。
- 一括アクションを 1 つ選択ドロップダウン リストから、選択したプロジェクトからフレームワークを削除を選択します。
- 削除 を選択します。
グループ内のプロジェクトのコンプライアンス フレームワークのレポートをエクスポートします。
GitLab 16.0 で導入されました。
グループ内のプロジェクトに適用されているコンプライアンスフレームワークのレポートをエクスポート。レポーター
- フレームワーク レポートでフィルタを使用しないでください。
- メールの添付ファイルが大きすぎるため、15 MBで切り捨てられます。
前提条件:
- グループの管理者またはオーナーロールを持っている必要があります。
グループ内のプロジェクトのコンプライアンス フレームワークのレポートをエクスポートするには、以下の手順に従います:
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 左サイドバーで、「セキュリティ」>「コンプライアンス・センター」を選択します。
- ページで、「Frameworks」タブを選択します。
- Frameworksタブで、右上のExport as CSVアクションを選択します。
レポートが作成され、添付ファイルとしてEメールの受信トレイに配信されます。
コンプライアンス・フレームワーク・レポートのフィルタリング
GitLab 15.11 で導入。
コンプライアンス・フレームワークのリストをフィルターするには
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 左サイドバーで、「セキュリティ」>「コンプライアンス・センター」を選択します。
- ページで、「Frameworks」タブを選択します。
- 検索フィールドで
- 絞り込みたい属性を選択します。
- オペレーションを選択します。
- オプションのリストから選択するか、検索用のテキストを入力します。
- 検索({search}) を選択します。
複数の属性でフィルタリングするには、このプロセスを繰り返します。