Benutzerdefinierte Domainnamen für private APIs in API Gateway - Amazon API Gateway

Benutzerdefinierte Domainnamen für private APIs in API Gateway

Sie können einen benutzerdefinierten Domänennamen für Ihre privaten APIs erstellen. Mit einem privaten benutzerdefinierten Domainnamen bieten Sie API-Aufrufern eine einfachere und intuitivere URL. Mit einem privaten benutzerdefinierten Domainnamen reduzieren Sie die Komplexität, können Sie Sicherheitsmaßnahmen während des TLS-Handshakes und steuern den Zertifikatslebenszyklus Ihres Domainnamens mithilfe von AWS Certificate Manager (ACM). Weitere Informationen finden Sie unter Den privaten Zertifikatsschlüssel für Ihren benutzerdefinierten Domainnamen sichern.

Benutzerdefinierte Domainnamen für private APIs müssen nicht kontenübergreifend eindeutig sein. Sie können example.private.com für Konto 111122223333 und für Konto 5555555555 erstellen, vorausgesetzt, dass Ihr ACM-Zertifikat den Domainnamen abdeckt. Verwenden Sie den privaten benutzerdefinierten Domainnamen-ARN zur Identifizierung eines privaten benutzerdefinierten Domainnamens. Diese Kennung gilt nur für private benutzerdefinierte Domainnamen.

Wenn Sie in API Gateway einen privaten benutzerdefinierten Domainnamen erstellen, sind Sie ein API-Anbieter. Sie können Ihren privaten benutzerdefinierten Domainnamen mithilfe von API Gateway oder AWS Resource Access Manager (AWS RAM) für andere AWS-Konten zur Verfügung stellen.

Wenn Sie einen privaten benutzerdefinierten Domainnamen aufrufen, sind Sie ein API-Verbraucher. Sie können einen privaten benutzerdefinierten Domainnamen von Ihrem eigenen AWS-Konto oder einem anderen AWS-Konto verbrauchen.

Wenn Sie einen privaten benutzerdefinierten Domainnamen verbrauchen, erstellen Sie eine Domainnamenzugriffszuweisung zwischen einem VPC-Endpunkt und einem privaten benutzerdefinierten Domainnamen. Mit einer Domainnamenzugriffszuweisung können API-Verbraucher Ihren privaten benutzerdefinierten Domainnamen aufrufen, während sie vom öffentlichen Internet isoliert sind. Weitere Informationen finden Sie unter Aufgaben von API-Anbietern und API-Verbrauchern für benutzerdefinierte Domainnamen für private APIs.

Den privaten Zertifikatsschlüssel für Ihren benutzerdefinierten Domainnamen sichern

Wenn Sie mithilfe von ACM ein SSL/TLS-Zertifikat anfordern, um Ihren benutzerdefinierten Domainnamen für private APIs zu erstellen, generiert ACM ein öffentlich/privates-Schlüsselpaar. Das Schlüsselpaar wird beim Import eines Zertifikats generiert. Der öffentliche Schlüssel wird Teil des Zertifikats. ACM erstellt mithilfe von AWS KMS einen weiteren Schlüssel (den KMS-Schlüssel) mit dem Alias aws/acm. AWS KMS verwendet diesen Schlüssel, um den privaten Schlüssel Ihres Zertifikats zu verschlüsseln. Weitere Informationen finden Sie unter Datenschutz im AWS Certificate Manager des AWS Certificate Manager-Benutzerhandbuchs.

API Gateway verwendet den AWS TLS Connection Manager, einen Dienst, auf den nur AWS-Services zugreifen können, um die privaten Schlüssel Ihres Zertifikats zu sichern und zu verwenden. Wenn Sie Ihr ACM-Zertifikat verwenden, um einen benutzerdefinierten API Gateway-Domainnamen zu erstellen, ordnet API Gateway Ihr Zertifikat dem AWS-TLS-Connection-Manager zu. Hierzu erstellen wir eine Berechtigung für Ihren AWS KMS zur Gegenüberstellung mit Ihrem AWS-verwalteten Schlüssel. Diese Berechtigung erlaubt es TLS Connection Manager, AWS KMS zur Entschlüsselung des privaten Schlüssels Ihres Zertifikats zu verwenden. TLS Connection Manager verwendet das Zertifikat und den entschlüsselten privaten (Klartext) Schlüssel für den Aufbau einer sicheren Verbindung (SSL/TLS-Sitzung) mit Kunden von API-Gateway-Diensten. Wenn die Zuweisung eines Zertifikat von einem API-Gateway-Service getrennt wird, wird die Berechtigung zurückgezogen. Weitere Informationen finden Sie unter Berechtigungen im AWS Key Management Service-Entwicklerhandbuch.

