API-Sicherheit priorisieren - AWS Serverless-Mehrschichtenarchitekturen mit Amazon API Gateway und AWS Lambda

API-Sicherheit priorisieren

Alle Anwendungen müssen sicherstellen, dass nur autorisierte Clients Zugriff auf ihre API-Ressourcen haben. Beim Entwerfen einer mehrschichtigen Anwendung können Sie verschiedene Möglichkeiten nutzen, mit denen Amazon API Gateway zur Sicherung Ihrer Logikschicht beiträgt:

Übertragungssicherheit

Alle Anfragen an Ihre APIs können über HTTPS gestellt werden, um die Verschlüsselung während der Übertragung zu ermöglichen.

API Gateway bietet integrierte SSL-/TLS-Zertifikate. Wenn Sie die Option für benutzerdefinierte Domänennamen für öffentlich zugängliche APIs verwenden, können Sie mit AWS Certificate Manager Ihr eigenes SSL-/TLS-Zertifikat bereitstellen. API Gateway unterstützt auch die gegenseitige TLS-Authentifizierung (mTLS). Gegenseitige TLS erhöht die Sicherheit Ihrer API und schützt Ihre Daten vor Angriffen wie Client-Spoofing oder Man-in-the-Middle-Angriffen.

API-Autorisierung

Jeder Ressourcen-/Methodenkombination, die Sie als Teil Ihrer API erstellen, wird ein individueller Amazon-Ressourcenname (ARN) zugewiesen, auf den in AWS Identity and Access Management (IAM)-Richtlinien verwiesen werden kann.

Es gibt drei allgemeine Methoden, um einer API in API Gateway eine Autorisierung hinzuzufügen:

  • IAM-Rollen und -Richtlinien: Clients verwenden die Autorisierung mit AWS Signature Version 4 (SigV4) sowie IAM-Richtlinien für den API-Zugriff. Dieselben Anmeldeinformationen können den Zugriff auf andere AWS-Services und -Ressourcen nach Bedarf einschränken oder zulassen (z. B. Amazon S3-Buckets oder Amazon DynamoDB-Tabellen).

  • Amazon Cognito-Benutzerpools: Clients melden sich über einen Amazon Cognito-Benutzerpool an und erhalten Token, die im Autorisierungs-Header einer Anforderung enthalten sind.

  • Lambda-Genehmiger: Definieren Sie eine Lambda-Funktion, die ein benutzerdefiniertes Autorisierungsschema implementiert, das eine Träger-Token-Strategie (z. B. OAuth und SAML) oder Anforderungsparameter verwendet, um Benutzer zu identifizieren.

Zugriffsbeschränkungen

API Gateway unterstützt die Generierung von API-Schlüsseln und die Verknüpfung dieser Schlüssel mit einem konfigurierbaren Nutzungsplan. Sie können die Verwendung von API-Schlüsseln mit CloudWatch überwachen.

API Gateway unterstützt Drosselung, Ratenbegrenzungen und Burst-Ratenbegrenzungen für jede Methode in Ihrer API.

Private APIs

Mit API Gateway können Sie private REST-APIs erstellen, auf die nur von Ihrer Virtual Private Cloud in Amazon VPC aus zugegriffen werden kann, indem Sie einen Schnittstellen-VPC-Endpunkt verwenden. Dies ist eine Endpunkt-Netzwerkschnittstelle, die Sie in Ihrer VPC erstellen.

Mithilfe von Ressourcen-Richtlinien können Sie den Zugriff auf Ihre API von ausgewählten VPCs und VPC-Endpunkten aus ermöglichen oder verweigern, darunter auch über AWS-Konten. Jeder Endpunkt kann für den Zugriff auf mehrere APIs verwendet werden. Sie können außerdem AWS Direct Connect verwenden, um eine Verbindung von einem On-Premise-Netzwerk zu Amazon VPC herzustellen und über diese Verbindung auf Ihre private API zuzugreifen.

In allen Fällen verwendet der Datenverkehr zu Ihrer privaten API eine sichere Verbindung und verlässt nicht das Amazon-Netzwerk. Er ist vom öffentlichen Internet isoliert.

Firewall-Schutz mit AWS WAF

APIs, auf die über das Internet zugegriffen wird, sind anfällig für böswillige Angriffe. AWS WAF ist eine Webanwendungs-Firewall, die APIs vor solchen Angriffen schützt. Es schützt APIs vor gängigen Web-Exploits wie SQL-Injection- und Cross-Site-Scripting-Angriffen. Sie können AWS WAF mit API Gateway verwenden, um APIs zu schützen.