GitHub Enterpriseでは、
- Enterprise
- Organization
- Repository
の3つの階層が存在し、それぞれに異なる権限が設定されています。本記事では、各階層における権限の違いを整理し、権限の適切な管理について解説します。

Enterpriseレベル

Enterpriseレベルでは、以下の3つの役割が定義されています。
- Enterprise Owner:
Enterprise全体の管理を行う最高権限者。ユーザー管理やポリシー設定を担当し、全体の運用を統括する。 - Enterprise Member:
Enterpriseに所属する一般メンバーです。 - Billing Manager:
Enterpriseレベルの請求情報の管理を担当し、支払い方法の設定や契約プランの変更を行う。
Enterpriseレベルの管理は、特に大規模組織において重要です。適切な管理者を配置し、組織のポリシーに沿った運用を行うことが求められます。

Roles in an enterprise - GitHub Enterprise Cloud Docs
Learn which roles you can assign to control access to your enterprise's settings and data.
Organizationレベル

OrganizationはEnterprise内に作成され、以下の役割が設定できます。
- Organization Owner:
Organization全体の管理を行い、メンバーの追加・削除、権限設定、セキュリティポリシーの適用などを担当する。Memberでもある。 - Organization Member:
Organizationに所属する一般メンバーであり、Organization Ownerの設定した権限の範囲内でリポジトリにアクセス可能。
Organization Role
さらに、Organization Memberには以下のOrganization Roleを付与できます。

- All-repository read:
Organization内のすべてのリポジトリの閲覧が可能。 - All-repository write:
Organization内のすべてのリポジトリへの書き込みが可能。 - All-repository triage:
IssueやPull Requestの管理が可能。 - All-repository maintain:
リポジトリのメンテナンス作業が可能。 - All-repository admin:
リポジトリの管理者権限。 - CI/CD Admin:
CI/CDに関連する権限を持つ。 - Security Manager:
セキュリティ関連の管理を担当。
さらに、カスタムロールを設定することも可能です。組織のニーズに応じて、特定の権限を組み合わせたカスタムロールを作成し、より柔軟な管理が可能になります。
組織の規模や開発プロセスに応じて適切なロールを設定することで、アクセス管理を強化し、効率的な運用が可能になります。

About custom organization roles - GitHub Enterprise Cloud Docs
You can control access to your organization's settings and repositories with custom organization roles.
Repositoryレベル

Organization内に作成されたリポジトリごとに、以下の権限を設定できます。
- Admin:
リポジトリの管理全般を行い、メンバーの追加や削除、設定の変更が可能。 - Maintainer:
リポジトリの維持管理が可能で、ブランチ保護や設定変更ができる。 - Write:
コードの書き込みが可能で、新規ファイルの追加や既存ファイルの変更が可能。 - Triage:
IssueやPull Requestの整理が可能で、ラベル付けやアサインの管理を担当。 - Read:
リポジトリの閲覧のみ可能で、コードの閲覧やIssueの作成・参照ができる。
リポジトリレベルの権限設定は、開発チームのコラボレーションに大きく影響します。適切なアクセス制御を行うことで、意図しない変更を防ぎ、スムーズな開発を支援できます。
似た記事になりますが、次の記事は組織内のRepository権限にフォーカスしています。
まとめ
GitHub Enterpriseでは、
- Enterpriseレベルでの管理者(Enterprise Owner)が全体の統括を行い、
- Organizationレベルでの管理者(Organization Owner)が組織ごとの権限を設定し、
- Repositoryレベルでの権限管理を行うことで、 適切なアクセス管理を実現できます。
リンク
それぞれの階層で適切な権限を設定し、管理の効率化を図りましょう。特に、
- Enterprise Ownerは全体のポリシーを決定し、セキュリティや管理方針を策定する
- Organization Ownerは組織内の開発体制に応じた権限設計を行う
- リポジトリレベルでは、開発者が適切に権限を持ち、業務を遂行できるように設定する
これらを意識することで、より強固でスムーズな運用が可能になります。
コメント