我从AWS上的无服务器开始,我正在使用AWS Cognito进行用户身份验证和授权。对于我在文档和示例中看到的内容,您可以创建组以允许某些用户能够使用Api网关端点,并将角色和策略附加到该组。我尝试了这一点,然后创建了一个简单的客户端,并尝试使用两个不同的用户,并且都能够获得200个状态代码,而不是其中的一个,因为它没有得到授权。为了创建角色,我去了IAM,创建角色,身份提供者访问角色,授予对Web身份提供者的访问权限,然后选择Amazon Cognito并选择我的Cognito用户池。 信任关系:AWS Cognito组和AWS Api网关
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "cognito-identity.amazonaws.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"cognito-identity.amazonaws.com:aud": "us-east-1_8TAUVKbGP"
}
}
}
]
}
政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": [
"my-arn-resourse-from-api-gateway"
]
}
]
}
然后我分配这个角色给我的管理组和连接相关政策的用户添加到组,这应该允许访问API网关资源在用户登录时向用户发送。但是,当我尝试与不在该用户组中的用户通信时,它仍然有效。顺便说一句,在我的API网关资源请求我把认证池授权。
非常感谢!
谢谢!我会试一试,让你知道它是怎么回事! –