18 GitHub Actions 中环境变量与秘密的安全性最佳实践

在上一篇中,我们深入探讨了环境变量与秘密的管理机制,以及如何在 GitHub Actions 中安全地存储和使用这些敏感信息。这一篇将围绕安全性最佳实践展开,帮助你在使用环境变量和秘密时最大限度降低安全风险。

理解安全性的重要性

在软件开发中,尤其是在 CI/CD 流程中,保持环境变量和秘密的安全性至关重要。泄露的 API 密钥、数据库密码或其他敏感信息可能导致数据泄露或服务中断。因此,我们需要采取一系列措施确保这些信息的安全性。

安全性最佳实践

1. 使用 GitHub Secrets 存储敏感信息

GitHub 提供了 Secrets 功能,专门用于安全存储敏感信息。在你的 GitHub 仓库中,你可以按照以下步骤添加秘密:

  1. 在你的仓库页面中,点击“Settings”。
  2. 在左侧菜单中选择“Secrets and variables”。
  3. 再选择“Actions”。
  4. 点击“New repository secret”来添加新的秘密。

一旦添加,你可以在 Actions 工作流程中安全地引用这些秘密。例如,假设你有一个名为 MY_SECRET 的秘密,可以在工作流程中使用:

1
2
3
steps:
- name: Use a secret
run: echo "${{ secrets.MY_SECRET }}"

注意: 确保不要直接在日志中打印秘密,这可能会导致信息泄露。

2. 限制访问权限

在设置秘密时,确保只对需要使用这些秘密的人员和工作流程授予访问权限。GitHub 允许你为团队成员设置不同的访问级别,确保只有授权人员能够访问这些敏感信息。

此外,考虑使用 Environment 来部署只在特定工作流程中需要的秘密。将秘密绑定到特定环境中,有助于减少潜在的安全风险。

3. 避免在代码中硬编码敏感信息

尽量避免在代码中直接硬编码敏感信息。这不仅会增加敏感信息被泄露的风险,也会使得代码难以维护。

例如,下面的示例展示了一个不安全的做法:

1
const apiKey = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc'; // 不推荐

相反,使用环境变量或秘密来存储这些信息:

1
const apiKey = process.env.API_KEY; // 推荐

4. 定期审查与轮换秘密

为了提高安全性,应定期审查和轮换秘密。即使秘密在某个时刻是安全的,也不能保证它会一直安全。因此,定期更新秘密是一种有效的实践。

你可以通过 GitHub 的 API 或 CLI 工具自动化此过程。例如,使用 GitHub CLI 更新秘密:

1
gh secret set MY_SECRET -b"new_secret_value"

5. 监控和审计使用情况

定期监控和审计秘密的使用情况是维护安全性的重要环节。确保设置合适的监控机制,并检查是否有任何异常的访问或使用活动。

GitHub 提供了丰富的审计日志功能,帮助你追踪对秘密的访问和使用情况。在设置秘密后,定期检查审计日志,可以帮助你发现潜在的安全隐患。

6. 参考文档与社区资源

GitHub 官方文档提供了详尽的信息,确保你熟悉所有最佳实践,并遵循安全性指导方针。参考链接如下:

小结

安全使用环境变量和秘密是确保 GitHub Actions 工作流程安全的关键。通过运用上述最佳实践,能有效降低信息泄露的风险。

在下一篇中,我们将深入探讨如何使用市场行动(Marketplace Actions)来扩展 GitHub Actions 的功能。希望这些安全性最佳实践能够在你自动化工作流的过程中提供帮助,一同守护你的项目安全!

18 GitHub Actions 中环境变量与秘密的安全性最佳实践

https://zglg.work/github-actions-zero/18/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论