Travis CI部署到S3存储桶不使用安全密钥

时间:2017-08-08 20:21:38

标签: travis-ci

我有一个静态网站,我尝试使用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

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

我应该如何加入加密密钥?

1 个答案:

答案 0 :(得分:2)

Travic 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时不包括密钥