跳至內容

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

1 分的閱讀內容
0

我想從另一個 AWS 帳戶存取 Amazon API Gateway API。

解決方法

公用 API 端點

可以直接從 API 階段網址存取 API Gateway 公用端點 (區域邊緣最佳化)。例如:https://0123456789.execute-api.{region}.amazonaws.com/{stage-name}.

您也可以使用公用託管區域中的自訂網域名稱來存取 API Gateway 公用端點。

如需詳細資訊,請參閱如何為 API Gateway API 設定自訂網域名稱?

私有 REST API 端點

您可以使用介面 VPC 端點從 Amazon Virtual Private Cloud (Amazon VPC) 存取私有 REST API 端點。

若要存取位於另一個帳戶中的私人 REST API,請編輯資源政策以授予跨帳戶權限。您也可以使用私有自訂網域名稱,將其與另一個帳戶中的 VPC 端點建立關聯。

需詳細資訊,請參閱如何使用介面 VPC 端點存取其他帳戶中的 API Gateway 私有 REST API?

使用 IAM 驗證

需要額外組態才能透過使用 AWS Identity and Access Management (IAM) 驗證的跨帳戶來存取的 API Gateway API。請確定取用者帳戶中的 IAM 實體具有透過身分型政策來呼叫 API 的權限。

必須在資源策略中允許來源帳戶的 IAM 角色明確存取權,例如以下內容:

REST API

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::CONSUMER-ACCOUNT-ID:user/USERNAME",
                    "CONSUMER-ACCOUNT-ID"
                ]
            },
            "Action": "execute-api:Invoke",
            "Resource": [
                "arn:aws:execute-api:YOUR-REGION:API-OWNER-ACCOUNT-ID:API-ID///*"
            ]
        }
    ]
}

**注意:**將 CONSUMER-ACCOUNT-IDUSERNAMEYOUR-REGIONAPI-OWNER-ACCOUNT-IDAPI-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 授權?

相關資訊

API Gateway 中的私有 REST API

範例: 允許另一個 AWS 帳戶中的角色使用 API