GitHub Actions 是 GitHub 的集成持续集成和持续交付 (CI/CD) 平台,使开发团队能够自动化其工作流程,包括构建、测试和部署管道。
使用 GitHub Actions 的一个缺点是您的日志是公开的,任何拥有必要权限的人都可以访问它们。
为了防止敏感数 WhatsApp 号码 据在 GitHub Actions 日志中暴露,您应该使用加密的环境变量来安全地存储敏感数据。这些加密的环境变量被称为 GitHub Actions 机密。
本文向您展示如何使用
GitHub Actions 机密来 如何保证个人身份信息的安全 防止敏感信息出现在 GitHub Actions 日志中。
先决条件:
要遵循本教程:
确保您有一个 GitHub 帐户。
准备一个现有的 GitHub 存储库。对于本教程,您可以克隆演示存储库。
按照这些说明克隆演示存储库。
如何保护 GitHub Actions 日志
当您使用 GitHub Actions 创建工作流程时,任何访问您的存储库的人都可以查看日志,因此日志中不应包含敏感信息。但
是,您不能删除令牌、
密码和其他敏感信息:您需要它们来进 巴西商业名录 行测试并确保应用程序正常运行。
解决方案是使用 ::add-mask:: workflow 命令来隐藏它们,该命令用星号 (*) 代替敏感数据。
以下部分向您展示如何屏蔽日志。
如何屏蔽日志
首先,在文本编辑器中打开克隆的存储库。
在存储库的根目录中创建一个 .github/workflows/ 文件夹来存储工作流文件。然后在 .github/workflows 目录中创建一个名为 hide-secrets.yml 的新文件,并向其中添加以下代码:
名称:隐藏敏感信息
开启:推
工作:
打印秘密令牌:
运行于:ubuntu-latest
步骤:
– 名称:回显秘密
运行:echo“你的秘密令牌是verySecretToken”
提交您的更改并将其推送到您的 GitHub 存储库。更新后的 GitHub Actions 工作流程处于活动状态,每次进行新的更改时都会触发。
在 GitHub
上打开您的存储库并选择“操作”选项卡
来查看日志。工作流程应如下所示:
GitHub 中的工作流程预览屏幕
工作流程预览
查看工作流日志,您会发现日志中打印了字符串 verySecretToken。单击您的工作流程,然后单击活动名称(print-secret-token)以查看日志。它看起来应该是这样的:
用于检查 GitHub 操作日志的屏幕截图
查看 GitHub Actions 日志
要隐藏它,请使用::add-mask::命令,编辑 hide-secrets.yml 文件并向 print-secret-token 添加一个新密码:
名称:隐藏敏感信息
开启:推
工作:
打印秘密令牌:
运行于:ubuntu-latest
步骤:
– 名称:添加蒙版
运行:echo“::add-mask::verySecretToken”
– 名称:回显秘密
运行:echo“你的秘密令牌是verySecretToken”
您应该在开始时添加“添加掩码”步骤,因为只有在运行 ::add-mask:: 之后掩码才会生效。如果您在“添加掩码”步骤之前输入秘密 verySecretToken,它仍然会显示为未掩码。因此,为了确保值被屏蔽,必须尽早使用 ::add-mask::。
一旦您提交并将更改发布到 GitHub 存储库,verySecretToken 字符串将在日志中出现的任何位置被星号 (*) 替换:
打印秘密令牌文件的屏幕截图,其中箭头指向用星号掩盖的代码字。
使文本简单化
虽然这解决了掩盖问题,但却带来了新的问题。您的 verySecretToken 仍在工作流文件中,因此任何有权访问源代码的人都可以看到它。
纯文本屏蔽的另一个缺点是
仅屏蔽单词的一部分会隐藏该单词的所有实例。例如,以下句子:“编程很棒,但我最有效率的日子是我不编写程序的日子。”如果屏蔽“program”这个词,它不仅会隐藏句子末尾的单词,还会隐藏它出现的任何其他地方的单词,例如“programming”。
如果您尝试屏蔽一些纯文本,您将得到如下结果:
打印秘密令牌文件的屏幕截图,其中箭头指向两个用星号掩盖的代码字。
屏蔽纯文本的问题
在 GitHub Actions 日志中隐藏敏感数据的更好方法是使用 Gi 机密。