首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向用扩容cli创建的函数添加授权

向用扩容cli创建的函数添加授权
EN

Stack Overflow用户
提问于 2019-03-07 15:56:09
回答 1查看 650关注 0票数 1

我创建了一个lambda函数,将在我的React应用程序中创建的新用户添加到我的认知用户池中的一个组中。

我使用这是来自医生的指南来通过AppSync调用lambda函数。

现在,当我运行该函数时,会得到以下预期错误:

User:编校未被授权执行:认知-idp:AdminAddUserToGroup on resource: redacted

到目前为止,我已经将这个附加策略添加到CustomResources.json中的角色中:

代码语言:javascript
复制
{
  "PolicyName": "CognitoAuthLambdaFunction",
  "PolicyDocument": {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Action": ["cognito-idp:AdminAddUserToGroup"],
        "Resource": [
          {
            "Fn::Sub": [                        
              "arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:setUsersGroup-${env}",
              { "env": { "Ref": "env" } }
            ]
          }
        ]
      }
    ]
  }
}

如何动态地引用认知用户池,以便在env之间进行切换?

EN

回答 1

Stack Overflow用户

发布于 2019-03-07 16:35:29

我假设您在问题中给出的策略是Lambda执行策略,即在运行时传递给Lambda的策略。此策略将授权在Lambda中运行的代码调用给定的API列表。

如果我的假设是正确的,则策略中有一个错误,因为资源属性引用了您的Lambda函数本身(ARN以arn:aws:lambda开头),而它应该引用您希望授予访问权限的用户池(ARN应该从arn:aws:cognito-identity开始)。

请参阅https://docs.aws.amazon.com/cognito/latest/developerguide/resource-permissions.html

假设在同一个CloudFormation模板中创建了认知用户池,则可以使用Fn::GetAtt内在函数访问认知用户池ARN,如

代码语言:javascript
复制
{ "Fn::GetAtt" : [ "logical_resource_id_cognito_user_pool", "ARN" ] }

有关https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html资源类型上可用的属性,请参见AWS::Cognito::UserPool

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55047942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档