GitHub Advanced Security の機能とアラートの管理
プロジェクトのセキュリティが設定されたので、プロジェクトの GitHub Advanced Security 機能とアラートを監視および管理するだけで済みます。
このユニットでは、セキュリティの概要を使用して、プロジェクトのセキュリティ リスクを監視する方法について説明します。 このユニットでは、GitHub Advanced Security エンドポイントを使用して GitHub Advanced Security の機能とアラートを管理する方法についても説明します。
セキュリティの概要を使用する
セキュリティの概要は、組織とリポジトリの [ セキュリティ ] タブにあります。 これを使用すると、組織のセキュリティ状態の概要を把握したり、介入を必要とする問題のあるリポジトリを特定したりできます。
- 組織レベルでは、セキュリティの概要には、組織が所有するリポジトリの集計およびリポジトリ固有のセキュリティ情報が表示されます。 セキュリティ機能ごとに情報をフィルター処理することもできます。
- チーム レベルでは、セキュリティの概要には、チームが管理者特権を持つリポジトリのリポジトリ固有のセキュリティ情報が表示されます。
- リポジトリ レベルで、セキュリティの概要には、リポジトリに対して有効になっているセキュリティ機能が表示され、現在使用されていない使用可能なセキュリティ機能を構成するオプションが提供されます。
高レベルの対話機能と多数のフィルターにより、セキュリティの概要は、組織のセキュリティ状態の広範な分析と特定の分析の両方に役立ちます。 たとえば、GitHub Advanced Security を企業にロールアウトするときに、組織または特定のチームによる機能の導入を監視したり、それを使用して組織内のすべてのリポジトリで特定の種類と重大度レベルのすべてのアラートを確認したりできます。
GitHub Advanced Security エンドポイントを使用する
次の表では、セキュリティ強化機能ごとに使用できるエンドポイントと、そのドキュメントへのリンクについて説明します。
| 特徴 | エンドポイント | ドキュメント |
|---|---|---|
| コード スキャン | リポジトリからコード スキャン アラートを取得して更新します。 組織内のコード スキャン アラートの自動レポートを作成します。 オフライン コード スキャン ツールを使用して生成された分析結果をアップロードします。 |
コード スキャン API |
| シークレット スキャン | リポジトリのシークレット スキャンを有効または無効にします。 プライベート リポジトリからシークレット スキャン アラートを取得して更新します。 |
Repos API シークレット スキャン API |
| 依存関係の確認 | リポジトリの依存関係アラートと依存関係グラフを有効または無効にします。 リポジトリのセキュリティ修正プログラムを有効または無効にします。 依存関係情報を表示します。 |
Repos API GraphQL API |
GitHub Actions を使用してセキュリティ ワークフローを自動化する場合は、認証された API 呼び出しを行うために使用される GITHUB_TOKEN のアクセス許可を正しく設定することが重要です。
GITHUB_TOKENには、スコープに応じて既定のアクセス許可があります。
| スコープ | 既定のアクセス (制限なし) | 既定のアクセス (制限付き) | フォークされたリポジトリによる最大アクセス |
|---|---|---|---|
| アクション | 読み取り/書き込み | なし | 読み取り |
| チェック | 読み取り/書き込み | なし | 読み取り |
| 内容 | 読み取り/書き込み | 読み取り | 読み取り |
| デプロイ | 読み取り/書き込み | なし | 読み取り |
| 識別トークン | 読み取り/書き込み | なし | 読み取り |
| 問題 | 読み取り/書き込み | なし | 読み取り |
| メタデータ | 読み取り | 読み取り | 読み取り |
| パッケージ | 読み取り/書き込み | なし | 読み取り |
| pull-requests | 読み取り/書き込み | なし | 読み取り |
| リポジトリプロジェクト | 読み取り/書き込み | なし | 読み取り |
| セキュリティイベント | 読み取り/書き込み | なし | 読み取り |
| ステータス | 読み取り/書き込み | なし | 読み取り |
GITHUB_TOKEN のアクセス許可は、個々のワークフロー ファイルで変更できます。
GITHUB_TOKENの既定のアクセス許可が制限されている場合は、一部のアクションとコマンドを正常に実行できるようにアクセス許可を増やす必要がある場合があります。 既定のアクセス許可が許容されている場合は、ワークフロー ファイルを編集して GITHUB_TOKEN から一部のアクセス許可を削除できます。 優れたセキュリティ プラクティスとして、GITHUB_TOKEN に必要最小限のアクセス権を付与することをお勧めします。
また、ワークフロー ファイルの permissions キーを使用して、ワークフロー全体または個々のジョブの GITHUB_TOKEN のアクセス許可を変更することもできます。 このキーを使用すると、ワークフローまたはジョブに必要な最小限のアクセス許可を構成できます。
permissions キーを使用すると、メタデータ スコープを除き、すべての未指定のアクセス許可がアクセス権なしに設定され、常に読み取りアクセスが取得されます。
name: Create issue on commit
on: [ push ]
jobs:
create_commit:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Create issue using REST API
run: |
curl --request POST \
--url http(s)://[hostname]/api/v3/repos/${{ github.repository }}/issues \
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
--header 'content-type: application/json' \
--data '{
"title": "Automated issue for commit: ${{ github.sha }}",
"body": "This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**. \n\n The commit hash was: _${{ github.sha }}_."
}' \
--fail
前の例では、単一のジョブの 1 つのスコープに書き込みアクセス権が付与されています。
さらに、 permissions キーを使用して、フォークされたリポジトリの読み取りアクセス許可を追加および削除できますが、通常は書き込みアクセス権を付与できません。 この動作の例外は、GitHub Actions の設定で [ pull requests からワークフローに書き込みトークンを送信 する] オプションを選択した場合です。