我有一个静态网站,每次向 GitHub 提交更改时,我都会尝试使用 Travis CI 将内容迁移到我托管该网站的 S3 存储桶。为了支持这一点,我有以下 .travis.yml 文件:
language: python
python: '2.7'
install: true
script: true
deploy:
provider: s3
access_key_id: XXXXX
secret_access_key: YYYYY
bucket: thug-r.life
skip_cleanup: true
region: us-east-1
local_dir: public
效果很好。但我在 GitHub 的公共(public)存储库中以纯文本形式保存了我的 secret 。所以……这很糟糕。 Travis CI 有一个关于加密 key 的部分( https://docs.travis-ci.com/user/encryption-keys/ ),我遵循了这一点。使用 CLI 工具
travis encrypt secret_access_key="YYYYY" --add
插入到我的文件底部
env:
global:
secure: ZZZZZ
所以我尝试修改我的原始文件,使其看起来像
deploy:
secret_access_key:
secure: ZZZZZ
但是 Travis CI 提示“我们计算的请求签名与您提供的签名不匹配。”
所以我尝试不带引号加密
travis encrypt secret_access_key=YYYYY --add
并以相同的方式使用输出。
我应该如何包含加密 key ?
最佳答案
Travic CI 帮助中有关加密 key ( https://docs.travis-ci.com/user/encryption-keys/ ) 的所有示例均采用以下形式:
travis encrypt SOMEVAR="secretvalue"
它声明对 key 和值进行加密。因此,获取上述加密的输出并像上面一样使用它
deploy:
secret_access_key:
secure: ZZZZZ
解密为
deploy:
secret_access_key: secret_access_key: YYYYY
这就是导致错误的原因。相反,我最终所做的有效的事情是:
travis encrypt "YYYYY" --add
并在 .travis.yml 文件中将其用作
deploy:
secret_access_key:
secure: ZZZZZ
最终被接受。
tl;dr 加密 secure_access_key 时不要包含 key
关于travis-ci - Travis CI 部署到 S3 存储桶不使用安全 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45577398/