Weitere Informationen finden Sie unter Datenverschlüsselung im Ruhezustand in Amazon API Gateway.

Überlegungen zu privaten benutzerdefinierten Domainnamen

Die folgenden Überlegungen können Ihre Verwendung von benutzerdefinierten privaten Domainnamen beeinflussen:

  • Es dauert etwa 15 Minuten, bis API Gateway Ihren privaten benutzerdefinierten Domainnamen bereitstellt.

  • Wenn Sie Ihr ACM-Zertifikat aktualisieren, benötigt API Gateway etwa 15 Minuten, um die Aktualisierung abzuschließen. Während dieser Zeit befindet sich Ihr Domainname im Status UPDATING und Sie können weiterhin darauf zugreifen.

  • Sie müssen eine Domainnamenzugriffszuweisung erstellen, um einen privaten benutzerdefinierten Domainnamen aufzurufen. Nach der Erstellung der Domainnamenzugriffszuweisung dauert es etwa 15 Minuten, bis diese bereitsteht.

  • Der ARN des privaten benutzerdefinierten Domainnamens enthält die account-id. Wenn Sie einen Domainnamen erstellen, verwendet API Gateway das ARN-Format arn:partition:apigateway:region::/domainnames. Wenn Sie auf einen privaten benutzerdefinierten Domainnamen zugreifen, verwenden Sie das ARN-Format arn: arn:partition:apigateway:region:account-id:/domainnames/domain-name.

    Möglicherweise müssen Sie Ihre IAM-Berechtigungen anpassen, um nach dem Erstellen den Zugriff auf einen privaten Domainnamen zu ermöglichen.

  • Sie können gleichnamige private benutzerdefinierte Domainnamen nicht vom selben VPC-Endpunkt aus aufrufen. Wenn Sie beispielsweise arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234 und arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+xyz000 aufrufen möchten, müssen die einzelnen privaten benutzerdefinierten Domainnamen jeweils einem anderen VPC-Endpunkt zugeordnet werden.

  • Wildcard-Zertifikate werden unterstützt, z. B. ein Zertifikat für *.private.example.com.

  • Unterstützung für benutzerdefinierte Wildcard-Domainnamen werden nicht unterstützt.

  • Es werden ausschließlich RSA-Zertifikate mit einer Schlüssellänge von 2048 Bit und ECDSA-Zertifikate mit einer Schlüssellänge von 256 Bit und 384 Bit unterstützt.

  • Sie können für private APIs den IP-Adresstyp nicht so festlegen, dass ausschließlich IPv4-Adressen zum Aufrufen Ihrer privaten API zugelassen werden. Nur Dualstack wird unterstützt. Weitere Informationen finden Sie unter IP-Adresstypen für REST-APIs in API Gateway.

  • Um Datenverkehr über Ihre private API zu senden, können Sie alle von Amazon VPC unterstützten IP-Adresstypen verwenden. Sie können Dualstack- und IPv6-Traffic senden, indem Sie die Einstellungen auf Ihrem VPC-Endpunkt konfigurieren. In API Gateway kann dies nicht verändert werden. Weitere Informationen finden Sie unter IPv6-Support für Ihre VPC hinzufügen.

  • Mehrstufige Basispfadzuweisungen, wie etwa die Zuweisung Ihrer privaten API an /developers/feature, werden nicht unterstützt. Sie können jedoch eine Routing-Regel verwenden, um eine mehrstufige Pfadbedingung zu erstellen. Weitere Informationen finden Sie unter Senden von Datenverkehr an Ihre APIs über Ihren benutzerdefinierten Domainnamen in API Gateway.

  • Sie können keine TLS-Mindestversion für Ihren privaten benutzerdefinierten Domainnamen festlegen. Für alle privaten benutzerdefinierten Domainnamen gilt die Sicherheitsrichtlinie TLS-1-2.

  • Sie können eine VPC-Endpunktrichtlinie verwenden, um den Zugriff auf einen privaten benutzerdefinierten Domainnamen zu steuern. Weitere Informationen finden Sie in den Beispielen 4 und 5 unter VPC-Endpunktrichtlinien für private APIs in API Gateway verwenden.

  • Sie müssen eine separate Ressourcenrichtlinie für Ihre private API und für Ihren privaten benutzerdefinierten Domainnamen erstellen. Ein API-Verbraucher benötigt eine Zugriffsgenehmigung von der Ressourcenrichtlinie für private benutzerdefinierte Domainnamen, der privaten API-Ressourcenrichtlinie und allen VPC-Endpunktrichtlinien oder Genehmigungen für die private API, um einen privaten benutzerdefinierten Domainnamen aufrufen zu können.

