Datenverschlüsselung in Amazon API Gateway
Datenschutz bezieht sich auf den Schutz von Daten während der Übertragung (auf dem Weg zu und von API Gateway) und im Ruhezustand (während sie in der gespeichert werde AWS).
Datenverschlüsselung im Ruhezustand in Amazon API Gateway
Wenn Sie das Caching für eine REST-API aktivieren, können Sie die Cache-Verschlüsselung aktivieren. Weitere Informationen hierzu finden Sie unter Cache-Einstellungen für REST-APIs in API Gateway.
Weitere Informationen zum Datenschutz enthält der Blog-Beitrag AWS Shared Responsibility Model and GDPR
Verschlüsselung und Entschlüsselung Ihres privaten Zertifikatschlüssels
Wenn Sie einen benutzerdefinierten Domainnamen für private APIs erstellen, werden Ihr ACM-Zertifikat und Ihr privater Schlüssel mithilfe eines AWS-verwalteten KMS-Schlüssels mit dem Alias aws/acm verschlüsselt. Sie können die Schlüssel-ID mit diesem Alias in der AWS KMS-Konsole unter AWS-verwaltete Schlüssel einsehen.
API Gateway greift nicht direkt auf Ihre ACM-Ressourcen zu. Es verwendet den TLS Connection Manager von AWS, um die privaten Schlüssel für Ihr Zertifikat zu sichern und auf sie zuzugreifen. Wenn Sie Ihr ACM-Zertifikat verwenden, um einen benutzerdefinierten API-Gateway-Domainnamen für private APIs zu erstellen, ordnet API Gateway Ihr Zertifikat dem TLS Connection Manager von AWS zu. Dazu erstellen Sie eine Erteilung unter AWS KMS gegenüber Ihrem AWS-verwalteten Schlüssel mit dem Präfix aws/acm. Eine Erteilung ist ein Richtlinieninstrument, das es TLS Connection Manager erlaubt, KMS-Schlüssel in kryptografischen Operationen zu verwenden. Die Erteilung erlaubt es dem Empfänger-Prinzipal (TLS Connection Manager), die angegebenen Genehmigungsoperationen für den KMS-Schlüssel aufzurufen, um den privaten Schlüssel Ihres Zertifikats zu entschlüsseln. TLS Connection Manager verwendet dann 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. Die Erteilung wird außer Betrieb genommen, wenn das Zertifikat von einem benutzerdefinierten API-Gateway-Domainnamen für private APIs getrennt wird.
Wenn Sie den Zugriff auf den KMS-Schlüssel deaktivieren möchten, sollten Sie das Zertifikat mithilfe des AWS Management Console- oder update-service-Befehls im Dienst zu ersetzen oder zu entfernen.
Verschlüsselungskontext für API Gateway
Ein Verschlüsselungskontext ist ein optionaler Satz von Schlüssel-Wert-Paaren, die Kontextinformationen zur möglichen Verwendung Ihres privaten Schlüssels enthalten. AWS KMS bindet den Verschlüsselungskontext an die verschlüsselten Daten und verwendet diese als zusätzliche Authentifizierungsdaten zur Unterstützung der authentifizierten Verschlüsselung.
Wenn Ihre TLS-Schlüssel mit API Gateway und TLS Connection Manager verwendet werden, wird der Name Ihres API-Gateway-Dienstes im Verschlüsselungskontext aufgenommen, der zur Verschlüsselung Ihres Schlüssels im Ruhezustand verwendet wird. Sie können überprüfen, für welchen benutzerdefinierten API-Gateway-Domainnamen Ihr Zertifikat und Ihr privater Schlüssel verwendet werden, indem Sie den Verschlüsselungskontext in Ihren CloudTrail-Protokollen wie im nächsten Abschnitt gezeigt einsehen, oder indem Sie in der ACM-Konsole die Registerkarte Zugeordnete Ressourcen einsehen.
Zur Entschlüsselung von Daten wird derselbe Verschlüsselungskontext in der Anforderung übergeben. API Gateway verwendet denselben Verschlüsselungskontext in allen kryptografischen AWS-KMS-Operationen, wobei der Schlüssel aws:apigateway:arn ist und der Wert des Amazon-Ressourcennamens (ARN) der API-Gateway-Ressource PrivateDomainName ist.
Im folgenden Beispiel sehen Sie den Verschlüsselungskontext in der Ausgabe einer Operation wie CreateGrant.
"constraints": {
"encryptionContextEquals": {
"aws:acm:arn": "arn:aws:acm:us-west-2:859412291086:certificate/9177097a-f0ae-4be1-93b1-19f911ea4f88",
"aws:apigateway:arn": "arn:aws:apigateway:us-west-2:859412291086:/domainnames/denytest-part1.pdx.sahig.people.aws.dev+cbaeumzjhg"
}
},
"operations": [
"Decrypt"
],
"granteePrincipal": "tlsconnectionmanager.amazonaws.com"
Datenverschlüsselung während der Übertragung in Amazon API Gateway
Die mit Amazon API Gateway erstellten APIs stellen HTTPS-Endpunkte dar. API Gateway unterstützt keine unverschlüsselten Endpunkte (HTTP).
API Gateway verwaltet die Zertifikate für execute-api-Standardendpunkte. Wenn Sie einen benutzerdefinierten Domainnamen konfigurieren, geben Sie das Zertifikat für den Domainnamen an. Als bewährte Methode sollten Sie keine PIN-Zertifikate verwenden.
Für mehr Sicherheit können Sie eine Mindestversion des TLS-Protokolls (Transport Layer Security) auswählen, die für Ihre benutzerdefinierte API Gateway-Domäne durchgesetzt wird. WebSocket-APIs und HTTP-APIs unterstützen nur TLS 1.2. Weitere Informationen hierzu finden Sie unter Wählen Sie eine Sicherheitsrichtlinie für Ihre benutzerdefinierte REST-API-Domain in API Gateway aus.
Sie können außerdem eine Amazon CloudFront-Distribution mit einem benutzerdefinierten SSL-Zertifikat in Ihrem Konto einrichten und diese mit regionalen APIs verwenden. Anschließend können Sie die Sicherheitsrichtlinie für die CloudFront-Verteilung mit TLS 1.1 oder höher entsprechend Ihren Sicherheits- und Compliance-Anfragen konfigurieren.
Weitere Informationen zum Datenschutz enthält Schutz Ihrer REST-APIs in API Gateway und der Blog-Beitrag AWS Shared Responsibility Model and GDPR