Использование AWS :: Region в ресурсах политики - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь динамически изменить имя ресурса s3 на основе текущей области стека формирования облака. Обновление стека Cloudformation без каких-либо ошибок. Я делаю что-то неправильно? Я ожидаю, что политика с {AWS :: Region} будет разрешена к us-east-1..

        Version: 2012-10-17
        Statement:
          - Sid: RestrictS3Access
            Effect: Allow
            Action:
              - 's3:GetObject'
            Resource:
              - !Sub "arn:aws:s3:::dnsa-${AWS::Region}test/${cognito-identity.amazonaws.com:sub}"
              - !Sub "arn:aws:s3:::dnsa-${AWS::Region}test/${cognito-identity.amazonaws.com:sub}/*"

Я ожидаю увидеть политику следующим образом. Я проверяю результаты с консоли aws.

{
"Version": "2012-10-17",
"Statement": [
    {
        "Action": [
            "s3:GetObject"
        ],
        "Resource": [
            "arn:aws:s3:::dnsa-us-east-1/${cognito-identity.amazonaws.com:sub}",
            "arn:aws:s3:::dnsa-us-east-1/${cognito-identity.amazonaws.com:sub}/*"
        ],
        "Effect": "Allow",
        "Sid": "RestrictS3Access"
    }

1 Ответ

0 голосов
/ 03 марта 2020

Если вы хотите, чтобы ${cognito-identity.amazonaws.com:sub} оставался неизменным, вам нужно экранировать его с помощью ${!}.

    Version: 2012-10-17
    Statement:
      - Sid: RestrictS3Access
        Effect: Allow
        Action:
          - 's3:GetObject'
        Resource:
          - !Sub "arn:aws:s3:::dnsa-${AWS::Region}test/${!cognito-identity.amazonaws.com:sub}"
          - !Sub "arn:aws:s3:::dnsa-${AWS::Region}test/${!cognito-identity.amazonaws.com:sub}/*"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...