Неразрешенные зависимости ресурсов [arn: aws: s3 ::: alberto313131 / *] в блоке ресурсов шаблона - PullRequest
1 голос
/ 14 апреля 2019

Я получаю сообщение об ошибке выше при попытке создать скрипт AWS CloudFormation через конструктор консоли. Я уверен, что ведро alberto313131 существует.

Вот полная ошибка:

Template contains errors.: Template format error: Unresolved resource dependencies [arn:aws:s3:::alberto313131/*] in the Resources block of the template

Это полный скрипт, который я использую:

Resources:
  S3BP1KK1X:
    Type: 'AWS::S3::BucketPolicy'
    Properties:
      Bucket: 
        Ref: "arn:aws:s3:::alberto313131/*"
      PolicyDocument: 
        Statement:
          - Sid: AddPerm
            Effect: Allow
            Principal: '*'
            Action:
              - "s3:GetObject"
            Resource:
              - "arn:aws:s3:::alberto313131/*"

Ответы [ 2 ]

2 голосов
/ 14 апреля 2019

Из CloudFormation S3 BucketPolicy doco

Свойства

Ковш

Имя корзины Amazon S3, к которой применяется политика.

Итак, вы просто указываете название группы, а не ARN.

Только для Resource внутри секции Statement PolicyDocument вы предоставляете ARN.

0 голосов
/ 14 апреля 2019

Мне удалось преодолеть мою проблему, используя логический идентификатор.

Resources:
  resbucket:
    Type: "AWS::S3::Bucket"
    Properties: 
      BucketName: "testathena44"
  resbucketpolicy:
    Type: "AWS::S3::BucketPolicy"
    Properties:
      Bucket: !Ref resbucket
      PolicyDocument:
        Statement:
          -
            Sid: "ABC123"
            Action:
              - "s3:GetObject"
            Effect: Allow
            Resource: !Join ["", ["arn:aws:s3:::", !Ref resbucket, "/*"]]
            Principal:
              AWS:
                - "*"
...