我想授予其他帐户的IAM用户访问权限,以便能够调用我的API。
我的API网关资源方法中有以下配置:
Authorization type: AWS_IAM
(我也尝试使用Auth类型None
。)
并且资源策略定义为:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<ACCOUNT_2>:user/ApiUser"
},
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:us-west-2:<ACCOUNT_1>:<API_ID>/*/*/*"
}
]
}
我还向另一个帐户的IAM用户授予了调用权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": "arn:aws:execute-api:us-west-2:<ACCOUNT_1>:<API_ID>:test/GET/*"
}
]
}
我已将API部署到名为test
的阶段。
仍然,当我使用其他帐户用户的凭据调用API时,看到以下错误:
{
"message": "User: arn:aws:iam::<ACCOUNT_2>:user/ApiUser is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:us-west-<ACCOUNT_1>:<API_ID>/test/GET/foo/bar"
}
我在这里想念什么?
答案 0 :(得分:0)
这以前让我很伤心,也可能是你的问题。
保存资源策略后,还必须部署API。