除了可以在AWS API网关上调用API终端节点的用户之外,是否有一种方法/策略可以拒绝所有用户?
当前使用的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::account_id:user/user-name"
},
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:region:account_id:api_to_be_invoked/*/*"
}
]
}
我在API网关的资源策略中应用了上述策略并进行了部署,但是为了进行测试,我尝试使用另一个管理员用户的访问权限和私钥通过Postman进行POST,但仍然成功完成了,但我没有这样做想要。
有帮助吗?
答案 0 :(得分:2)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"NotPrincipal": {
"AWS":
[ "arn:aws:iam::account_id:user/user-name",
"arn:aws:iam::account_id:root"
]
},
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:region:account_id:api_to_be_invoked/*/*"
}
]
}
答案 1 :(得分:0)
您是否尝试使用 IAM政策条件? 我没有在生产环境中尝试过它,但是它应该可以满足您的需求。
{"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:region:account_id:api_to_be_invoked/*/*",
"Condition": {
"StringNotEquals" : {
"aws:username" : "your_user_name"
}
}
}
]}
请让我知道这个答案是否有帮助。