SonarQubeおよびSonarCloudからAikidoへの移行
Aikidoは、セキュリティ検出結果、コード品質チェック、PRゲーティングを1つのワークフローに統合することで、SonarQubeやSonarCloudからの移行をサポートします。
このガイドを使って、Sonarのワークフローをどのようにaikidoにマッピングするかを決め、開発者に驚きを与えることなく切り替えを進めましょう。
移行パスを選ぶ
Section titled “移行パスを選ぶ”すべてのリポジトリで同じ移行パスを使う必要はありません。チームが現在Sonarにどれだけ依存しているかに合わせたパスから始めましょう。
| パス | こんな場合に使う | やること |
|---|---|---|
| 直接Aikidoに移行する | Sonarの設定が主にAikidoが標準でカバーするワークフローに該当している場合。 | リポジトリをAikidoに接続し、ゲーティングとカスタムルールを設定してから、対応するSonarチェックを廃止します。 |
| 一時的に両方を運用する | 開発者のワークフローを変更する前に検出結果を比較したい場合。 | まずAikidoを有効にし、短い検証期間中はCIにSonarを残しておき、チームが十分に慣れたら重複するSonarチェックを削除します。 |
| 特殊なチェックを見直す | ワークフローにとって重要な、Sonar特有のチェックやメトリクスに依存している場合。 | Sonarのワークフローを一旦Aikidoに移行し、その特殊なチェックについて私たちに共有してください。優先的に代替機能を検討するか、代替のワークフローを提案します。 |
Sonarの概念をAikidoにマッピングする
Section titled “Sonarの概念をAikidoにマッピングする”このマップを使って、各Sonarワークフローがaikido内のどこに該当するかを判断してください。
| Sonarの概念 | Aikidoでの対応機能 | 補足 |
|---|---|---|
| セキュリティルールと脆弱性 | SASTおよびIaCスキャン | Aikidoはセキュリティの検出結果に焦点を当て、SASTからセキュリティに関係のないスタイル上のノイズを除去します。 |
| 依存関係の検出結果 | オープンソース依存関係スキャン | Aikidoはリーチャビリティとエクスプロイトインテリジェンスも活用し、重要な項目の優先順位付けを支援します。 |
| シークレット | Live Secret Detection | Aikidoは漏洩したシークレットが有効かどうかを確認し、リスクに応じて重大度を調整します。 |
| IaCルール | SASTおよびIaCスキャン | AikidoはTerraform、CloudFormation、Docker、Pulumiなどのその他のIaCファイルをスキャンします。 |
| Quality Gates | PR GatingおよびRelease Gating | Aikidoは新規の課題や重大度のしきい値に基づいて、プルリクエストやリリースチェックを失敗させることができます。 |
| コードカバレッジ | 近日公開 | Aikidoのカバレッジレポート機能は近日公開予定です。 |
| プルリクエストの装飾 | インラインPRコメントとAutoFixの提案 | Aikidoはプルリクエストにコメントを付け、開発者を関連するスキャン結果にリンクします。 |
| Quality Profiles | カスタムSAST・IaCルールおよびカスタムコードルール | まだ有用なルールのみを移行してください。Aikidoはすでに多くのシグナルの弱いチェックをフィルタリングしています。 |
| コードスメルと保守性 | Code Quality | Aikido Code QualityはPRチェック、リポジトリスキャン、カスタムのチーム基準をカバーします。 |
| False Positive、Won’t Fix、Accepted | 検出結果を無視するおよび検出結果をスヌーズする | 許容済みのリスクや誤検知にはignore(無視)を使用してください。後で見直したい問題にはsnooze(スヌーズ)を使用してください。 |
//NOSONARによる抑制 |
NOAIKIDOコメントおよび.aikidoファイル |
レビュー可能な判断にはUIによるignoreを優先してください。例外事項をリポジトリ側に持たせたい場合はNOAIKIDOを使用してください。 |
| Security Hotspots | SAST、AutoTriage、リーチャビリティ分析 | これは1対1のマッピングではありません。Aikidoは対応可能なセキュリティの検出結果に焦点を当て、トリアージのシグナルを使って低リスクの結果に対する手動レビューを削減します。 |
| レポートとダッシュボード | Security Audit ReportおよびTrends Over Time Report | セキュリティレビュー、コンプライアンス証跡、傾向の追跡にはAikidoのレポートを利用してください。 |
| 修復ガイダンス | AutoFix | Aikidoはオープンソース依存関係、SAST、IaC、コンテナに対する修正を作成できます。 |
移行チェックリスト
Section titled “移行チェックリスト”リポジトリを接続する
Section titled “リポジトリを接続する”まず、ソースコード管理(SCM)連携を通じて、Aikidoにスキャンさせたいリポジトリを接続します。通常、最初に各リポジトリにスキャナーの設定ファイルを追加する必要はありません。AikidoがSCMに接続されると、push時のスキャン、日次の再スキャン、プルリクエスト操作時のスキャンを実行できるようになります。
お使いのSCMに応じたセットアップガイドを利用してください。
すべてのセットアップオプションについては、ソースコードの接続を参照してください。
Sonarのワークフローに合わせる
Section titled “Sonarのワークフローに合わせる”現在Sonarがそのリポジトリに対して行っていることに対応するAikidoのワークフローを有効にします。
- コードとインフラのセキュリティのためのSASTおよびIaCスキャン
- CVEやライセンスリスクのためのオープンソース依存関係スキャン
- 有効性チェック付きのシークレットスキャン
- 保守性とチーム固有の基準のためのCode Quality
- プルリクエストのブロックのためのPRゲーティング
SonarをIDEで使用している場合は、Aikido IDEプラグインを確認し、開発者がコミット前に問題を発見できるようにしましょう。
有用なカスタムルールを移行する
Section titled “有用なカスタムルールを移行する”デフォルトではすべてのSonar Quality Profileルールをコピーしないでください。まず、Aikidoがそのリスクやパターンをすでにカバーしているかどうかを確認してください。Aikidoは標準で幅広いカバレッジを持っていることが多いため、多くのSonarルールにはカスタムの代替が不要です。
環境固有のセキュリティ、アーキテクチャ、チーム固有の基準を表すルールなど、依然として価値を持つルールのみを移行してください。
セキュリティパターンやインフラのチェックにはカスタムSAST・IaCルールを使用してください。チーム固有のコード品質の期待値にはカスタムコードルールを使用してください。
許容済みリスクの判断を移行する
Section titled “許容済みリスクの判断を移行する”False Positive、Won’t Fix、またはAcceptedとマークされたSonarの課題を確認し、現在も同意している判断をAikido内で再作成してください。
UIベースの判断には検出結果を無視するを使用してください。例外事項をリポジトリ側に持たせたい場合は、.aikidoファイルまたはNOAIKIDOコメントを使用してください。
PRおよびリリースゲーティングを設定する
Section titled “PRおよびリリースゲーティングを設定する”新しいセキュリティおよびコード品質の課題に対して、Sonar Quality GateチェックをAikidoのPRゲーティングまたはリリースゲーティングに置き換えます。
Aikidoでは、重大度のしきい値を設定し、どのスキャンタイプがチェックを失敗させられるかを選択でき、マージをブロックする前に可視性を確保したい場合は常にグリーンの設定から始めることもできます。詳しくはPR Gating概要およびAikido CLI: リリースゲーティングを参照してください。
CIとブランチ保護を更新する
Section titled “CIとブランチ保護を更新する”そのリポジトリに対してAikidoが設定された後、CIから対応するSonarスキャナーのジョブを削除し、ブランチ保護ルールを更新して、代わりにAikidoのチェックを必須にしてください。
Aikidoの設定範囲外にある特殊なチェックにリポジトリが依存している場合は、私たちに共有してください。優先的に代替機能を検討するか、代替のワークフローを提案します。
レポーティングと担当range見直す
Section titled “レポーティングと担当range見直す”セキュリティ、エンジニアリング、コンプライアンスの各チームが、Aikido内で新しいビューをどこで見つけられるかを把握できるようにしてください。
日々のトリアージにはメインフィードを、開発者のワークフローにはPRスキャン結果を、監査や傾向レビューにはレポートを利用してください。検出結果をJira、Linear、Slack、Microsoft Teamsに連携している場合は、古いSonarの通知を削除する前にそれらのワークフローを接続してください。
切り替えチェックリスト
Section titled “切り替えチェックリスト”リポジトリからSonarを削除する前に、以下を確認してください。
- Aikidoがそのリポジトリと正しいブランチをスキャンしていること。
- チームが望む重大度のしきい値でPRゲーティングが設定されていること。
- 必須のブランチ保護チェックがAikidoを参照していること。
- 重要なカスタムルールが再作成されているか、意図的に削除されていること。
- 許容済みリスクの判断がAikido内で見直されていること。
- チームがまだ必要としている場合は、専用のCIチェックがそのまま残っていること。
- 開発者が検出結果の確認方法、ignoreのリクエスト方法、AutoFixの使い方を把握していること。
お困りですか?
Section titled “お困りですか?”Sonarからの移行は、セキュリティ、エンジニアリング、コンプライアンスの各ワークフローに影響を及ぼす可能性があります。Sonarのルール、ゲート、レポートをAikidoにどのようにマッピングすればよいか分からない場合は、右下隅のIntercomチャットを開いてください。私たちのチームがサポートいたします。