【问题标题】:Travis CI deploy to S3 bucket not working with secure keysTravis CI 部署到 S3 存储桶不使用安全密钥
【发布时间】:2018-01-16 13:25:38
【问题描述】:

我有一个静态网站,我正在尝试使用 Travis CI 将内容迁移到 S3 存储桶,每次我向 GitHub 提交更改时,我都在该存储桶中托管该网站。为了支持这一点,我有以下 .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 上的公共仓库中以纯文本形式保存了我的秘密。所以……这很糟糕。 Travis CI 有一个关于加密密钥的部分 (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

并以相同的方式使用输出。

我应该如何包含加密密钥?

【问题讨论】:

    标签: travis-ci


    【解决方案1】:

    Trvic CI 帮助中有关加密密钥 (https://docs.travis-ci.com/user/encryption-keys/) 的所有示例均采用以下形式:

    travis encrypt SOMEVAR="secretvalue"
    

    它声明加密密钥和值。因此,获取上述加密的输出并像上面一样使用它

    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 时不要包含密钥

    【讨论】:

      猜你喜欢
      • 2020-05-14
      • 1970-01-01
      • 2015-08-28
      • 2018-09-07
      • 2013-02-12
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多