在GitlabCi期间,我得到了:
“严重错误:调用ListObjectsV2操作时发生错误(AccessDenied):访问被拒绝”

我的存储桶策略:

{
"Version": "2008-10-17",
"Statement": [
    {
        "Sid": "AllowPublicRead",
        "Effect": "Allow",
        "Principal": {
            "AWS": "*"
        },
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::BUCKET-NAME/*"
    }
]

}

在gitlabCI设置中设置:
  • AWS_ACCESS_KEY_ID:您的AWS-ACCESS-KEY-ID
  • AWS_SECRET_ACCESS_KEY:您的AWS SECRET-ACCESS-KEY
  • S3_BUCKET_NAME:YOUR-S3-BUCKET-NAME
  • DISTRIBUTION_ID:CLOUDFRONT-DISTRIBUTION-ID

  • 我的.gitlab-ci.yml
    image: docker:latest
    
    stages:
      - build
      - deploy
    
    build:
      stage: build
      image: node:8.11.3
    script:
      - export API_URL="d144iew37xsh40.cloudfront.net"
      - npm install
      - npm run build
      - echo "BUILD SUCCESSFULLY"
    artifacts:
       paths:
        - public/
    expire_in: 20 mins
    environment:
    name: production
    only:
       - master
    deploy:
      stage: deploy
      image: python:3.5
    dependencies:
       - build
    script:
      - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
      - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
      - export S3_BUCKET_NAME=$S3_BUCKET_NAME
      - export DISTRIBUTION_ID=$DISTRIBUTION_ID
      - pip install awscli --upgrade --user
      - export PATH=~/.local/bin:$PATH
      - aws s3 sync --acl public-read --delete public $S3_BUCKET_NAME
      - aws cloudfront create-invalidation --distribution-id
    $DISTRIBUTION_ID --paths '/*'
      - echo "DEPLOYED SUCCESSFULLY"
    
    environment:
       name: production
    only:
      - master
    

    最佳答案

    尝试将您的存储桶策略更新为:

    {
    "Version": "version_id",
    "Statement": [
        {
            "Sid": "AllowPublicRead",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::BUCKET-NAME",
                "arn:aws:s3:::BUCKET-NAME/*"
            ]
        }
    ] }
    

    希望您理解这是非常不安全的。

    关于amazon-s3 - S3存储桶的ListObjectsV2操作的AccessDenied,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56327291/

    10-13 05:23