Video: Amazon Elasticsearch Service Security Deep Dive & VPC - AWS Online Tech Talks 2025
Hier ist eine naheliegende Frage, wenn es sich um Proxys von Drittanbietern handelt: Wenn diese Tools in Ihrem Namen handeln, wissen Amazon Web Services (AWS), dass die Person, in deren Namen sie handeln, ist in der Tat du? Mit anderen Worten: Wie kann AWS Ihre Identität authentifizieren, um sicherzustellen, dass die von Ihnen erhaltenen Befehle von Ihnen stammen?
In der Tat ist dieselbe Frage auch dann gültig, wenn Sie direkt mit der AWS-API interagieren. Wie kann AWS Ihre Identität überprüfen, um sicherzustellen, dass sie nur Befehle für Sie ausführt?
Eine Möglichkeit besteht natürlich darin, dass Sie den Benutzernamen und das Passwort Ihres Kontos in die API-Aufrufe einschließen. Einige Cloud-Anbieter gehen zwar diesen Ansatz an, Amazon jedoch nicht.
Anstatt sich auf einen Benutzernamen und ein Kennwort zu verlassen, stützt es sich auf zwei andere Identifikatoren, um seine API-Serviceaufrufe zu authentifizieren: den Zugriffsschlüssel und den geheimen Zugriffsschlüssel. Es verwendet diese Schlüssel in Serviceaufrufen, um Sicherheit auf eine Weise zu implementieren, die viel sicherer ist als die Verwendung nur Ihres Benutzernamens und Kennworts.
Wie funktioniert das? Wenn Sie sich bei AWS für ein Konto anmelden, haben Sie die Möglichkeit, einen Zugriffsschlüssel zu erstellen und einen geheimen Zugriffsschlüssel an Sie zu senden. Jeder ist eine lange Folge von zufälligen Zeichen, und der geheime Zugriffsschlüssel ist der längere der beiden. Wenn Sie den geheimen Zugriffsschlüssel herunterladen, sollten Sie ihn irgendwo sehr sicher speichern, da es der Schlüssel (sorry - schlechtes Wortspiel) ist, sichere Serviceanrufe zu implementieren.
Nachdem Sie dies getan haben, verfügen sowohl Sie als auch Amazon über eine Kopie des Zugriffsschlüssels und des geheimen Zugriffsschlüssels. Das Speichern einer Kopie des geheimen Zugriffsschlüssels ist von entscheidender Bedeutung, weil damit Informationen verschlüsselt werden, die zwischen Ihnen und AWS gesendet werden. Wenn Sie nicht über den geheimen Zugriffsschlüssel verfügen, können Sie keine Serviceanrufe auf AWS ausführen.
Die Art und Weise, wie die beiden Schlüssel verwendet werden, ist konzeptionell einfach, wenn auch etwas detailliert.
Im Grunde genommen führen Sie (oder ein in Ihrem Auftrag tätiges Tool) für jeden ausgeführten Dienstanruf die folgenden Schritte aus:
-
Erstellen Sie die Dienstanrufnutzdaten.
Dies sind die Daten, die Sie an AWS senden müssen. Es kann sich um ein Objekt handeln, das Sie in S3 speichern möchten, oder um die Image-ID eines Bildes, das Sie starten möchten. (Sie fügen auch andere Informationen an die Nutzdaten an, aber da sie je nach den Besonderheiten des Serviceanrufs variieren, werden sie hier nicht aufgeführt. Ein Datenelement ist die aktuelle Uhrzeit.)
-
Die Nutzlast verschlüsseln mit dem geheimen Zugriffsschlüssel.
Dadurch wird sichergestellt, dass niemand die Nutzlast untersuchen und herausfinden kann, was darin enthalten ist.
-
Digitale Signatur der verschlüsselten Nutzdaten durch Hinzufügen des geheimen Zugriffsschlüssels zu der verschlüsselten Nutzlast und Ausführen eines digitalen Signaturprozesses unter Verwendung des geheimen Zugriffsschlüssels.
Geheime Zugriffsschlüssel sind länger und zufälliger als typische Benutzerpasswörter; Der langwierige geheime Zugriffsschlüssel macht die Verschlüsselung damit sicherer, als wenn er mit einem typischen Benutzerpasswort durchgeführt würde.
-
Senden Sie die gesamte verschlüsselte Nutzlast zusammen mit Ihrem Zugriffsschlüssel über einen Serviceanruf an AWS.
Amazon verwendet den Zugriffsschlüssel, um nach Ihrem geheimen Zugriffsschlüssel zu suchen, mit dem er die Nutzdaten entschlüsselt. Wenn die entschlüsselte Nutzlast lesbaren Text darstellt, der ausgeführt werden kann, führt AWS den Dienstaufruf aus. Ansonsten kommt es zu dem Schluss, dass etwas mit dem Serviceaufruf nicht stimmt (vielleicht wurde es von einem böswilligen Akteur aufgerufen) und führt den Serviceanruf nicht aus.
Zusätzlich zu der soeben beschriebenen Verschlüsselung verfügt AWS über zwei weitere Methoden, um die Legitimität des Dienstaufrufs zu gewährleisten:
-
Der erste basiert auf den Datumsinformationen, die in der Nutzlast des Dienstaufrufs enthalten sind. ob die mit dem Tätigen des Serviceabrufs verbundene Zeit angemessen ist; Wenn sich das Datum im Serviceabruf stark von dem unterscheidet, was es sein sollte (viel früher oder später als die aktuelle Zeit), kommt AWS zu dem Schluss, dass es sich nicht um einen legitimen Serviceanruf handelt, und verwirft es.
-
Die zweite zusätzliche Sicherheitsmaßnahme beinhaltet eine Prüfsumme, die Sie für die Nutzlast berechnen. (Eine Prüfsumme ist eine Zahl, die den Inhalt einer Nachricht darstellt.) AWS berechnet eine Prüfsumme für die Nutzdaten. Wenn seine Prüfsumme nicht mit Ihrer übereinstimmt, verbietet es den Service-Aufruf und führt ihn nicht aus.
Dieser Prüfsummenansatz stellt sicher, dass niemand mit dem Inhalt einer Nachricht zuschlägt und verhindert, dass ein böswilliger Akteur einen legitimen Dienstaufruf abfängt und ihn ändert, um eine unannehmbare Handlung auszuführen. Wenn jemand mit der Nachricht stoppt, wenn AWS eine Prüfsumme berechnet, stimmt diese Prüfsumme nicht mehr mit der in der Nachricht enthaltenen überein, und AWS verweigert die Ausführung des Serviceanrufs.
Wenn Sie wie bei den meisten AWS-Benutzern eine Proxy-Methode für die Interaktion mit AWS verwenden - die AWS-Verwaltungskonsole, eine Sprachbibliothek oder ein Drittanbietertool - müssen Sie Ihren Zugriffscode und den geheimen Zugriffsschlüssel für den Proxy angeben… Wenn der Proxy AWS-Serviceaufrufe in Ihrem Namen ausführt, enthält er den Zugriffsschlüssel im Aufruf und verwendet den geheimen Zugriffsschlüssel, um die Nutzlastverschlüsselung durchzuführen.
Aufgrund der kritischen Rolle, die diese Schlüssel in AWS erfüllen, sollten Sie sie nur mit Entitäten teilen, denen Sie vertrauen. Wenn Sie ein neues Tool von Drittanbietern ausprobieren möchten und nicht viel über das Unternehmen wissen, richten Sie ein AWS-Testkonto für die Testversion ein, anstatt Ihre Anmeldeinformationen für das Produktions-AWS-Konto zu verwenden.
Wenn Sie sich entscheiden, das Tool nicht weiter zu verwenden, können Sie es aufheben, das Test-AWS-Konto beenden und unbehindert über potenzielle Sicherheitslücken in Ihren Hauptproduktionskonten vorgehen. Natürlich können Sie immer neue Zugriffsschlüssel und geheime Zugriffsschlüssel erstellen, aber die Verwendung Ihrer Produktionsschlüssel für Tests und dann das Ändern der Schlüssel ist sehr arbeitsaufwändig, da Sie jeden Ort aktualisieren müssen, der auf Ihre vorhandenen Schlüssel verweist.
Wenn Sie wie viele andere AWS-Benutzer sind, verwenden Sie eine Reihe von Werkzeugen und Bibliotheken, und die Rückkehr zu ihnen, um Ihre Schlüssel zu aktualisieren, ist ein Schmerz. Es ist besser, nichtproduktive Konten zu verwenden, um neue Tools zu testen.
