AccessDenied для операции ListObjectsV2 для корзины S3 - PullRequest
0 голосов
/ 27 мая 2019

Во время GitlabCi я получил: «Неустранимая ошибка: произошла ошибка (AccessDenied) при вызове операции ListObjectsV2: доступ запрещен»

Моя политика сегмента:

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

}

В настройках gitlabCI установлено:

  • AWS_ACCESS_KEY_ID: YOUR-AWS-ACCESS-KEY-ID
  • AWS_SECRET_ACCESS_KEY: YOUR-AWS-SECRET-ACCESS-KEY4
  • 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

1 Ответ

1 голос
/ 27 мая 2019

Попытайтесь обновить свою политику корзины:

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

Надеюсь, вы понимаете, что это очень небезопасно.

...