Ich möchte von einem anderen AWS-Konto aus auf eine Amazon API Gateway API zugreifen. Wie kann ich vorgehen?
Kurzbeschreibung
Auf öffentliche API-Endpunkte (regional oder Edge-optimiert) kann direkt über die öffentliche Endpoint-Staging-URL oder einen benutzerdefinierten Domänennamen zugegriffen werden.
Auf private REST-API-Endpunkte kann von einer Virtual Private Cloud in Amazon Virtual Private Cloud (Amazon VPC) über einen VPC-Schnittstellen-Endpunkt zugegriffen werden.
Auf Amazon API Gateway-Endpunkte kann mithilfe der AWS Identity and Access Management (IAM) -Authentifizierung mit kontoübergreifendem Zugriff zugegriffen werden.
Auflösung
Öffentliche API-Endpunkte
Sie können direkt über die API Staging-URL auf öffentliche API-Gateway-Endpunkte zugreifen. Zum Beispiel https://0123456789.execute-api.{region}.amazonaws.com/{stage-name}.
Sie können auch über einen benutzerdefinierten Domänennamen in einer öffentlich gehosteten Zone auf öffentliche API-Gateway-Endpunkte zugreifen.
Hinweis: Benutzerdefinierte Domainnamen werden für private APIs nicht unterstützt.
Weitere Informationen finden Sie unter Wie kann ich einen benutzerdefinierten Domänennamen für meine API Gateway API einrichten?
Private REST-API-Endpunkte
Sie können auf private API Gateway-REST-APIs in einem anderen AWS-Konto mit einer Amazon Virtual Private Cloud (Amazon VPC) über einen Schnittstellenendpunkt zugreifen.
Wenn sich Ihre private REST-API in einem AWS-Konto befindet und Sie von einem anderen Konto aus darauf zugreifen möchten, können Sie die Ressourcenrichtlinie bearbeiten.
Wie kann ich über einen Schnittstellen-VPC-Endpunkt auf eine private REST-API eines API-Gateways in einem anderen AWS-Konto zugreifen?
APIs, die IAM-Authentifizierung verwenden
Für den Zugriff auf eine API Gateway-API mit kontoübergreifenden Zugriff, die IAM-Authentifizierung verwendet, ist eine zusätzliche Konfiguration erforderlich. Der IAM-Rolle des Quellkontos muss in der Ressourcenrichtlinie expliziter Zugriff gewährt werden, ähnlich der folgenden:
REST-APIs
{
"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}/*/*/*"
]
}
]
}
Wie aktiviere ich die IAM-Authentifizierung für API-Gateway-REST-APIs?
HTTP-APIs
Die Option zur Verwendung von Ressourcenrichtlinien zur Bereitstellung der IAM-Authentifizierung für kontenübergreifende Konten ist für API Gateway-HTTP-APIs nicht verfügbar.
Sie können die API-Aktion sts:AssumeRole verwenden, um eine Rolle für das HTTP-API-Konto anzunehmen. Die übernommene Rolle stellt temporäre Sicherheitsnachweise bereit, die zum Aufrufen der HTTP-API in einem anderen Konto verwendet werden können.
Wie kann ich kontoübergreifende IAM-Autorisierung für API-Gateway-HTTP-APIs bereitstellen?
Relevante Informationen
Erstellen einer privaten API in Amazon API Gateway
Beispiel: Benutzern in einem anderen AWS-Konto erlauben, eine API zu verwenden