致命错误:发生错误(SignatureDoesNotMatch)

时间:2018-04-19 14:42:04

标签: amazon-s3 gitlab gitlab-ci

我正在尝试使用GitLabs DevOps功能来构建,测试和部署Vue.js应用程序到S3。我可以在我的本地机器上部署应用程序。但是当设置.gitlab-ci.yml文件以部署到S3时,我收到此错误。

  

致命错误:调用ListObjects操作时发生错误(SignatureDoesNotMatch):我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。   错误:作业失败:退出代码1

我的.gitlab-ci.yml文件就是这个......

variables:
    AWS_ACCESS_KEY_ID: "****"
    AWS_SECRET_ACCESS_KEY: “****”

build site:
    image: node:8.8.1
    stage: build
script:
    - npm install --progress=false
    - npm run build
artifacts:
    expire_in: 1 week
    paths:
        - dist

cache:
    paths:
        - node_modules/

all_tests:
    image: node:8.8.1
    stage: test
    script:
        - npm install
        - npm run test

deploy:
    environment: production
    image: python:latest
    script:
        - pip install awscli==1.11.89
        - aws s3 sync --acl public-read --delete dist/ s3://bucket

我的桶是公开的,也有此政策......

{
"Version": "2012-10-17",
"Id": "Policy1524147868577",
"Statement": [
    {
        "Sid": "****",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::bucket"
    }
]
}

我不知道为什么它在本地工作而不是在GitLab上工作。我正在学习这样做,我想做得对。如果您有任何关于我或其他任何可能阅读此内容的信息,请告诉我们。

提前致谢

1 个答案:

答案 0 :(得分:0)

确保正确粘贴秘密。我遇到了这个错误,因为当我从excel文件中复制秘密时,它会删除某些特殊字符。这对你来说可能类似。

同样,正如您所知,GitLab提供了一个很好的教程,可以在此安全地执行此操作:https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/