Skip to main content

組織を保護するためのクイック スタート

Organizationをセキュアに保つために、いくつものGitHubの機能が利用できます。

この機能を使用できるユーザーについて

管理者 ロールを持つ組織の所有者、セキュリティ マネージャー、および組織メンバー

はじめに

組織所有者またはセキュリティ マネージャーは、GitHub のセキュリティ機能を使って、組織のコード、依存関係、シークレットを安全に保つことができます。 詳しくは、「GitHub セキュリティ機能」をご覧ください。

セキュリティのニーズは組織によって異なります。 特定の機能によって防がれたであろう脆弱性の影響を組織が受けている場合、または組織がコンプライアンス要件を満たすために機能が役に立つ場合は、機能を有効にすることが必要になる場合があります。

組織内の複数のリポジトリで同時にセキュリティ機能を有効にできます。 有効にする機能ごとに、組織のリポジトリ間に機能をロールアウトする方法を決める必要があります。 機能が異なれば、組織とその共同作成者に及ぼす影響も異なるため、機能ごとに影響を評価することが重要です。 次に例を示します。

  • 一部の機能では、特定の脆弱性について組織のメンバーに知らせる通知を生成できます。これらの通知の対象と関連性を確実にするため、機能を有効にする前に、メンバーに通知の設定をチェックするよう依頼することが必要な場合があります。 詳しくは、「通知を設定する」をご覧ください。
  • 機能によっては、有効にされたリポジトリごとのリソースを消費する可能性があります。 たとえば、プライベート リポジトリで code scanning を有効にすると、GitHub Advanced Security ライセンスが使われる可能性があります。また、リポジトリで code scanning 分析を実行すると、GitHub Actions または別の CI システムが使われます。

組織所有者は、"セキュリティ マネージャー" ロールをチームに割り当てることで、セキュリティ機能を有効または無効にするアクセス許可を特定のユーザーに付与できます。 セキュリティ マネージャーは、セキュリティ設定を構成し、組織全体のセキュリティ機能の使用状況を監視できます。 詳しくは、「Organizationでのセキュリティマネージャーの管理」をご覧ください。

機能の前提条件について

一部のセキュリティ機能には前提条件があります。 たとえば、Dependabot alerts は依存関係グラフの情報を使うため、Dependabot alerts を有効にすると、依存関係グラフが自動的に有効になります。

一部の機能は、GitHub Advanced Security を使い、リポジトリの機能として Advanced Security を有効にしている Enterprise のみが使用できます。 詳しくは、「GitHub Advanced Security について」をご覧ください。

Note

Enterprise は、GitHub Advanced Security を有効にできる organization を管理するポリシーを設定できます。 詳しくは、「エンタープライズのコード セキュリティと分析のためのポリシーの適用」をご覧ください。

リポジトリごとに個別に構成する必要がある機能がいくつかあります。 たとえば、リポジトリで Dependabot version updates を有効にするには、プロジェクトの依存関係に関する情報を検索する場所を指定する dependabot.yml ファイルを追加する必要があります。 詳しくは、「Dependabot のバージョン アップデートの設定」をご覧ください。

組織でセキュリティ機能を有効にする

セキュリティ機能を有効にすることを決めたら、次のステップは、組織全体にその機能をロールアウトする方法を決めることです。

  • 機能をできるだけ速くロールアウトしたい場合は、対象となるすべてのリポジトリに対して一度に有効にできます。 詳しくは、「すべてのリポジトリで機能を有効にする」を参照してください。
  • 機能をロールアウトする速度と、どの機能をどのリポジトリで有効にするかを制御したい場合は、リポジトリを選んで機能を有効にできます。 詳しくは、「選択したリポジトリで機能を有効にする」を参照してください。

組織の既存のリポジトリで機能を有効にする方法を決めたら、将来組織で作成される新しいリポジトリを処理する方法も決める必要があります。 詳しくは、「新しいリポジトリで機能を有効にする」を参照してください。

大規模な organization または Enterprise 全体にセキュリティ機能をロールアウトするための戦略の作成の詳細については、「GitHub Advanced Security の大規模な導入の概要」を参照してください。

すべてのリポジトリで機能を有効にする

セキュリティ機能を最も短時間でロールアウトする方法は、組織内のすべてのリポジトリに対して一度に有効にすることです。 機能の重要なニーズが明らかになっている場合は、すべてのリポジトリでそれを有効にすると、作業を止めてロールアウト計画を立てる必要がなく、組織全体に保護が提供されます。

すべてのリポジトリで機能を有効にする前に、このアクションによる影響を考慮する必要があります。 機能の影響がわからない場合は、限られたリポジトリを選んで機能を有効にすることから始めるのが最も安全です。 次の状況では、すべてのリポジトリで一度に機能を有効にするのが適切なオプションである可能性があります。

  • 組織内のすべてのリポジトリの概要がわかっていて、それらのすべてが特定の機能の恩恵を受けることが確実である。
  • 機能に GitHub Advanced Security ライセンスまたは GitHub Actions 分などのリソースが必要な場合は、必要になるリソースは評価済みであるため、作業を進めることができます。
  • 機能が通知または pull request を生成する場合、それが受け取るメンバーやレビューする必要があるメンバーを対象としたもので、関連性があることが確実である。

