选择合适的身份验证方法
您应该选择适合您要完成的任务的身份验证方法。
- 要将 API 用于个人用途,您可以创建个人访问令牌。
- 要代表组织或其他用户使用 API,您应该创建一个 GitHub 应用。
- 要在 GitHub Actions 工作流程中使用 API,您应该使用内置的
GITHUB_TOKEN
进行身份验证。
有关更多信息,请参阅“关于 GitHub 的身份验证”。
限制凭据的权限
创建个人访问令牌时,仅选择所需的最小权限或范围,并设置令牌所需的最小有效期。GitHub 建议您使用细粒度个人访问令牌,而不是个人访问令牌(经典版)。有关更多信息,请参阅“管理您的个人访问令牌”。
创建 GitHub App 时,请选择 GitHub App 所需的最小权限。有关更多信息,请参阅“创建 GitHub App 的最佳实践”。
在 GitHub Actions 工作流程中使用 GITHUB_TOKEN
进行身份验证时,仅提供所需的最小权限。有关更多信息,请参阅“自动令牌身份验证”。
安全存储您的身份验证凭据
将身份验证凭据视为您的密码或其他敏感凭据。
- 不要使用未加密的消息传递或电子邮件系统共享身份验证凭据。
- 不要在命令行中以纯文本形式传递您的个人访问令牌。有关更多信息,请参阅“管理您的个人访问令牌”。
- 不要将未加密的身份验证凭据(如令牌或密钥)推送到任何存储库,即使存储库是私有的。相反,请考虑使用 GitHub Actions 密钥或 Codespaces 密钥。有关更多信息,请参阅“在 GitHub Actions 中使用密钥”和“管理您针对 GitHub Codespaces 的帐户特定密钥”。
- 您可以使用密钥扫描来发现推送到存储库的令牌、私钥和其他密钥,或阻止包含密钥的未来推送。有关更多信息,请参阅“关于密钥扫描”。
限制可以访问您的身份验证凭据的人员
不要与他人共享您的个人访问令牌。请考虑创建 GitHub 应用,而不是共享个人访问令牌。有关更多信息,请参阅“关于创建 GitHub 应用”。
如果您需要与团队共享凭据,请将凭据存储在安全的共享系统中。例如,您可以使用 1Password 安全地存储和共享密码,也可以将密钥存储在 Azure KeyVault 中,并使用您的 IAM(身份和访问管理)来管理访问权限。
如果您正在创建需要访问 API 的 GitHub Actions 工作流程,您可以将凭据存储在加密的密钥中,并从工作流程中访问加密的密钥。有关更多信息,请参阅“在 GitHub Actions 中使用密钥”和“在 GitHub Actions 工作流程中使用 GitHub 应用进行身份验证的 API 请求”。
在您的代码中安全地使用身份验证凭据
切勿将身份验证凭据(如令牌、密钥或与应用相关的密钥)硬编码到您的代码中。相反,请考虑使用密钥管理器,例如 Azure Key Vault 或 HashiCorp Vault。有关保护 GitHub 应用凭据的更多信息,请参阅“创建 GitHub 应用的最佳实践”。
在脚本中使用个人访问令牌时,请考虑将令牌存储为 GitHub Actions 密钥,并通过 GitHub Actions 运行您的脚本。您还可以将令牌存储为 Codespaces 密钥,并在 Codespaces 中运行您的脚本。有关更多信息,请参阅“在 GitHub Actions 中使用密钥”和“管理您针对 GitHub Codespaces 的帐户特定密钥”。
如果以上所有选项都不适用,您可以将身份验证凭据存储在 .env
文件中。请确保加密您的 .env
文件,并且不要将其推送到任何存储库。
准备补救计划
您应该制定一个计划,以便及时处理任何安全漏洞。如果您的令牌或其他身份验证凭据泄露,您需要
- 生成一个新的凭据。
- 将旧凭据替换为新凭据,无论您在何处存储或访问该凭据。
- 删除旧的受损凭据。
有关为 GitHub App 旋转受损凭据的信息,请参阅“创建 GitHub App 的最佳实践”。
有关创建和删除个人访问令牌的信息,请参阅“管理您的个人访问令牌”。