AWS Amplify SNSRole 在尝试执行放大推送时出错



我的公司有一个Amplify项目,有2个不同的环境(prod,dev(,使用Cognito和一些lambda和api。一切都很好,直到我尝试执行amplify push命令来更新一个 lambda 函数。 以下是 AWS 控制面板上的 CloudFormation 的错误:

策略中的主体无效:"服务":"cognito-.amazonaws.com" (服务:亚马逊身份管理;状态代码:400;错误代码: 格式错误的策略文档;请求 ID: 169462d5-58fb-40af-9c2d-69178442ecd6(

这是amplify push输出的错误:

UPDATE_FAILED SNSRole
AWS::IAM::角色 2020 年 1 月 30 日星期四 13:46:08 GMT-0200(巴西利亚( 夏令时(策略中的主体无效: "服务":"cognito-.amazonaws.com"(服务:亚马逊身份管理; 状态代码:400;错误代码:格式错误的策略文档;请求 ID: 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: "*"

您是否检查了管理环境的 S3 存储桶的内容?我们遇到了类似的问题,我们发现尽管我们的本地 SNSRole 配置是正确的,但 S3 存储桶的 CloudFormation 模板文件很旧,并且仍然具有"cognito-.amazon..."。问题。

尝试在本地更改更正,然后推送到云,它将用正确的文件覆盖远程 CloudFormation 模板文件。

希望它能成功!

最新更新