code scanning について
Code scanning は、開発者が GitHub リポジトリ内のコードを分析して、セキュリティの脆弱性とコーディングエラーを見つけることができる機能です。 分析によって特定されたすべての問題はGitHub Enterprise Serverに表示されます。
code scanning を構成して、CodeQL の分析とサードパーティの分析を実行できます。 また、Code scanning では、GitHub Actions を使用したネイティブな分析の実行と、外部にある既存の CI/CD インフラストラクチャの使用もサポートされています。 次の表は、アクションを使って code scanning を許可するようにyour GitHub Enterprise Server instanceを構成するときにユーザーが使うことができるすべてのオプションをまとめたものです。
アラート生成のオプション | |
---|---|
CodeQL | GitHub Actions を使う (「アクションを使った code scanning の設定」を参照) または、サードパーティの継続的インテグレーション (CI) システ� で CodeQL 分析を行う (「CI システ� における CodeQL code scanning について」を参照)。 |
サードパーティ | GitHub Actions を使う (「アクションを使った code scanning の設定」を参照) または、外部生成して GitHub Enterprise Server にアップロード (「GitHub への SARIF ファイルのアップロード」を参照)。 |
ライセンスに 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 アクションを実行するために使用するセルフホストランナーの PATH 変数に Git が含まれていることを確認する必要があります。
code scanning のアクションをプロビジョニングする
アクションを使用して GitHub Enterprise Server で code scanning を実行する� �合は、アプライアンスでアクションを使用できる必要があります。
CodeQL アクションは GitHub Enterprise Server のインストールに含まれています。 GitHub Enterprise Server 3.3 と GitHub Actions の両方がインターネットにアクセスできる� �合、分析を実行するために必要な CodeQL 2.7.6 バンドルが、このアクションによって自動的にダウンロードされます。 または、同期ツールを使って、CodeQL 分析バンドルの最新のリリース バージョンをローカルで使用できるようにすることもできます。 詳細については、後の「インターネット アクセスのないサーバーで CodeQL 分析を設定する」を参照してく� さい。
GitHub Connect を設定することで、code scanning のユーザがサードパーティのアクションを利用できるようにすることもできます。 詳細については、後の「GitHub Actions を同期するように GitHub Connect を構成する」を参照してく� さい。
インターネットアクセスのないサーバーで 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 を有効にする必要があります。 詳細については、「GitHub Connect を有効にする」を参照してく� さい。
- また、your GitHub Enterprise Server instanceに対して 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 システ� に CodeQL CLI をインストールする」を参照してく� さい。
CodeQL runnerを使って code scanning を実行する
メモ: CodeQL runnerは非推奨になっています。 GitHub Enterprise Server 3.0 以降では、CodeQL CLI バージョン 2.6.3 をインストールして、CodeQL runnerを置き換えることができます。
詳しくは、「CodeQL ランナーの非推奨化」をご覧く� さい。 CodeQL CLI への移行については、「CodeQL ランナーから CodeQL CLI への移行」を参照してく� さい。
GitHub Actions を使用しない� �合は、CodeQL runnerを使って code scanning を実行できます。
CodeQL runnerは、サードパーティ CI/CD システ� に追� できるコマンドライン ツールです。 このツールは、GitHub リポジトリのチェックアウトに対して CodeQL 分析を実行します。 詳細については、「CI システ� で code scanning を実行する」を参照してく� さい。