コンテンツにスキップ

GitLab Premium、Ultimate & Server: MRスキャンのセットアップ

GitLab MRスキャンをセットアップする

Section titled “GitLab MRスキャンをセットアップする”

1. 専用のService Accountを作成する

Section titled “1. 専用のService Accountを作成する”

GitLabで、GroupSettingsService accountsに移動します。

Add service accountを選択します。

NameUsernameを設定します。

  • Name: Aikido Security
  • Username: AikidoSec
  • Createを選択します。

このアカウントはAikido専用として使用してください。

2. アクセストークンを作成する

Section titled “2. アクセストークンを作成する”

サービスアカウントの縦の三点アイコンを選択し、Manage access tokensを選びます。

GitLab Service Accountsの概要

新しいトークンを追加します。

  • Name: 例 Aikido Scans
  • Expiration date: ローテーションポリシーに合わせた有効期限を設定します
  • Scopes: api

今すぐトークンをコピーしてください。GitLabは二度と表示しません。

ステップ6でAikidoに貼り付けます。

4. アカウントをグループに招待する

Section titled “4. アカウントをグループに招待する”

GitLabのGroupsに移動します。

有効化したい各グループを開きます。

ManageMembersInvite membersに移動します。

サービスアカウントを招待します。

少なくともMaintainer権限を付与してください。

5. インテグレーションを有効化する

Section titled “5. インテグレーションを有効化する”

AikidoでIntegrationsページを開きます。次にMR Quality Gatingの下にあるGitLab CIを選択します。

6. アクセストークンを貼り付ける

Section titled “6. アクセストークンを貼り付ける”

ステップ3で作成したトークンを貼り付けます。

Update tokenをクリックします。

Aikidoがグループアクセスと必要な権限を検証します。

7. 最初のリポジトリを設定する

Section titled “7. 最初のリポジトリを設定する”

認可が完了すると、AikidoはGitLab MR Checksページを開きます。

まずは1つのリポジトリから始めてください。広く展開する前に、すべてが正しく動作することを確認します。

設定したリポジトリで新しいマージリクエスト(MR)を開きます。

次に、Pipelinesタブでチェックが実行されることを確認します。

コメントはサービスアカウントとして表示されるはずです。例: @AikidoSec

9. スキャンの成功を必須にする

Section titled “9. スキャンの成功を必須にする”

スキャンが成功するまでマージをブロックしたい場合は、GitLabでmerge checksを設定します。

GitLabで、[Repository]SettingsMerge Requestsに移動します。Pipelines must succeedのチェックを有効にします。

10. すべてのリポジトリで有効化する

Section titled “10. すべてのリポジトリで有効化する”

結果に問題がなければ、GitLab MR Checksページに戻り、残りのリポジトリでもチェックを有効にします。

11. 新規リポジトリのデフォルトを設定する

Section titled “11. 新規リポジトリのデフォルトを設定する”

右上でActionsを開き、Set Default for New Reposを選択して、今後新しく追加されるリポジトリに対する自動設定を有効にします。

UIの手順が必要な場合は、新規リポジトリのデフォルトPR/MRゲーティング設定をご覧ください。

MRコメントから直接issueを無視する

Section titled “MRコメントから直接issueを無視する ”

Aikidoが検出結果に対してMRにインラインコメントを投稿した場合、次のようにコメントに返信することでGitLabから直接そのIssueを無視できます。

@AikidoSec ignore: [your reason to ignore]

例:

@AikidoSec ignore: This secret is used for tests only.

@AikidoSecは、ステップ1で作成したサービスアカウントのユーザー名が異なる場合はそれに置き換えてください。

これはAikidoプラットフォーム上で手動でIssueを無視するのと同じ操作です。

  • AikidoでそのIssueがignore済みとしてマークされます。
  • ignoreの理由が保存されます。
  • ブロック対象のIssueがすべて解決またはignoreされると、MRゲーティングはグリーンになります。