我在不同的组中有一组认知用户。示例:管理组中有5名用户,主管组中有20名用户。我已经创建了应用程序客户端,并启用了一些Oauth2作用域、内置作用域和自定义作用域。现在我有了,其中为auth.These API启用了认知授权程序。
面临的问题:使用上述方法的可以访问API,但如何根据用户范围控制API访问。池中的所有用户都启用了所有作用域。区别用户的唯一因素是认知: group,在api auth设置中,我只能设置范围,在这种情况下,所有用户,不管组有哪些,都有所有的作用域,因此他们正在进行身份验证。如何根据用户类型来控制流量?
发布于 2019-09-03 11:11:20
当您创建一个用户组时,您会将一个IAM角色附加到它。
在此基础上,您可以通过对execute API设置权限来控制对api的访问:
arn:aws:execute-api:{region}:{account}:{apiId}/{stage}/{method}/{ressource}其中所有{参数}都可以是通配符*以匹配所有参数。
您可以在用户组的描述中找到IAM角色ARN,因此请进入IAM控制台并更新此角色权限。
所以你的政策可以是这样的:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:eu-central-1:1564543246:badfg687e/*/*/petstore"
},
{
"Effect": "Deny",
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:eu-central-1:1564543246:badfg687e/*/*/*"
}
]
}例如,此权限允许附加到此IAM角色的组中的一部分用户在API badfg687e的重新源宠物存储上执行所有方法,并拒绝所有其他访问。
https://stackoverflow.com/questions/57760957
复制相似问题