Skip to main content

关于机密

了解在 GitHub Actions 中使用的机密。

Note

GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。

关于机密

借助密钥可以在组织、存储库或存储库环境中存储敏感信息。 机密是在组织、仓库或仓库环境中创建用于 GitHub Actions 工作流的变量。

仅当在工作流中显式包含机密时,GitHub Actions 才能读取机密。

命名您的密码

Tip

为帮助确保 GitHub 在日志中正确编写密码,请勿将结构化数据用作密码的值。

以下规则适用于密码名称:

  • 只能包含字母数字字符([a-z][A-Z][0-9])或下划线 (_)。 不允许空格。
  • 不得以 GITHUB_ 前缀开头。
  • 不能以数字开头。
  • 不区分大小写。
  • 在创建的仓库、组织或企业中必须是唯一的。

如果具有相同名称的机密存在于多个级别,则级别最低的机密优先。 例如,如果组织级别密码的名称与仓库级别的密码相同,则仓库级别的密码优先。 同样,如果组织、存储库和环境都具有同名的机密,则环境级机密优先。

在工作流中使用机密

Warning

如果在工作流作业中使用了机密,GitHub 会自动对输出到日志中的机密进行编辑。 应避免故意将机密输出到日志中。

组织级密码允许在多个仓库之间共享密码,从而减少创建重复密码的需要。 在一个位置更新组织密码还可确保更改在使用该密码的所有仓库工作流程中生效。

对于环境机密,可以启用所需的审阅者来控制对机密的访问。 在必要的审查者授予批准之前,工作流程作业无法访问环境机密。

为使机密用于操作,必须在工作流文件中将机密设置为输入或环境变量。 查看操作的自述文件以了解操作预期的输入和环境变量。 请参阅“GitHub Actions 的工作流语法”。

当工作流程运行排队时读取组织和仓库机密,在引用环境的作业开始时读取环境机密。

限制凭据权限

生成凭据时,建议尽可能授予最低的权限。 例如,请改为使用部署密钥或服务帐户,而不是使用个人凭据。 请考虑授予只读权限(如果这是所需的全部权限)并尽可能限制访问。

生成 personal access token (classic) 时,请选择所需的最小范围。 生成 fine-grained personal access token 时,请选择所需的最小权限和存储库访问权限。

请考虑使用 GitHub App(而不是使用 personal access token),它使用细粒度权限和短生存期令牌,类似于 fine-grained personal access token。 与 personal access token 不同,GitHub App 不绑定到用户,因此即使安装了该应用的用户离开组织,工作流仍将继续工作。 有关详细信息,请参阅“使用 GitHub Actions 工作流中的 GitHub App 发出经过身份验证的 API 请求”。

其他阅读材料