GitHub を使用してソース管理リポジトリのアクセス許可を構成する

完了

GitHub リポジトリのアクセス許可を最適な方法で実装するには、コラボレーションの促進と、悪用や誤用からのコードベースの保護との間の適切なバランスを見つける必要があります。 GitHub では、きめ細かなアクセス制御がサポートされています。これにより、team は、データのプライバシー、セキュリティ、整合性を維持しながら、相互に効率的に対話することができます。

アクセス許可モデルは、GitHub アカウントの種類によって異なります。 個人および organization が作成できるアカウントには、次の 5 つの種類があります。

  • 個人アカウント向け GitHub Free: 個人向けの無料プラン。完全な機能セットを備えた無制限のパブリック リポジトリまたは制限付きの機能セット
    (issue や pull request など) を備えた無制限のプライベート リポジトリでの無制限のコラボレーターなどが含まれています。
  • GitHub Pro: プロの開発者向け。無制限のパブリックおよびプライベート リポジトリ、無制限のコラボレーター、高度なコード レビュー ツールなどが含まれています。
  • organization 向け GitHub Free: organization 向けの無料プラン。完全な機能セットを備えた無制限のパブリック リポジトリまたは機能セットが制限された無制限のプライベート リポジトリでの無制限のコラボレーターなどが含まれています。 organization 向け GitHub Free では、個人アカウント向け GitHub Free で使用できる機能に加えて、1 か月あたりの GitHub Actions の分数の上限が増加され、より多くの GitHub Packages ストレージが提供されます。
  • GitHub Team: team 向け。GitHub Pro のすべての機能に加えて、team およびユーザーのアクセス許可、コード レビュー ツール、プライベート リポジトリの高度なツールと機能などが含まれています。
  • GitHub Enterprise: enterprise レベルの organization 向け。GitHub Team のすべての機能に加えて、enterprise レベルのセキュリティ機能 (シングル サインオン、監査ログ、コンプライアンス制御など) が含まれています。 このプランはセルフホステッドであり、オンプレミスまたはクラウド環境 (GitHub Enterprise Cloud) で実行できます。

個人アカウント向け GitHub Free のリポジトリ アクセス許可

個人用アカウント向け GitHub Free:パブリック リポジトリの場合、誰でもリポジトリを表示およびフォークできます。 プライベート リポジトリの場合、リポジトリ所有者は、リポジトリにアクセスして貢献できるユーザーを完全に制御でき、最大 3 人の共同作成者を許可できます。 所有者は 1 人に限られるため、所有権アクセス許可を別の個人用アカウントと共有することはできません。 さらに、プライベート リポジトリでは、リポジトリ所有者がコラボレーターに付与できるのは、書き込みアクセス権限のみです。 つまり、コラボレーターには、個人用アカウントによって所有されているリポジトリへの読み取り専用アクセス権限はありません。

GitHub Pro のリポジトリ アクセス許可

GitHub Pro には、個人用アカウント向け GitHub Free と同じレベルのすべてのリポジトリ アクセス許可に加えて、保護されたブランチやコード所有者などのより高度なコラボレーション機能が含まれています。

organization 向け GitHub Free のリポジトリ アクセス許可

organization 向け GitHub Free には、team を作成する機能が含まれており、さまざまなアクセス許可レベルで特定のリポジトリへのアクセス権限を付与できます。 team には、書き込みアクセス権限または管理者アクセス権限を付与することができます。また、カスタム役割を作成して、さまざまなユーザーまたはグループに特定のアクセス許可を付与することもできます。

organization 内のユーザーの既定の非管理者ロールは、organization メンバーです。 既定では、organization メンバーには、リポジトリを作成する機能など、いくつかのアクセス許可が付与されます。

その他の organization ロールには、リポジトリに対する次のような昇格されたアクセス許可が付与されます。

  • organization モデレーター: organization で所有されるパブリック リポジトリ内のコメントの非表示。
  • セキュリティ マネージャー: organization 内のすべてのリポジトリの読み取り。
  • 所有者: コラボレーターの追加、リポジトリへの書き込み、リポジトリの削除など、リポジトリ関連のすべてのアクセス許可。

organization 所有者は、organization のすべてのメンバーがその organization のいずれかのリポジトリにアクセスするときに適用される基本アクセス許可を設定できます。 基本アクセス許可は、外部コラボレーターには適用されません。 個々のリポジトリに対してより高いレベルのアクセス権限を付与すると、基本アクセス許可はオーバーライドされます。

リポジトリへのカスタマイズされたアクセス権限を実装するには、組み込みのリポジトリ ロールを organization メンバーと外部コラボレーターに割り当てます。 これらのロールには、次のものがあります。

  • 読み取り:コード共同作成者ではないが、リポジトリの内容を確認できる必要があるユーザーに推奨されます。
  • トリアージ:issue、ディスカッション、pull request を予防的に管理する必要があるが、書き込みアクセス権限は不要な共同作成者に推奨されます。
  • 書き込み:プロジェクトに積極的にプッシュする共同作成者に推奨されます。
  • 保守:リポジトリを管理する必要があるが、機密または破壊的なアクションへのアクセス権限は不要なプロジェクト マネージャーに推奨されます。
  • 管理者:セキュリティの管理やリポジトリの削除などの機密および破壊的なアクションなど、完全な特権を必要とするユーザーに推奨されます。

GitHub Team のリポジトリ アクセス許可

GitHub Team には、organization 向け GitHub Free と同じレベルのすべてのリポジトリ アクセス許可に加えて、team のサポートと、承認される IP 範囲や enterprise レベルの認証などのより高度なセキュリティ機能が含まれています。 team は、organization メンバーのグループです。 organization 所有者と team メンテナは、リポジトリに対するアクセス許可を team に付与できます。

GitHub Enterprise Cloud のリポジトリ アクセス許可

GitHub Enterprise Cloud は、enterprise レベルの organization 向けに設計されており、GitHub Team のすべての機能に加えて、

シングル サインオン、監査ログ、コンプライアンス制御などの enterprise レベルの機能が含まれています。 GitHub Enterprise Cloud では、ブランチ レベルでアクセス許可を管理する機能など、リポジトリ アクセス許可の非常にきめ細かな制御がサポートされています。organization 所有者はカスタム ロールを作成して、組み込みの読み取り、トリアージ、書き込み、保守、管理者ロールで使用できるアクセス許可よりもきめ細かなアクセス許可を付与することができます。