Mon*_*ffy 2 amazon-web-services node.js amazon-cognito aws-lambda serverless-framework
我正在 AWS 中使用无服务器框架创建一个应用程序。我正在使用 NodeJS 编写 Lambda。在应用程序中我想创建两个不同的角色
在我的serverless.yaml
文件中,我为这些用户类型创建了两个不同的 Cognito 用户池组
AdminUserPoolGroup:
Type: AWS::Cognito::UserPoolGroup
Properties:
GroupName: "admins"
Precedence: 0
UserPoolId:
Ref: CognitoUserPool
NormalUserPoolGroup:
Type: AWS::Cognito::UserPoolGroup
Properties:
GroupName: users
Precedence: 1
UserPoolId:
Ref: CognitoUserPool
Run Code Online (Sandbox Code Playgroud)
我想向这两个组授予不同的访问级别,例如管理员可以创建帖子,用户只能查看它们。经过一些研究后,我发现这可以通过将策略附加到组来完成。但我找不到使用无服务器框架来做到这一点的方法。
您需要指定资源RoleArn
的属性AWS::Cognito::UserPoolGroup
:
AdminUserPoolGroup:
Type: 'AWS::Cognito::UserPoolGroup'
Properties:
GroupName: "admins"
Precedence: 0
UserPoolId: !Ref CognitoUserPool
RoleArn: !GetAtt AdminRole.Arn # Get the ARN of the role defined below
AdminRole: # The IAM role for admins
Type: 'AWS::IAM::Role'
Properties:
...role properties...
Run Code Online (Sandbox Code Playgroud)
了解AWS::IAM::Role
如何定义角色(您必须声明AWS::IAM::Policy
资源并在角色中引用它们)。
归档时间: |
|
查看次数: |
1331 次 |
最近记录: |