首页 > 解决方案 > AWS API Gateway - 您可以混合私有访问和公共身份验证访问吗?

问题描述

我们有 2 个 AWS 账户

A有一个面向公众的 Cognito 认证 API 网关

B有一些 EC2 盒子,其中包含也需要调用 API 的各种应用程序

有没有办法配置身份验证,以便来自帐户 B 的内部请求不需要身份验证 - 就像私有 API 一样?- 同时仍然允许公共授权访问?

我创建了一个具有资源策略的私有 API,以允许来自账户 B 账户的 VPC 端点调用它,这有效,但随后该 API 不再是公共的。

使用公共 API,我可以使用以下资源策略将其锁定到帐户 B 中分配给 EC2 框的角色

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{ACCOUNT_B_ID}:role/role-name"
            },
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:eu-west-1:{ACCOUNT_A_ID}:{API_ID}/*/*/*"
        }
    ]
}

但是我们没有公共访问权限(正如预期的那样),而且我们获得{"message":"Forbidden"}了内部访问权限!

两者可以混用吗?

标签: amazon-web-servicesaws-api-gatewayamazon-iam

解决方案


推荐阅读