如何从另一个 AWS 账户访问 Amazon API Gateway API?

1 分钟阅读
0

我想从另一个 AWS 账户访问 Amazon API Gateway API。我该如何操作?

简短描述

可以直接从公共端点阶段 URL 或自定义域名访问公共 API 端点(区域边缘优化)。

私有 REST API 端点只能使用接口 VPC 端点从 Amazon Virtual Private Cloud(Amazon VPC)内的虚拟私人云进行访问。

可以使用具有跨账户存取权限的 AWS Identity and Access Management(IAM)身份验证来访问 Amazon API Gateway 端点。

解决方法

公共 API 端点

您可以直接从 API 阶段 URL 访问 API Gateway 公共端点。例如, https://0123456789.execute-api.{region}.amazonaws.com/{stage-name}。

您还可以在公共托管区使用自定义域名访问 API Gateway 公共端点。

**注意:**私有 API 不支持自定义域名。

有关更多信息,请参阅我如何为我的 API Gateway API 自定义域名?

私有 REST API 端点

您可以使用接口端点,在另一个 AWS 账户中使用 Amazon Virtual Private Cloud(Amazon VPC)访问 API Gateway 私有 REST API。

如果您的私有 REST API 位于 AWS 账户中,并且您想从另一个账户访问它,可以编辑资源策略

有关更多信息,请参阅如果使用接口 VPC 端点在另一个 AWS 账户中访问 API Gateway 私有 REST API?

使用 IAM 身份验证的 API

需要进行额外配置,才能访问使用 IAM 身份验证,具有跨账户存取权限的 API Gateway API。在与下方类似的资源策略中,必须允许源账户的 IAM 角色进行显式访问:

REST API

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::account-id-2:user/Alice",
          "account-id-2"
        ]
      },
      "Action": "execute-api:Invoke",
      "Resource": [
        "arn:aws:execute-api:us-east-1:{account-id}:{api-id}/*/*/*"
      ]
    }
  ]
}

有关更多信息,请参阅我如何为 API Gateway REST API 激活 IAM 身份验证?

HTTP API

使用资源策略提供跨账户的 IAM 身份验证的选项不适用于 API Gateway HTTP API。

您可以使用 sts:AssumeRole API 操作以担任 HTTP API 账户的角色。担任的角色提供临时安全凭证,可用于在其他账户中调用 HTTP API。

有关更多信息,如何为 API Gateway HTTP API 提供跨账户 IAM 授权?


相关信息

在 Amazon API Gateway 中创建私有 API

示例:允许其他 AWS 账户中的用户使用 API

AWS 官方
AWS 官方已更新 2 年前