GitHub推出精细度个人访问权限强化存储库权限管理

GitHub的个人访问权限(Personal Access Token,PAT)将可配置更为精细的访问权限,使管理员可以细微地控制PAT权限,进而控制存储库访问,还能以政策控制访问组织资源的权限,并获得权限可见性。新的精细度PAT现在已可供GitHub.com上所有用户、组织和企业使用。

官方提到,企业资料泄露的第一大原因是凭证泄露。当前GitHub虽然有许多安全措施,避免开发人员和企业遭遇这类安全问题,像是以移动应用和支持webauthn,让开发人员更简单地采用2FA,并且在推送时替GitHub高端安全用户扫描机密资讯。

但是这些机制仍难以完全保护凭证,因此限制能够访问存储库和资料的用户,仅获得工作所需的最小访问权限就显得重要,GitHub现在的PAT只提供非常粗略的权限设置,包括授权用户访问所有存储库和组织的权限,而组织拥有者也几乎没有任何控制和可见性,因此为了要进一步提高开发人员和组织安全层级,GitHub加入了能够精细控制访问权限的新型PAT。

原本的PAT仍然存在并且受完全支持,只不过现在称为典型(Classic)个人访问权限,用户可获得广泛的读取和写入权限,可以访问所有的存储库和组织,无时效性永远存在,像是在私有存储库中,对存储库范围的所有资料获得永久访问权限。

而精细度PAT的权限相对更为限缩,整体权限具有50多项精细权限控件,这些权限控制限制用户对GitHub组织、用户和存储库API的访问,例如,管理员现在可以创建一个只能读取问题,但不能读取存储库的PAT。精细度PAT有时效,而且只能访问明确被授给访问权限的存储库和组织,可被配置只能访问组织中的单一存储库。

典型PAT不受组织和企业管理员控制,但精细度PAT提供组织更多控制权,在组织配置中的精细度PAT标签,组织拥有者可以选择准许开发人员访问组织中任一存储库,并且查看和撤销组织中的精细度PAT。另外,管理员还可以在政策标签中,对精细度PAT设置组织政策。

官方鼓励用户在所有适用之处使用精细度PAT,因为即便精细度PAT泄露,也能够最大程度降低攻击面。不过,部分功能还不能使用细度PAT,用户现在还需要使用典型PAT访问企业外组织,这代表开源和内部资源贡献,仍无法通过精细度PAT管理,且企业账户API集成,还是需要典型PAT或是oAuth应用程序。

而对于有长期自动化的需求,官方则是建议使用GitHub Actions或GitHub应用程序,GitHub应用程序提供与精细度PAT相同,具高度针对性的权限选项和管理员控制,并且与潜在离开公司和项目的个人用户无关。目前精细度PAT仅支持REST API,未来还会提供GraphQL支持。