続ける準備ができたら、次の手順のようにして、すべてのリポジトリで機能を有効にします。

  1. GitHub で、organization のメイン ページに移動します。

  2. 組織名の下で、 [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。

  3. 左側のサイドバーで、 [コードのセキュリティと分析] をクリックします。

  4. 有効にする機能を見つけ、関連付けられているチェック ボックスを使用してオプションを微調整します。

  5. 機能がサポートされている組織内のすべてのリポジトリで機能を有効にする準備ができたら、機能の名前の横にある [すべて有効にする] をクリックします。

[すべて有効にする] をクリックすると、選択を確認するメッセージが表示されます。 また、その機能が別の機能に依存しているか、GitHub Advanced Security を必要とするかどうかも示されます。 詳しくは、「組織のセキュリティおよび分析設定を管理する」をご覧ください。

選択したリポジトリで機能を有効にする

状況によっては、機能を必要とするリポジトリを特定して選択し、それらのリポジトリに対してだけ機能を有効にする方がよい場合があります。

機能の影響がわからない場合は、すべてのリポジトリで機能を有効にする前に、限られたリポジトリを選んで機能をテストするか、複数のフェーズで機能を段階的にロールアウトすることができます。 また、組織内の一部のリポジトリでは、他とは異なる機能セットが必要であることが、分かっている場合もあります。

"セキュリティ カバレッジ" ビューを使って、特定の機能を必要とするリポジトリを特定した後、それらのリポジトリについて機能を有効にできます。 次の手順では、"セキュリティ カバレッジ" ビューを見つける方法について説明します。

  1. GitHub で、organization のメイン ページに移動します。

  2. 組織名の下で、 [ セキュリティ] をクリックします。

    組織の水平ナビゲーション バーのスクリーンショット。 盾のアイコンと [セキュリティ] というラベルのタブが、濃いオレンジ色の枠線で囲まれています。

  3. サイドバーの [カバレッジ] をクリックします。

このビューでは、チェックボックスを使って特定のリポジトリを選ぶか、検索バーを使って機能を有効にするリポジトリを見つけることができます。 たとえば、フィルターを使って、特定のチームが書き込みまたは管理者アクセス権を持つリポジトリを識別したり、同じレベルの保護を必要としないリポジトリ (テスト リポジトリや、内部ドキュメント用のリポジトリなど) を除外したりできます。 その後、選んだすべてのリポジトリで機能を一度に有効にすることができます。 詳しくは、「複数のリポジトリでセキュリティ機能を有効にする」をご覧ください。

GitHub Advanced Security のライセンス数が限られている場合は、不可欠なプロジェクトを含む、またはコミット頻度が最も高いリポジトリを優先することができます。 「GitHub Advanced Security の課金について」を参照してください。

Note

  • code scanning の既定のセットアップを有効にしても、選択されたリポジトリの高度なセットアップの既存の構成は オーバーライドされません が、既定のセットアップの既存の構成は オーバーライドされます
  • secret scanning の "アラート" を有効にすると、信頼度の高いアラートが有効になります。 プロバイダー以外のアラートを有効にする場合は、リポジトリ、組織、またはエンタープライズ設定を編集する必要があります。 アラートの種類の詳細については、サポートされているシークレットに関する記事を参照してください。

新しいリポジトリで機能を有効にする

組織で作成されるすべての新しいリポジトリで、セキュリティ機能を自動的に有効にすることを選択できます。 新しいリポジトリで機能を有効にすると、リポジトリがすぐに保護され、可能な限り速やかにリポジトリ内の脆弱性が識別されます。 ただし、セキュリティ機能を可能な限り効率的に使用するには、新しい各リポジトリを個別に確認する方がよい場合があります。

  1. GitHub で、organization のメイン ページに移動します。

  2. 組織名の下で、 [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。

  3. 左側のサイドバーで、 [コードのセキュリティと分析] をクリックします。

  4. 機能の名前の下で、該当する将来のリポジトリで機能を自動的に有効にするオプションを選びます。

    [コードのセキュリティと分析] ページのスクリーンショット。 [Dependabot alerts] の下にある、新しいリポジトリでアラートを有効にするチェックボックスがオレンジ色の枠線で囲まれています。

セキュリティ機能の影響を監視する

機能を有効にしたら、組織のリポジトリ管理者と共同作成者に連絡し、機能の影響を評価する必要があります。 リポジトリ レベルで一部の機能の構成を調整したり、組織全体のセキュリティ機能の分散を再評価したりすることが必要な場合があります。 また、機能によって生成されるセキュリティ アラートと、これらのアラートに対するメンバーの応答も、監視する必要があります。

セキュリティの概要を使用して、セキュリティ アラートの影響を受けるチームとリポジトリを確認し、重大度別のアラートの内訳を確認できます。 詳しくは、「コードのセキュリティ リスクを評価する」をご覧ください。

セキュリティの概要にはダッシュボードもあり、高いレベルで傾向とメトリックを調べることで、組織のセキュリティ状況に関する分析情報を取得できます。 詳しくは、「セキュリティの分析情報の表示」をご覧ください。

さまざまなツールを使って、組織のメンバーがセキュリティ アラートに応答して実行しているアクションを監視できます。 詳しくは、「セキュリティ アラートの監査」をご覧ください。

次のステップ

ユーザーがセキュリティの脆弱性を報告するのに役立つよう、独自のセキュリティ ポリシーを持たない組織のパブリック リポジトリに表示される、デフォルトのセキュリティ ポリシーを作成できます。 詳しくは、「既定のコミュニティ正常性ファイルの作成」をご覧ください。

組織のセキュリティ設定が整ったら、ユーザーがリポジトリのセキュリティ設定を変更できないようにすることができます。 エンタープライズ所有者は、リポジトリ管理者がリポジトリの機能を有効または無効にできないようにすることができます。 詳しくは、「エンタープライズのコード セキュリティと分析のためのポリシーの適用」をご覧ください。

GitHub Actionsを使用する場合、GitHubのセキュリティ機能を使用して、ワークフローのセキュリティを強化できます。 詳しくは、「GitHub のセキュリティ機能を使用して GitHub Actions の使用をセキュリティで保護する」をご覧ください。