Überlegungen zur Verwendung privater benutzerdefinierter Domainnamen mit anderen API-Gateway-Ressourcen

Die folgenden Überlegungen können Ihre Verwendung von benutzerdefinierten privaten Domainnamen mit anderen API-Gateway-Ressourcen beeinflussen:

  • Es ist nicht möglich, Datenverkehr von einem privaten benutzerdefinierten Domainnamen an eine öffentliche API zu senden.

  • Wenn eine private API einem privaten benutzerdefinierten Domainnamen zugeordnet ist, können Sie den Endpunkttyp der API nicht ändern.

  • Sie können einen öffentlichen benutzerdefinierten Domainnamen nicht zu einem privaten benutzerdefinierten Domainnamen migrieren.

  • Wenn Sie über einen VPC-Endpunkt verfügen, den Sie für den Zugriff auf einen öffentlichen benutzerdefinierten Domainnamen verwenden, können Sie diesen nicht für die Erstellung einer Domainnamenzugriffszuweisung zu einem privaten benutzerdefinierten Domainnamen verwenden.

Unterschiede zwischen privaten und öffentlichen benutzerdefinierten Domainnamen

Im Folgenden werden die Unterschiede zwischen privaten und öffentlichen benutzerdefinierten Domainnamen beschrieben:

  • Private benutzerdefinierte Domainnamen müssen nicht kontenübergreifend eindeutig sein.

  • Ein privater Domainname hat eine Domainnamen-ID. Diese Kennung identifiziert einen privaten benutzerdefinierten Domainnamen eindeutig und wird nicht für öffentliche benutzerdefinierte Domainnamen generiert.

  • Wenn Sie die AWS CLI verwenden, um Ihren privaten benutzerdefinierten Domainnamen zu aktualisieren oder zu löschen, müssen Sie die Domainnamen-ID angeben. Wenn Sie einen privaten benutzerdefinierten Domainnamen example.com und einen öffentlichen benutzerdefinierten Domainnamen example.com haben und die Domainnamen-ID nicht angeben, wird API Gateway Ihren öffentlichen benutzerdefinierten Domainnamen ändern oder löschen.

Die nächsten Schritte für benutzerdefinierte Domainnamen für private APIs

Informationen zu den Aufgaben eines API-Anbieters und eines API-Verbrauchers finden Sie unter Aufgaben von API-Anbietern und API-Verbrauchern für benutzerdefinierte Domainnamen für private APIs.

Anleitungen zum Erstellen eines privaten benutzerdefinierten Domainnamens, den Sie in Ihrem eigenen AWS-Konto aufrufen können finden Sie unter Tutorial: Erstellen und Aufrufen eines benutzerdefinierten Domainnamens für private APIs.

Anleitungen zur Bereitstellung eines weiteren AWS-Konto-Zugriffs auf Ihren privaten benutzerdefinierten Domainnamen finden Sie unter API-Anbieter: Teilen Sie Ihren privaten benutzerdefinierten Domainnamen mithilfe von AWS RAM. Anleitungen zum Zuweisen Ihres VPC-Endpunkts mit einem privaten benutzerdefinierten Domainnamen in einem anderen AWS-Konto finden Sie unter API-Verbraucher: Zuweisung Ihres VPC-Endpunkts zu einem mit Ihnen gemeinsam genutzten privaten benutzerdefinierten Domainnamen.