我面临的问题是为经过身份验证的“用户”提供基于角色的访问控制行为,例如两种不同类型的经过身份验证的用户,具有不同的资源权限但似乎我只能拥有一个经过身份验证的用户而不是更详细的渐变。以下说明一下:
-authenticated user
--user
--- access to: ECS Group A
--Author
--- access to: ECS Group A
--- access to: ECS Group B
-unauthenticated user
当我使用lambda函数构建身份验证时,我可以在每个lambda函数前添加“authenticate函数”。但这看起来很奇怪。我正在寻找一种更好的方法来处理cognito的访问机制,以区分高于资源本身的用户。
答案 0 :(得分:1)
这取决于您知道用户所属类型的位置,但如果您以某种方式初始化Cognito身份客户端,则可以告诉它您要假设哪个auth角色。
如果你使用Android,它看起来像这样:
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
getContext(), // get the context for the current activity
"1234567890", // your AWS Account id
"us-east-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX", // your identity pool id
"arn:aws:iam::XXXXXXXXXX:role/YourRoleName",// an authenticated role ARN
"arn:aws:iam::XXXXXXXXXX:role/YourRoleName", // an unauthenticated role ARN
Regions.US_EAST_1 //Region
);