如何從另一個 AWS 帳戶存取 Amazon API Gateway API?

上次更新日期:2022 年 10 月 3 日

我想從另一個 AWS 帳戶存取 Amazon API Gateway API。該如何進行?

簡短描述

公用 API 端點 (區域性邊緣最佳化) 可直接從公用端點階段 URL 或自訂網域名稱存取。

私有 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 端點

您可以在 Amazon Virtual Private Cloud (Amazon VPC) 使用介面端點存取另一個 AWS 帳戶中的 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

API Gateway HTTP API 無法使用資源政策為跨帳戶提供 IAM 身分驗證的選項。

您可以使用 sts:AssumeRole API 動作來擔任 HTTP API 帳戶的角色。所擔任角色會提供臨時安全憑證,可用於在另一個帳戶中叫用 HTTP API。

如需詳細資訊,請參閱如何為 API Gateway HTTP API 提供跨帳戶 IAM 授權?