Как я могу изменить свойства Bucket - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь написать политику сегмента, которая использует встроенную функцию! GetAtt для получения атрибутов блока, но я не уверен, как написать ее для нескольких сегментов.

Для отдельного сегмента без использования встроенной функции это что-то вроде:

            Effect: "Allow"
            Action: "s3:*"
            Resource: [
              "arn:aws:s3:::ExampleBucketName",
              "arn:aws:s3:::ExampleBucketName/*"
              ]

Я пытаюсь сделать это с помощью встроенной функции для нескольких сегментов, но я неправильно понимаю ее для части подкаталога. Как перейти в каталог / * с помощью! GetAtt?

Мой код выглядит так:

            Effect: "Allow"
            Action: "s3:*"
            Resource: [
              !GetAtt "ExampleBucketOne.Arn",
              !GetAtt "ExampleBucketOne.Arn"/"*",
              !GetAtt "ExampleBucketTwo.Arn",
              !GetAtt "ExampleBucketTwo.Arn"/"*"
               ]

Я знаю, что альтернативные вторые строки в разделе ресурсов, заканчивающиеся на / *, неверны, и поэтому я прошу помощи. Какой правильный путь?

Ответы [ 2 ]

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

Другой вариант - !Sub, который немного проще в использовании.

        Effect: "Allow"
        Action: "s3:*"
        Resource:
          - !Sub ${ExampleBucketOne.Arn}
          - !Sub ${ExampleBucketOne.Arn}/*
          - !Sub ${ExampleBucketTwo.Arn}
          - !Sub ${ExampleBucketTwo.Arn}/*
0 голосов
/ 21 апреля 2019

Вам нужно использовать объединение, чтобы добавить /* в конец.

!Join [ "", [ !GetAtt "ExampleBucketOne.Arn","/*" ] ]

Синтаксис выше просто не в моей голове, поэтому вам, возможно, придется проверить его дважды, ноосновной синтаксис:

!Join [ ":", [ a, b, c ] ]

, что приведет к:

a:b:c

Ссылка: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...