我有一个关于将我的API暴露给第三方的问题。我正在将API部署到AWS Lambda。现在,另一个第三方(我无法控制)希望访问该API。我想授予他们访问权限(他们为此付费)。由于他们也在使用AWS进行部署,因此我认为最简单的方法可能是为该特定功能创建资源策略。
API仅包含POST请求,但是不需要调用任何其他AWS服务(例如S3等)。为此,我如何才能最小化设置仅调用函数的权限?
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::{{otherAWSAccountID}}:user/{{otherAWSUserName}}",
"arn:aws:iam::{{otherAWSAccountID}}:role/{{otherAWSRoleName}}"
]
},
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:region:account-id-1:api-id/stage/POST/endpoint"
}
]
}
lambda:InvokeFunction
是正确的选择还是在那里
甚至更具限制性的可能性?user
或role
甚至root
。特别是从安全的角度来看一般会有更好的选择吗?