# リポジトリを保護するためのクイック スタート

コードへのアクセスを管理します。 脆弱なコードと依存関係を自動的に見つけて修正します。

## 概要

このガイドは、リポジトリでのセキュリティ機能の設定方法を紹介します。

セキュリティの要件はリポジトリに固有のものなので、リポジトリですべての機能を有効化する必要はないかもしれません。 詳しくは、「[GitHubセキュリティ機能](/ja/code-security/getting-started/github-security-features)」をご覧ください。

一部の機能は、すべてのプランのリポジトリに使用できます。 GitHub Secret Protection, GitHub Code Security, or GitHub Advanced Security を使う organization や Enterprise は、その他の機能を使用できます。 GitHub Advanced Security 機能は、GitHub 上のすべてのパブリック リポジトリでも有効になります。 詳しくは、「[GitHub Advanced Security について](/ja/get-started/learning-about-github/about-github-advanced-security)」をご覧ください。

## リポジトリへのアクセスの管理

リポジトリを保護するための最初の手順は、誰がコードを表示および変更できるかを確立することです。 詳しくは、「[リポジトリの設定と機能の管理](/ja/repositories/managing-your-repositorys-settings-and-features)」をご覧ください。

リポジトリのメイン ページで、\[**設定<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-gear" aria-label="gear" role="img"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path></svg>**] をクリックし、\[危険ゾーン] まで下にスクロールします。

* リポジトリを表示できるユーザーを変更するには、 **\[可視性の変更]** をクリックします。 詳しくは、「[リポジトリの可視性を設定する](/ja/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility)」をご覧ください。
* リポジトリにアクセスできるユーザーを変更し、権限を調整するには、 **\[アクセスの管理]** をクリックします。 詳しくは、「[リポジトリへのアクセス権を持つ Team と人を管理する](/ja/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository)」をご覧ください。

## 依存関係グラフの管理

リポジトリ管理者は、リポジトリに対して依存関係グラフを有効または無効にすることができます。 依存関係グラフは、依存関係を識別するために、リポジトリ内のマニフェストとロック ファイルを解釈します。

1. リポジトリのメインページから<c1>設定<c0 />をクリックします。
2. \[ **Advanced Security**] をクリックします。
3. 依存関係グラフの横にある **\[有効化]** または **\[無効化]** をクリックします。

詳しくは、「[リポジトリの依存関係を調べる](/ja/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository#enabling-and-disabling-the-dependency-graph)」をご覧ください。

## 管理 Dependabot alerts

Dependabot alerts は、 GitHub が脆弱性を持つ依存関係グラフ内の依存関係を識別するときに生成されます。
任意のリポジトリに対して Dependabot alerts を有効にすることができます。

さらに、Dependabot 自動トリアージ ルール を使用してアラートを大規模に管理できるため、アラートを自動的に閉じたりスヌーズしたりして、pull requestを開く Dependabot アラートを指定できます。 さまざまな種類の自動トリアージ ルールと、リポジトリが適格かどうかについては、「[Dependabot 自動優先順位設定ルール](/ja/code-security/dependabot/dependabot-auto-triage-rules/about-dependabot-auto-triage-rules)」を参照してください。

Dependabot によって提供されるさまざまな機能の概要と、開始方法の手順については、「[Dependabot クイックスタート ガイド](/ja/code-security/getting-started/dependabot-quickstart-guide)」を参照してください。

1. プロファイル写真をクリックし、 **\[設定]** をクリックします。
2. \[ **Advanced Security**] をクリックします。
3. \*\*
   \*\*の横にある Dependabot alertsクリックします。

詳細については、 [Dependabot alerts](/ja/code-security/dependabot/dependabot-alerts/about-dependabot-alerts) および [セキュリティと分析機能の管理](/ja/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/managing-security-and-analysis-settings-for-your-personal-account)
を参照してください。

## 依存関係レビューの管理

依存関係レビューを使うと、Pull Requestがリポジトリにマージされる前に、Pull Request内での依存関係の変化を可視化できます。 詳しくは、「[依存関係の確認](/ja/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review)」をご覧ください。

依存関係の確認は、 GitHub Code Security 機能です。
依存関係グラフが有効になっているすべてのリポジトリに対して、依存関係の確認が有効になっています。
GitHub TeamでGitHub Enterprise CloudまたはGitHub Code Securityを使用する組織では、プライベート リポジトリと内部リポジトリの依存関係レビューを追加で有効にすることができます。

リポジトリの依存関係の確認を有効にするには、依存関係グラフが有効になっていることを確認します。

1. リポジトリのメインページから<c1>設定<c0 />をクリックします。
2. \[ **Advanced Security**] をクリックします。
3. Code Securityの右側にある \[**有効]** をクリックします。
4. Code Securityで、依存関係グラフがリポジトリに対して有効になっていることを確認します。

## 管理 Dependabot security updates

Dependabot alertsを使用するリポジトリでは、脆弱性が検出されたときにDependabot security updatesを有効にして、セキュリティ更新プログラムを使用してプル要求を発生させることができます。

1. リポジトリのメインページから<c1>設定<c0 />をクリックします。
2. \[ **Advanced Security**] をクリックします。
3. Dependabot security updatesの横にある \[**有効にする**] をクリックします。

詳細については、「[Dependabot セキュリティ アップデート](/ja/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates)」および「[Dependabot セキュリティの更新の構成](/ja/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates)」を参照してください。

## 管理 Dependabot version updates

依存関係を最新の状態に維持するために、Dependabot がプルリクエストを自動的に作成することができます。 詳しくは、「[Dependabot バージョン アップデート](/ja/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates)」をご覧ください。

1. リポジトリのメインページから<c1>設定<c0 />をクリックします。
2. \[ **Advanced Security**] をクリックします。
3. Dependabot version updatesの横にある **\[有効]** をクリックして、基本的な`dependabot.yml`構成ファイルを作成します。
4. 更新する依存関係および、すべての関連する構成オプションを指定したら、ファイルをリポジトリにコミットします。 詳しくは、「[Dependabot バージョンの更新の構成](/ja/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates#enabling-dependabot-version-updates)」をご覧ください。

## Code Security を構成する

> \[!NOTE]
> Code Security 機能は、すべてのパブリック リポジトリと、 GitHub Code Security または GitHub Advanced Securityを使用するチームまたは企業の一部である組織が所有するプライベート リポジトリで使用できます。

GitHub Code Security には、 code scanning、 CodeQL CLI 、 Copilot の自動修正のほか、コードベースの脆弱性を検出して修正するその他の機能が含まれています。

code scanningまたはサード パーティ製ツールを使用して、リポジトリに格納されているコードの脆弱性とエラーを自動的に識別するようにCodeQL 分析ワークフローを構成できます。 リポジトリ内のプログラミング言語に応じて、既定のセットアップを使用してcode scanningを使用してCodeQLを構成できます。GitHubは、スキャンする言語、実行するクエリ スイート、および新しいスキャンをトリガーするイベントを自動的に決定します。 詳しくは、「[コード スキャンの既定セットアップの構成](/ja/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)」をご覧ください。

1. リポジトリのメインページから<c1>設定<c0 />をクリックします。
2. サイドバーの「セキュリティ」セクションで、「 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield-lock" aria-label="shield-lock" role="img"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM9.5 6.5c0 .536-.286 1.032-.75 1.3v2.45a.75.75 0 0 1-1.5 0V7.8A1.5 1.5 0 1 1 9.5 6.5Z"></path></svg>Advanced Security**」をクリックします。
3. \[Code Security] または \[GitHub Advanced Security] がまだ有効になっていない場合は、\[ **有効]** をクリックします。
4. \[CodeQL 分析] の右側にある **\[セットアップ**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-triangle-down" aria-label="triangle-down" role="img"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg>] を選択し、\[ **既定値**] をクリックします。
5. 表示されるポップアップ ウィンドウで、リポジトリの既定の構成設定を確認し、\[**CodeQLを有効にする**] をクリックします。
6. Copilot の自動修正などの追加機能を有効にするかどうかを選択します。

既定のセットアップの代わりに、高度なセットアップを使用して、編集できるワークフロー ファイルを生成し、code scanningを使用してCodeQLをカスタマイズできます。 詳しくは、「[コード スキャンの詳細設定を構成する](/ja/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning#configuring-advanced-setup-for-code-scanning-with-codeql)」をご覧ください。

## Secret Protection を構成する

> \[!NOTE]
> Secret Protection 機能は、すべてのパブリック リポジトリと、 GitHub Secret Protection または GitHub Advanced Securityを使用するチームまたは企業の一部である組織が所有するプライベート リポジトリで使用できます。

GitHub Secret Protection には、 secret scanning とプッシュ保護のほか、リポジトリ内のシークレット リークの検出と防止に役立つその他の機能が含まれています。

1. リポジトリのメインページから<c1>設定<c0 />をクリックします。
2. \[ **Advanced Security**] をクリックします。
3. \[Secret Protection] または \[GitHub Advanced Security] がまだ有効になっていない場合は、\[ **有効]** をクリックします。
4. \[Secret scanning] オプションが表示されている場合は、\[ **有効]** をクリックします。
5. プロバイダー以外のパターンのスキャンやプッシュ保護など、追加機能を有効にするかどうかを選択します。

## セキュリティポリシーの設定

リポジトリの保守管理者であれば、リポジトリに `SECURITY.md` という名前のファイルを作成して、リポジトリのセキュリティ ポリシーを指定することをお勧めします。 このファイルは、ユーザーがリポジトリのセキュリティ脆弱性を報告したいときに、リポジトリの保守管理者と連絡を取って共同作業を行うにはどうすれば一番良いかを指示します。 リポジトリのセキュリティ ポリシーは、リポジトリの \[ **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality** ] タブから確認できます。

1. リポジトリのメイン ページで、 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality** をクリックします。
2. 左側のサイドバーの \[レポート] で、\[**セキュリティ ポリシー<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-law" aria-label="law" role="img"><path d="M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z"></path></svg>** クリックします。
3. **\[Start setup] (セットアップの開始)** をクリックします。
4. プロジェクトのサポートされているバージョンに関する情報と、脆弱性の報告方法に関する情報を追加してください。

詳しくは、「[リポジトリへのセキュリティ ポリシーの追加](/ja/code-security/getting-started/adding-a-security-policy-to-your-repository)」をご覧ください。

## 次のステップ

セキュリティの機能からのアラートを表示及び管理して、コード中の依存関係と脆弱性に対処できます。 詳しくは、「[Dependabot アラートの表示と更新](/ja/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts)」、「[依存関係の更新に関するPull Requestを管理する](/ja/code-security/dependabot/working-with-dependabot/managing-pull-requests-for-dependency-updates)」、「[リポジトリのコード スキャンのアラートの評価](/ja/code-security/code-scanning/managing-code-scanning-alerts/assessing-code-scanning-alerts-for-your-repository)」、「[シークレット スキャン アラートの管理](/ja/code-security/secret-scanning/managing-alerts-from-secret-scanning)」を参照してください。

GitHubのツールを使用して、セキュリティ アラートへの応答を監査することもできます。 詳しくは、「[セキュリティ アラートの監査](/ja/code-security/getting-started/auditing-security-alerts)」をご覧ください。

パブリック リポジトリにセキュリティの脆弱性がある場合は、セキュリティ アドバイザリを作成して、この脆弱性について非公開で話し合い、修正することができます。 詳細については、「[リポジトリ セキュリティ アドバイザリ](/ja/code-security/security-advisories/working-with-repository-security-advisories/about-repository-security-advisories)」および「[リポジトリ セキュリティ アドバイザリの作成](/ja/code-security/security-advisories/working-with-repository-security-advisories/creating-a-repository-security-advisory)」を参照してください。

GitHub Actionsを使用する場合、GitHubのセキュリティ機能を使用して、ワークフローのセキュリティを強化できます。 詳しくは、「[セキュリティで保護された使用に関するリファレンス](/ja/actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions)」をご覧ください。