code scanning について
Code scanning は、GitHub リポジトリ内のコードを分析して、セキュリティの脆弱性とコーディング エラーを見つけることができる機能です。 分析によって特定された問題は、リポジトリに表示されます。
code scanning を構成して、CodeQL の分析とサードパーティの分析を実行できます。 また、Code scanning では、GitHub Actions を使ったネイティブな分析の実行と、外部にある既存の CI/CD インフラストラクチャの使用もサポートされています。 次の箇条書きは、アクションを使って code scanning を許可するように お使いの GitHub Enterprise Server インスタンス を構成するときにユーザーが使用できるオプションをまとめたものです。
- CodeQL : 既定の設定 (「コード スキャンの既定セットアップの構成」を参照) または詳細設定 (「コード スキャンの高度なセットアップの構成」を参照) のいずれかを使用して GitHub Actions を使用するか、またはサードパーティの継続的インテグレーション (CI) システムで CodeQL 分析を実行します (「既存の CI システムでコード スキャンを使用する」を参照)。
- サードパーティ: GitHub Actions またはサードパーティのツールを使って、結果を GitHub Enterprise Server にアップロードします (「SARIF ファイルを GitHub にアップロードする」を参照)。
ライセンスに GitHub Advanced Security
が含まれているかどうかを確認する
エンタープライズ設定を確認することで、エンタープライズに GitHub Advanced Security ライセンスがあるかどうかを確認できます。 詳しくは、「自社で GitHub Advanced Security を有効にする」を参照してください。
code scanning の前提条件
-
GitHub Advanced Security のライセンス (「GitHub Advanced Security の課金について」を参照)
-
管理コンソールで Code scanning が有効になっている (「自社で GitHub Advanced Security を有効にする」を参照)
-
code scanning の分析を実行する VM またはコンテナー。
GitHub Actions を使用して code scanning を実行する
セルフホステッド ランナーのプロビジョニング
GitHub Enterprise Server は、GitHub Actions ワークフローを使用して code scanning を実行できます。 まず、環境内に 1 つ以上のセルフホスト GitHub Actions ランナーをプロビジョニングする必要があります。 セルフホストランナーは、リポジトリ、Organization、または Enterprise アカウントレベルでプロビジョニングできます。 「自己ホスト ランナーの概要」および「自己ホストランナーの追加」を参照してください。
CodeQL の分析用にセルフホステッド ランナーをプロビジョニングする場合は、CodeQL でサポートされているオペレーティング システムのバージョンと CPU アーキテクチャをランナーで使う必要があります。 「CodeQL のシステム要件」をご覧ください。
code scanning の既定のセットアップを使っている場合は、code-scanning
ラベルをセルフホステッドランナーに割り当てます。 セルフホステッド ランナーでのラベルの使用の詳細については、「セルフホストランナーとのラベルの利用」を参照してください。 コンパイル済み言語のコード スキャン解析にデフォルト セットアップを使用する方法の詳細については、「コンパイル済み言語の CodeQL コード スキャン」を参照してください。
CodeQL アクションを実行するために使用するセルフホストランナーの PATH 変数に Git が含まれていることを確認する必要があります。
注: CodeQL code scanning を使って Enterprise 内で Python で記述されたコードを分析する場合、セルフホステッド ランナーに Python 3 がインストールされていることを確認する必要があります。
ランナー スケール セットのプロビジョニング
Actions Runner Controller を使用して、GitHub Enterprise Server インスタンス用の専用ランナー スケール セットを作成できます。 「アクション ランナー コントローラーを使用してランナー スケール セットをデプロイする」を参照してください。
code scanning のアクションをプロビジョニングする
アクションを使用して GitHub Enterprise Server で code scanning を実行する場合は、アプライアンスでアクションを使用できる必要があります。
CodeQL アクションは GitHub Enterprise Server のインストールに含まれています。 GitHub Enterprise Server 3.13 と GitHub Actions の両方がインターネットにアクセスできる場合、分析を実行するために必要な CodeQL 2.16.5 バンドルが、このアクションによって自動的にダウンロードされます。 または、同期ツールを使って、CodeQL 分析バンドルの最新のリリース バージョンをローカルで使用できるようにすることもできます。 以下の「インターネットアクセスのないサーバーで CodeQL 分析を設定する」をご覧ください。
GitHub Connect を設定することで、code scanning のユーザがサードパーティのアクションを利用できるようにすることもできます。 以下の「アプライアンス用コードスキャンの構成」を参照してください。
インターネットアクセスのないサーバーで CodeQL 分析を設定する
GitHub Enterprise Server を実行しているサーバーがインターネットに接続されておらず、ユーザがリポジトリに対して CodeQL code scanning を有効にできるようにする場合は、CodeQL アクション同期ツールを使用して CodeQL 分析バンドルを GitHub.com からサーバーにコピーする必要があります。 ツールとその使用方法の詳細は、https://github.com/github/codeql-action-sync-tool で手に入ります。
CodeQL アクション同期ツールを構成すると、それを使用して、CodeQL アクションの最新リリースと関連する CodeQL 分析バンドルを同期できます。 これらは GitHub Enterprise Server と互換性があります。
GitHub Actions を同期するために GitHub Connect を設定する
- GitHub.com からオンデマンドでアクションワークフローをダウンロードする場合は、GitHub Connect を有効にする必要があります。 「Enabling GitHub Connect for GitHub.com」を参照してください。
- また、GitHub Actions を有効にする必要もあります。 「GitHub Enterprise Server の GitHub Actions を使い始める」を参照してください。
- 次のステップは、GitHub Connect を使用して、GitHub.com に対するアクションへのアクセスを設定することです。 「GitHub Connect を使用して GitHub.com アクションへの自動アクセスを可能にする」を参照してください。
- セルフホストランナーをリポジトリ、Organization、または Enterprise アカウントに追加します。 「自己ホストランナーの追加」を参照してください。
CodeQL CLI を使用して code scanning を実行する
GitHub Actions を使用しない場合は、CodeQL CLI を使用して code scanning を実行する必要があります。
CodeQL CLI は、サードパーティの CI/CD システムを含め、任意のマシン上でコードベースを分析するために使用するコマンド ライン ツールです。 「既存の CI システムでコード スキャンを使用する」を参照してください。