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