如何配置AWS API Gateway从另一个AWS账户访问它

时间:2019-11-13 21:40:55

标签: aws-api-gateway api-gateway aws-console

我想授予其他帐户的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"
}

我在这里想念什么?

我遵循了本指南: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies-examples.html

1 个答案:

答案 0 :(得分:0)

这以前让我很伤心,也可能是你的问题。

保存资源策略后,还必须部署API。

  • 在左侧菜单中,向上单击一级
  • 然后在“操作”下,选择DEPLOY API