使用 Pulumi 进行 GitHub 访问治理。
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
这是参加Pulumi 部署和文档挑战赛的作品:用 Pulumi 和 GitHub 发挥创意
介绍
大规模管理 GitHub 用户访问权限并非易事,尤其是在需要管理组织内多个代码库、团队和权限时。而当需要确保安全性和合规性时,挑战则更大。
Pulumi 正是为此而生。它是一款强大的基础设施即代码 (IaC) 工具,允许您使用熟悉的编程语言(例如 Python、TypeScript 和 Go)定义和实施访问策略。您无需手动管理权限,即可通过代码实现一切自动化,从而提高效率和可扩展性。
我开发的产品:自动化 GitHub 访问管理
该项目旨在创建一个全自动的简化权限管理系统,从而无需在 GitHub 界面中手动配置设置。
该解决方案允许您在一个简单的 YAML 文件中定义用户角色和存储库访问配置。Pulumi 结合 Python 和 GitHub Actions,可自动执行这些访问控制的配置和实施。
这种方法非常适合初创公司、企业、开源项目以及任何寻求轻松便捷、可扩展的 GitHub 访问管理解决方案的团队。
在线演示:项目设置与运行
注意: 请确保已安装 Pulumi。如果尚未安装,请参考 https://www.pulumi.com/docs/iac/download-install
按照以下步骤操作即可查看项目运行效果:
第一步:克隆代码库
git clone https://github.com/Ajanhari/pulumi-github-access-governance.git
cd pulumi-github-access-governance
步骤 2:设置 Pulumi 并安装依赖项
pip install pulumi pulumi-github pyyaml
步骤 3:为您的 GitHub 组织配置 Pulumi
# Login to Pulumi locally
pulumi login --local
# Set GitHub Personal Access Token (Replace with actual token)
pulumi config set --secret githubToken "<YOUR_GITHUB_PERSONAL_ACCESS_TOKEN>"
# Initialize a new Pulumi stack named "dev"
pulumi stack init dev
# Set GitHub organization/owner (Replace 'YourOrgName' with your actual org)
pulumi config set github:owner "YourOrgName"
# Set GitHub API Base URL
pulumi config set github:baseUrl "https://api.github.com"
注意:请将 `<yourOrgName>` 替换为您的实际 GitHub 个人访问令牌。请将此令牌视为机密信息并妥善保管。请将 `<yourOrgName>` 替换为您的 GitHub 组织名称。
步骤 4:修改users.yaml以分配角色
修改 users.yaml 文件以定义角色并将用户分配给存储库。
repositories:
repo1:
admin:
- Ajanthan
- Sachin
maintain:
- maintainer1
write:
- Varun
- dev2
triage: []
read: []
repo2:
admin:
- Ajanthan
- Sachin
write:
- Varun
步骤 5:部署变更
pulumi up --yes
步骤 6:在 GitHub 上验证
请检查您的 GitHub 仓库设置,以确认访问权限已更新。
步骤 7:使用 GitHub Actions 实现自动化
将更新后的users.yaml文件推送到存储库,然后让 GitHub Actions 处理配置。
git add users.yaml
git commit -m "Updated user roles"
git push origin main
GitHub Actions 将自动应用这些更改。
项目仓库
https://github.com/Ajanhari/pulumi-github-access-governance
主要优势
集中式用户管理:在单个 YAML 文件中定义和管理所有访问权限。
自动化访问控制:无需手动配置,减少人为错误并节省时间。
可扩展性:旨在高效处理数百个代码库的访问管理。
合规性和安全性:利用 GitHub Actions 进行审计跟踪和日志记录,增强合规性和安全性。
结论
如果您希望简化跨多个代码库的 GitHub 访问权限管理,Pulumi 提供了一个强大而高效的解决方案。Pulumi 利用基础设施即代码 (IaC) 的原则,简化权限管理,增强可扩展性,并提高 GitHub 访问控制的可靠性。这种方法可以节省时间并降低风险,使您的团队能够专注于开发和创新。
如有任何疑问,请在评论区留言。我很乐意为您提供帮助。
注意:此代码已在 GitHub 企业版帐户中测试通过。
文章来源:https://dev.to/ajanthan_hr_c019bb2b72c79/github-access-governance-with-pulumi-4g7e