我正在尝试使用Cognito在API网关上实现Passthrough API,以进行用户身份验证和授权。在我的网关上,我有getitem
和additem
的资源。我希望某些用户只能访问additem
。我在Cognito用户池上创建了一个组,以访问我的Apigateway资源的角色和策略。这是角色的信任关系:
{
"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_*********"
}
}
}
]
}
信任关系附带的策略是:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": [
"arn_of_apigateway_resource"
]
}
]
}
即使我的用户基于Cognito中的用户组而被禁止,我仍然可以在API Gateway上调用该API。 我所有的API网关资源都具有Cognito授权者。