我有一个GitHub操作,在这里我动态地检索一个AWS访问密钥ID &秘密访问密钥。我将它们设置为输出,然后将它们传递到我的下一步,将它们设置为环境变量,并调用我的操作。
- name: Set Terraform Output to GitHub Actions Output
id: terraformOutput
run: |
echo ::set-output name=codeDeployAccessKeyID::$(cat terraformOutput.json | jq -r . codeDeployAccessKeyID.value)
echo ::set-output name=codeDeploySecretAccessKey::$(cat terraformOutput.json | jq -r .codeDeploySecretAccessKey.value | base64 --decode | gpg -d -q)
- name: CodeDeploy
env:
AWS_ACCESS_KEY_ID: ${{ steps.terraformOutput.outputs.codeDeployAccessKeyID }}
AWS_SECRET_ACCESS_KEY: ${{ steps.terraformOutput.outputs.codeDeploySecretAccessKey }}
run: aws-code-deploy但是,当我查看GitHub操作的日志时,我可以看到纯文本中的AWS_SECRET_ACCESS_KEY环境变量。
这里一点也不安全。
在过去的项目中,当我使用GitHub操作秘密时,这些值将被编辑并替换为***。同样,这不是一个解决方案,因为秘密是可以改变的,我需要能够在行动中动态地把它们拉出来。
是否有一种方法可以编辑这些动态输出并以某种方式将它们标记为安全或敏感,从而允许它们作为环境变量传入,但没有在GitHub操作日志中显示?
发布于 2022-07-18 04:22:34
你可以用手把它伪装成
AWS_SECRET_ACCESS_KEY = "access-key"
echo "::add-mask::$AWS_SECRET_ACCESS_KEY"或者您可以使用@actions/core包GitHub提供给掩盖秘密
const core = require("@actions/core");
core.setSecret("access-key");发布于 2022-07-18 04:12:02
有一个用于操作Github操作机密的API。您可以为AWS创建虚拟秘密,并在第一步通过API更新它们,然后在下一步访问最新的秘密,就像访问静态秘密一样。
市场上有许多行动,已经为你这样做了,如GitHub动作秘密创造者,管理吉突的秘密或设定秘密行动
https://stackoverflow.com/questions/73016609
复制相似问题