Бессерверная версия: [AWS] Невозможно создать ресурс роли с политикой.

Я изучаю, как использовать бессерверную структуру, и я нахожусь на этапе создания ролей, на которых будут выполняться некоторые конкретные функции, но облачная информация выдает ошибку, указывающую:

An error occurred: LambdaAdminRole - Unknown field Policies (Service: AmazonIdentityManagement; Status Code: 400; Error Code: MalformedPolicyDocument; Request ID: 07cb3916-78c5-11e9-b0f6-37c9c6cd9547).

В бессерверном режиме ресурс определяется следующим образом:

resources:
  Resources:
    LambdaAdminRole:
      Type: AWS::IAM::Role
      Properties:
        RoleName: ${self:service}-${self:provider.stage}-lambda-admin-role
        AssumeRolePolicyDocument:
          Version: '2017'
          Statement:
            - Effect: Allow
              Principal:
                Service:
                  - lambda.amazonaws.com
              Action: sts:AssumeRole
          Policies:
            - PolicyName: ${self:service}-${self:provider.stage}-lambda-cognito-admin-policy
              PolicyDocument:
                Version: '2017'
                Statement:
                  - Effect: Allow
                    Action:
                      - cognito-idp:ListUsersInGroup
                      - cognito-idp:ListUsers
                    Resource:
                      - 'Fn::Join':
                          - ':'
                          - - 'arn:aws:cognito-idp'
                            - ${self:provider.region}
                            - Ref: 'AWS::AccountId'
                            - 'userpool/*'

Разве это не правильный способ создания роли с бессерверным сервером? Я следовал примерам из документации без сервера: https://serverless.com/framework/docs/providers/aws/guide/iam/


person Oscar Reyes    schedule 17.05.2019    source источник


Ответы (2)


У вас неправильный отступ, атрибут Policies принадлежит Properties, а не AssumeRolePolicyDocument, как в вашем документе.

(удалить весь Policies раздел на один)

person Matus Dubrava    schedule 17.05.2019
comment
Это сработало, спасибо .. Но как ни странно ... это был измененный код копирования / вставки из бессерверной документации, он также дал мне ошибку о недопустимой версии политики, которую я, конечно, исправил, но еще раз спасибо. - person Oscar Reyes; 17.05.2019

Как указано в официальной документации Policies принадлежит Properties, а не AssumeRolePolicyDocument

person Sagar    schedule 19.05.2019