У моей компании есть проект Amplify с 2 различными средами (prod, dev) с Cognito и несколькими лямбдами и apis. Все работало нормально, пока я не попытался выполнить команду amplify push
для обновления одной лямбда-функции. Вот ошибка из CloudFormation на панели инструментов AWS:
Недопустимый принципал в политике: «СЕРВИС»: «cognito-.amazon aws .com» (Сервис: AmazonIdentityManagement; Код состояния: 400 ; Код ошибки: MalformedPolicyDocument; Идентификатор запроса: 169462d5-58fb-40af-9c2d-69178442ecd6)
А вот ошибка с выхода amplify push
:
UPDATE_FAILED SNSRole
AWS :: IAM :: Роль Чт 30 января 2020 13:46:08 GMT-0200 (летнее время в Бразилии) Недопустимый принципал в политике: «СЕРВИС»: «cognito-.amazon aws .com» ( Сервис: AmazonIdentityManagement; Код состояния: 400; Код ошибки: MalformedPolicyDocument; Идентификатор запроса: 56f492a2-c40e-4827-8c53-07cdf44bc780)
Как видите, в файле формирования облаков есть ошибка Cognito, но есть текущая конфигурация SNSRole:
# BEGIN SNS ROLE RESOURCE
SNSRole:
# Created to allow the UserPool SMS Config to publish via the Simple Notification Service during MFA Process
Type: AWS::IAM::Role
Properties:
RoleName: !Ref roleName
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Sid: ""
Effect: "Allow"
Principal:
Service: "cognito-idp.amazonaws.com"
Action:
- "sts:AssumeRole"
Condition:
StringEquals:
sts:ExternalId: !Ref roleExternalId
Policies:
-
PolicyName: !Ref policyName
PolicyDocument:
Version: "2012-10-17"
Statement:
-
Effect: "Allow"
Action:
- "sns:Publish"
Resource: "*"