travis-ci - Travis CI 部署到 S3 存储桶不使用安全 key

标签 travis-ci

我有一个静态网站,每次向 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/

相关文章:

travis-ci - Travis 和矩阵组合

python - 为什么 TravisCI 找不到我的许可证文件?

java - Travis 部署一个 zip 而不是一个 jar

node.js - Karma 不会运行(socket.io 抛出错误)

github - TravisCI 中的链接构建

travis-ci - 如何使用 .travis.yml 取消 Travis 构建

.net - 为什么我的 F# 项目在本地构建但在 Travis 上失败?

javascript - Travis-CI 构建因 URL/散列模块依赖而失败

github - 有没有办法分阶段配置 Travis GitHub Pages 部署?

java - Travis Ci jdk_switcher 到自定义 java 安装