我目前面临与处理机密相关的 GitHub Actions 工作流程问题。我在我的存储库中添加了几个秘密作为环境变量,旨在允许一组选定的开发人员查看和验证这些值。但是,我担心这些秘密在工作流程日志中的可见性。
以下是我的设置的简要概述:
这是我的工作流程配置片段供参考:
jobs:
Setup:
name: Setup
runs-on: ubuntu-latest
steps:
- name: Validate and Apply Secrets
run: |
echo '${{ vars.REPO_SECRET }}' > secret.json
有没有办法防止这些秘密被打印在工作流程日志中?
您选择了“存储库(环境)变量”而不是“存储库(环境)秘密”,这是一个已添加的功能,允许通过使用(非秘密)变量选择退出所有秘密屏蔽。
environment: name
以及正确的名称,否则该值为空${{ vars.REPO_SECRET }}
替换为 ${{ secrets.REPO_SECRET }}
最后工作应该是这样的
jobs:
Setup:
name: Setup
runs-on: ubuntu-latest
steps:
- name: Validate and Apply Secrets
run: |
echo '${{ secrets.REPO_SECRET }}' > secret.json
同时仍允许指定开发人员访问。
***
echo '***' > secrets.json
考虑将秘密映射为这样的步骤环境变量,因为您的示例会中断并允许通过许多符号注入代码,包括
'
- name: Validate and Apply Secrets
run: |
echo "$REPO_SECRET" > secret.json
env:
REPO_SECRET: ${{ secrets.REPO_SECRET }}
不可能通过
::add-mask::
掩盖来自任何表达上下文的任何内容,就像您自己注意到的那样