Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWS CloudHSM Bewährte Verfahren zur Anwendungsintegration
Folgen Sie den bewährten Methoden in diesem Abschnitt, um die Integration Ihrer Anwendung in Ihren AWS CloudHSM Cluster zu optimieren.
Starten Sie Ihr Client-SDK
Bevor Ihr Client-SDK eine Verbindung zu Ihrem Cluster herstellen kann, muss es gebootet werden. Beim Bootstrapping von IP-Adressen zu Ihrem Cluster empfehlen wir, den --cluster-id Parameter nach Möglichkeit zu verwenden. Diese Methode füllt Ihre Konfiguration mit allen HSM-IP-Adressen in Ihrem Cluster, ohne dass Sie jede einzelne Adresse verfolgen müssen. Auf diese Weise wird Ihre Anwendungsinitialisierung für den Fall, dass ein HSM gewartet wird oder während eines Ausfalls der Availability Zone, zusätzliche Stabilität erlangt. Weitere Details finden Sie unter Bootstrap für das Client-SDK.
Authentifizieren Sie sich, um Operationen durchzuführen
In AWS CloudHSM müssen Sie sich bei Ihrem Cluster authentifizieren, bevor Sie die meisten Operationen wie kryptografische Operationen ausführen können.
Authentifizieren Sie sich mit der CloudHSM-CLI: Sie können sich bei der CloudHSM-CLI entweder im Einzelbefehlsmodus oder im interaktiven Modus authentifizieren. Einzelbefehlsmodus interaktiver Modus Verwenden Sie den Melden Sie sich mit der CloudHSM-CLI bei einem HSM an Befehl, um sich im interaktiven Modus zu authentifizieren. Um sich im Einzelbefehlsmodus zu authentifizieren, müssen Sie die Umgebungsvariablen CLOUDHSM_ROLE und festlegen. CLOUDHSM_PIN Einzelheiten dazu finden Sie unterEinzelbefehlsmodus. AWS CloudHSM empfiehlt, Ihre HSM-Anmeldeinformationen sicher zu speichern, wenn sie nicht von Ihrer Anwendung verwendet werden.
Authentifizieren Sie sich mit PKCS #11: In PKCS #11 melden Sie sich mit der C_Login-API an, nachdem Sie eine Sitzung mit C_ geöffnet haben. OpenSession Sie müssen nur ein C_Login pro Slot (Cluster) durchführen. Nachdem Sie sich erfolgreich angemeldet haben, können Sie mit C_ weitere Sitzungen öffnen, OpenSession ohne zusätzliche Anmeldevorgänge durchführen zu müssen. Beispiele zur Authentifizierung bei PKCS #11 finden Sie unter. Codebeispiele für die PKCS #11 -Bibliothek für AWS CloudHSM Client-SDK 5
Authentifizieren Sie sich mit JCE: Der AWS CloudHSM JCE Provider unterstützt sowohl die implizite als auch die explizite Anmeldung. Die Methode, die für Sie funktioniert, hängt von Ihrem Anwendungsfall ab. Wenn möglich, empfehlen wir die Verwendung von Implicit Login, da das SDK die Authentifizierung automatisch durchführt, wenn Ihre Anwendung von Ihrem Cluster getrennt wird und erneut authentifiziert werden muss. Die Verwendung der impliziten Anmeldung ermöglicht es Ihnen auch, Anmeldeinformationen für Ihre Anwendung bereitzustellen, wenn Sie eine Integration verwenden, bei der Sie keine Kontrolle über Ihren Anwendungscode haben. Weitere Informationen zu Anmeldemethoden finden Sie unterSchritt 2: Geben Sie Anmeldeinformationen für den JCE-Anbieter ein.
Authentifizieren Sie sich mit OpenSSL: Mit der OpenSSL Dynamic Engine geben Sie Anmeldeinformationen über Umgebungsvariablen ein. AWS CloudHSM empfiehlt, Ihre HSM-Anmeldeinformationen sicher zu speichern, wenn sie nicht von Ihrer Anwendung verwendet werden. Wenn möglich, sollten Sie Ihre Umgebung so konfigurieren, dass diese Umgebungsvariablen systematisch ohne manuelle Eingabe abgerufen und festgelegt werden. Einzelheiten zur Authentifizierung mit OpenSSL finden Sie unter. Installieren Sie die OpenSSL Dynamic Engine für AWS CloudHSM Client-SDK 5
Mit KSP authentifizieren: Sie können sich beim Key Storage Provider (KSP) entweder mithilfe des Windows-Anmeldeinformationsmanagers oder mithilfe von Umgebungsvariablen authentifizieren, siehe. Installieren Sie den Key Storage Provider (KSP) für AWS CloudHSM Client SDK 5
Effektive Verwaltung von Schlüsseln in Ihrer Anwendung
Steuern Sie mithilfe von Schlüsselattributen, was Schlüssel tun können: Verwenden Sie beim Generieren eines Schlüssels Schlüsselattribute, um eine Reihe von Berechtigungen zu definieren, die bestimmte Arten von Operationen für diesen Schlüssel zulassen oder verweigern. Wir empfehlen, Schlüssel mit der geringsten Anzahl von Attributen zu generieren, die zur Erfüllung ihrer Aufgabe erforderlich sind. Beispielsweise sollte ein AES-Schlüssel, der für die Verschlüsselung verwendet wird, nicht gleichzeitig Schlüssel aus dem HSM umschließen dürfen. Weitere Informationen finden Sie auf unseren Attributseiten für die folgenden Client-SDKs:
Wenn möglich, zwischenspeichern Sie Schlüsselobjekte, um die Latenz zu minimieren: Bei Schlüsselfindungsoperationen wird jedes HSM in Ihrem Cluster abgefragt. Dieser Vorgang ist teuer und lässt sich nicht mit der HSM-Anzahl in Ihrem Cluster skalieren.
Mit PKCS #11 finden Sie Schlüssel mithilfe der
C_FindObjectsAPI.Mit JCE finden Sie Schlüssel mithilfe der. KeyStore
Um eine optimale Leistung zu erzielen, AWS empfiehlt, dass Sie die Befehle zur Schlüsselsuche (wie Suchen Sie mithilfe von KMU nach AWS CloudHSM Schlüsseln anhand von Attributen undSchlüssel für einen Benutzer mit CloudHSM CLI auflisten) beim Start der Anwendung nur einmal verwenden und das zurückgegebene Schlüsselobjekt im Anwendungsspeicher zwischenspeichern. Wenn Sie dieses Schlüsselobjekt später benötigen, sollten Sie das Objekt aus Ihrem Cache abrufen, anstatt dieses Objekt bei jedem Vorgang abzufragen, was zu einem erheblichen Leistungsaufwand führen würde.
Lesen Sie Objektattribute mit so wenigen Aufrufen wie möglich
Beim Lesen von Attributen werden Anfragen an Ihren Cluster gesendet, und die Anzahl der Anfragen hängt vom verwendeten SDK ab:
Mit der PKCS #11 -Bibliothek sendet jeder
C_GetAttributeValueAufruf eine Anfrage, unabhängig davon, wie viele Attribute die Vorlage enthält. Fordern Sie jedes Attribut, das Sie benötigen, in einer Vorlage an. Weitere Informationen finden Sie unter Rufen Sie Attribute mit der PKCS #11 -Bibliothek ab für AWS CloudHSM Client-SDK 5.Bei JCE kostet jedes Attribut, das Sie anfordern, eine Anfrage. Fordern Sie nur die Attribute an, die Ihre Anwendung benötigt.
In beiden Fällen sollten Sie die Werte in Ihrer Anwendung zwischenspeichern und wiederverwenden, bis etwas das Objekt ändert.
Verwenden Sie Multithreading
AWS CloudHSM unterstützt Multithread-Anwendungen, bei Multithread-Anwendungen gibt es jedoch einige Dinge zu beachten.
Mit PKCS #11 sollten Sie die PKCS #11 -Bibliothek nur einmal initialisieren (aufrufen). C_Initialize Jedem Thread sollte eine eigene Sitzung () zugewiesen werden. C_OpenSession Es wird nicht empfohlen, dieselbe Sitzung in mehreren Threads zu verwenden.
Bei JCE sollte der AWS CloudHSM Anbieter nur einmal initialisiert werden. Teilen Sie Instanzen von SPI-Objekten nicht über mehrere Threads hinweg. Beispielsweise sollten Cipher, Signature, Digest, Mac KeyFactory oder KeyGenerator Objekte nur im Kontext ihres eigenen Threads verwendet werden.
Behandeln Sie Drosselungsfehler
Unter den folgenden Umständen können HSM-Drosselungsfehler auftreten:
Ihr Cluster ist nicht richtig skaliert, um den Spitzenverkehr zu bewältigen.
Ihr Cluster ist nicht so dimensioniert, dass bei Wartungsarbeiten eine +1-Redundanz erreicht wird.
Ausfälle der Availability Zone führen zu einer reduzierten Anzahl verfügbarer HSMs in Ihrem Cluster.
Informationen HSM-Drosselung zur optimalen Handhabung dieses Szenarios finden Sie unter.
Um sicherzustellen, dass Ihr Cluster ausreichend dimensioniert ist und nicht gedrosselt wird, AWS empfiehlt es sich, einen Lasttest in Ihrer Umgebung durchzuführen, in der der Spitzenverkehr zu erwarten ist.
Integrieren Sie Wiederholungsversuche in den Clusterbetrieb
AWS kann Ihr HSM aus Betriebs- oder Wartungsgründen ersetzen. Um Ihre Anwendung in solchen Situationen widerstandsfähig zu machen, AWS empfiehlt, für alle Vorgänge, die an Ihren Cluster weitergeleitet werden, eine clientseitige Wiederholungslogik zu implementieren. Es wird erwartet, dass nachfolgende Wiederholungsversuche bei fehlgeschlagenen Vorgängen aufgrund von Ersetzungen erfolgreich sind.
Implementieren Sie Strategien zur Notfallwiederherstellung
Als Reaktion auf ein Ereignis kann es erforderlich sein, Ihren Datenverkehr von einem ganzen Cluster oder einer Region wegzuverlagern. In den folgenden Abschnitten werden hierfür mehrere Strategien beschrieben.
Verwenden Sie VPC-Peering, um von einem anderen Konto oder einer anderen Region aus auf Ihren Cluster zuzugreifen: Sie können VPC-Peering verwenden, um von einem anderen Konto oder einer anderen Region aus auf Ihren AWS CloudHSM Cluster zuzugreifen. Informationen zur Einrichtung finden Sie unter Was ist VPC-Peering? im VPC-Peering-Handbuch. Sobald Sie Ihre Peering-Verbindungen hergestellt und Ihre Sicherheitsgruppen entsprechend konfiguriert haben, können Sie wie gewohnt mit HSM-IP-Adressen kommunizieren.
Stellen Sie von derselben Anwendung aus eine Verbindung zu mehreren Clustern her: Der JCE-Anbieter, die PKCS #11 -Bibliothek und die CloudHSM-CLI im Client-SDK 5 unterstützen die Verbindung zu mehreren Clustern aus derselben Anwendung. Sie können beispielsweise zwei aktive Cluster haben, die sich jeweils in unterschiedlichen Regionen befinden, und Ihre Anwendung kann sich mit beiden gleichzeitig verbinden und im Rahmen des normalen Betriebs einen Lastenausgleich zwischen den beiden durchführen. Wenn Ihre Anwendung nicht das Client-SDK 5 (das neueste SDK) verwendet, können Sie von derselben Anwendung aus keine Verbindung zu mehreren Clustern herstellen. Alternativ können Sie einen anderen Cluster am Laufen halten und im Falle eines regionalen Ausfalls Ihren Datenverkehr auf den anderen Cluster verlagern, um Ausfallzeiten zu minimieren. Einzelheiten finden Sie auf den jeweiligen Seiten:
Einen Cluster aus einem Backup wiederherstellen: Sie können einen neuen Cluster aus einer Sicherung eines vorhandenen Clusters erstellen. Weitere Informationen finden Sie unter Cluster-Backups in AWS CloudHSM.
Staffeln Sie Ihre Anwendungsbereitstellung
Folgen Sie gestaffelten Bereitstellungsstrategien, z. B. progressiven, wellenbasierten Bereitstellungen, Bereitstellungen in einem Paket und fortlaufenden Bereitstellungen für die Bereitstellung und Neustarts Ihrer Client-Anwendungen. Dieser Ansatz minimiert die potenziellen Auswirkungen von Änderungen und stellt gleichzeitig sicher, dass genügend Kapazität vorhanden ist, um den Produktionsdatenverkehr während der Bereitstellung abzudecken.