我按照本教程使用 AWS 服务(S3、Lambda、Cognito、DynamoDB)和使用 ReactJS 的无服务器框架创建了一个无服务器应用程序 https://serverless-stack.com/ .本教程使用 AWS Cognito 用户池和身份池进行用户管理和身份验证。本教程中的应用程序是一个“记笔记”应用程序,它在应用程序中没有基于角色的访问控制。
然而,我正在创建的应用程序需要 RBAC,在阅读了它之后,我明白可以使用“用户组”或“联合身份”来实现 RBAC。但是,我仍然无法弄清楚如何在我的应用程序中正确使用它们中的任何一个。
这是我到目前为止在应用程序中所做的
政策
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"mobileanalytics:PutEvents",
"cognito-sync:*",
"cognito-identity:*"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::YOUR_S3_UPLOADS_BUCKET_NAME/${cognito-identity.amazonaws.com:sub}*"
]
},
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": [
"arn:aws:execute-api:YOUR_API_GATEWAY_REGION:*:YOUR_API_GATEWAY_ID/*"
]
}
]
}
这允许每个人访问所有 API。如何为每个用户分配角色,然后根据他们的角色限制对某些 API 的访问?
最佳答案
有几种方法可以做到;更重要的是,您根本不需要身份池。
关于amazon-web-services - 使用 AWS Cognito 和 Serverless 实现基于角色的访问控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46294293/