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 にアップロードします (「SARIF ファイルを GitHub にアップロードする」を参照)。
ライセンスに Advanced Security
が含まれているかどうかを確認する
GitHub高度なセキュリティライセンスを確認する。
code scanning の前提条件
-
GitHub Code Security または GitHub Advanced Security のライセンス (「GitHub Advanced Security ライセンスの課金」を参照してください)
-
管理コンソールで Code scanning が有効になっている (「エンタープライズに対して GitHub Advanced Security 製品を有効にする」を参照してください)
-
code scanning の分析を実行する VM またはコンテナー。
GitHub Actions を使用して code scanning を実行する
セルフホステッド ランナーのプロビジョニング
GitHub は、GitHub Actions ワークフローを使用して code scanning を実行できます。 まず、環境内に 1 つ以上のセルフホスト GitHub Actions ランナーをプロビジョニングする必要があります。 セルフホストランナーは、リポジトリ、Organization、または Enterprise アカウントレベルでプロビジョニングできます。 「セルフホステッド ランナー」と「自己ホストランナーの追加」を参照してください。
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.19 と GitHub Actions のランナーがインターネットにアクセスできる場合、このアクションは分析を実行するために必要な CodeQL 2.22.4 バンドルを自動的にダウンロードします。 または、同期ツールを使って、CodeQL 分析バンドルの最新のリリース バージョンをローカルで使用できるようにすることもできます。 後述する「インターネットアクセスのないサーバーで CodeQL 分析を構成する」を参照してください。
GitHub Connect を設定することで、code scanning のユーザがサードパーティのアクションを利用できるようにすることもできます。 後述する「アプライアンス用コードスキャンの構成」を参照してください。
インターネットアクセスのないサーバーで CodeQL 分析を設定する
インターネットに接続されていないサーバーで GitHub Enterprise Server を運用しており、ユーザーがリポジトリに対して CodeQL と code scanning を有効にしたい場合は、CodeQL アクション同期ツールを使って、GitHub.com からサーバーに CodeQL の分析バンドルをコピーする必要があります。 ツールとその使用方法の詳細は、https://github.com/github/codeql-action-sync-tool で手に入ります。
CodeQL アクション同期ツールを構成すると、それを使用して、CodeQL アクションの最新リリースと関連する CodeQL 分析バンドルを同期できます。 これらは GitHub Enterprise Server と互換性があります。
GitHub Actions を同期するために GitHub Connect を設定する
- GitHub.com からオンデマンドでアクションワークフローをダウンロードする場合は、GitHub Connect を有効にする必要があります。 「GitHub.com の GitHub Connect の有効化」を参照してください。
- また、GitHub Actions を有効にする必要もあります。 「GitHub Enterprise Server で GitHub Actions を開始する方法」を参照してください。
- 次のステップは、GitHub Connect を使用して、GitHub.com に対するアクションへのアクセスを設定することです。 「GitHub Connect を使用した GitHub.com アクションへの自動アクセスの有効化」を参照してください。
- セルフホストランナーをリポジトリ、組織、またはエンタープライズアカウントに追加します。 「自己ホストランナーの追加」を参照してください。
CodeQL CLI を使用して code scanning を実行する
GitHub Actions を使用しない場合は、CodeQL CLI を使用して code scanning を実行する必要があります。
CodeQL CLI は、サードパーティの CI/CD システムを含め、任意のマシン上でコードベースを分析するために使用するコマンド ライン ツールです。 「既存の CI システムでコード スキャンを使用する」を参照してください。