Quorum-Authentifizierung für Administratoren verwenden - AWS CloudHSM

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.

Quorum-Authentifizierung für Administratoren verwenden

Ein Administrator auf dem HSM kann die Quorumauthentifizierung für die folgenden Vorgänge im Cluster konfigurieren: AWS CloudHSM

Nachdem der AWS CloudHSM Cluster für die Quorumauthentifizierung konfiguriert wurde, können Administratoren HSM-Benutzerverwaltungsvorgänge nicht mehr selbst durchführen. Das folgende Beispiel zeigt die Ausgabe, die angezeigt wird, wenn ein Admin versucht, einen neuen Benutzer auf dem HSM anzulegen. Der Befehl schlägt fehl und es wird ein Fehler angezeigt, der besagt, dass eine Quorumauthentifizierung erforderlich ist.

aws-cloudhsm > user create --username user1 --role crypto-user Enter password: Confirm password: { "error_code": 1, "data": "Quorum approval is required for this operation" }

Zum Ausführen eines HSM-Benutzermanagement-Vorgangs muss ein Admin folgende Aufgaben erledigen:

Abrufen eines Quorum-Tokens

Zunächst muss der Administrator die CloudHSM-CLI verwenden, um ein Quorum-Token anzufordern.

So fordern Sie ein Quorum-Token an
  1. Verwenden Sie den folgenden Befehl, um die CloudHSM-CLI zu starten.

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. Verwenden Sie den login-Befehl und melden Sie sich beim Cluster als Administrator an.

    aws-cloudhsm>login --username admin --role admin
  3. Verwenden Sie zum Generieren eines Quorum-Tokens den Befehl quorum token-sign generate. Weitere Informationen finden Sie im folgenden Beispiel. Alternativ können Sie auch den Befehl help quorum token-sign generate ausführen.

Beispiel – Generieren Sie ein Quorum-Token

Dieses Beispiel ruft ein Quorum-Token für den Admin mit Benutzernamen admin ab und speichert das Token in einer Datei namens admin.token. Zum Verwenden des Beispielbefehls ersetzen Sie diese Werte durch Ihre eigenen:

  • <admin> – Der Name des Administrators, der das Token erhält. Dies muss derselbe Admin sein, der am HSM angemeldet ist und diesen Befehl ausführt.

  • admin.token – Der Name der Datei, in der das Quorum-Token gespeichert wird.

In dem folgenden Befehl gibt user den Namen des Dienstes an, für den Sie das Token, das Sie erzeugen, verwenden können. In diesem Fall ist das Token für die HSM-Benutzermanagement-Vorgänge (Service user).

aws-cloudhsm > login --username <ADMIN> --role <ADMIN> --password <PASSWORD> { "error_code": 0, "data": { "username": "admin", "role": "admin" } } aws-cloudhsm > quorum token-sign generate --service user --token </path/admin.token> { "error_code": 0, "data": { "path": "/home/tfile" } }

Der quorum token-sign generate-Befehl generiert ein Quorum-Token für den Benutzerdienst im angegebenen Dateipfad. Die Tokendatei kann wie folgt überprüft werden:

$cat </path/admin.token> { "version": "2.0", "approval_data": "AAEAAwAAABgAAAAAAAAAAJ9eFkfcP3mNzJAlfK+OWbNhZG1pbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj5vbeAAAAAAAAAAAAAQADAAAAFQAAAAAAAAAAW/v5Euk83amq1fij0zyvD2FkbWluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPm9t4AAAAAAAAAAAABAAMAAAAUAAAAAAAAAABDw2XDwfK4hB8a15Xh1E0nYWRtaW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY+b23gAAAAAAAAAA", "token": "0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=", "signatures": [] }

Die Tokendatei besteht aus Folgendem:

  • approval_data: Ein Base64-codiertes Rohdaten-Token, das vom HSM generiert wurde.

  • token: Ein Base64-kodiertes und SHA-256-Hash-Token der approval_data

  • signatures: Ein Array von Base64-codierten signierten Tokens (Signaturen) des unsignierten Tokens, wobei jede Signatur eines Genehmiger die Form eines JSON-Objektliterals hat:

    { "username": "<APPROVER_USERNAME>", "signature": "<APPROVER_RSA2048_BIT_SIGNATURE>" }

    Jede Signatur wird aus dem Ergebnis erstellt, wenn ein Genehmiger seinen entsprechenden privaten RSA-2048-Bit-Schlüssel verwendet, dessen öffentlicher Schlüssel beim HSM registriert wurde.

Durch Ausführen des quorum token-sign list-Befehls kann bestätigt werden, dass das generierte Benutzerdienst-Quorum-Token auf dem CloudHSM-Cluster vorhanden ist:

aws-cloudhsm > quorum token-sign list { "error_code": 0, "data": { "tokens": [ { "username": "admin", "service": "user", "approvals-required": { "value": 2 }, "number-of-approvals": { "value": 0 }, "token-timeout-seconds": { "value": 597 }, "cluster-coverage": "full" } ] } }

Die token-timeout-seconds-Zeit gibt den Zeitraum in Sekunden an, in dem ein generiertes Token genehmigt werden muss, bevor es abläuft.

Unterschriften von genehmigenden Administratoren einholen

Ein Administrator, der ein Quorum-Token besitzt, muss das Token von anderen Admins genehmigen lassen. Für die Genehmigung nutzen die anderen Admins Ihren Signaturschlüssel zur kryptografischen Token-Signierung. Dies geschieht außerhalb des HSMs.

Es gibt viele verschiedene Möglichkeiten, ein Token zu signieren. Im folgenden Beispiel wird gezeigt, wie dies mit OpenSSL durchgeführt wird. Wenn Sie ein anderes Signatur-Tool verwenden, müssen Sie sicherstellen, dass dieses den privaten Schlüssel (Signaturschlüssel) des Admins zur Signierung des SHA-256-Digests des Tokens verwendet.

Beispiel – Unterschriften von genehmigenden Administratoren einholen

In diesem Beispiel benötigt der Administrator, der das Token (admin) besitzt, mindestens zwei (2) Genehmigungen. Das folgende Beispiel zeigt, wie zwei (2) Admins OpenSSL zur kryptografischen Signierung des Tokens einsetzen können.

  1. Dekodieren Sie das Base64-kodierte unsignierte Token und platzieren Sie es in einer Binärdatei:

    $echo -n '0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=' | base64 -d > admin.bin
  2. Verwenden Sie OpenSSL und den jeweiligen privaten Schlüssel des Genehmigers (admin3), um das jetzt binäre unsignierte Quorum-Token für den Benutzerservice zu signieren und eine binäre Signaturdatei zu erstellen:

    $openssl pkeyutl -sign \ -inkey admin3.key \ -pkeyopt digest:sha256 \ -keyform PEM \ -in admin.bin \ -out admin.sig.bin
  3. Kodieren Sie die binäre Signatur in Base64:

    $base64 -w0 admin.sig.bin > admin.sig.b64
  4. Kopieren Sie abschließend die Base64-kodierte Signatur und fügen Sie sie in die Tokendatei ein. Folgen Sie dabei dem zuvor für die Genehmigersignatur angegebenen JSON-Objektliteralformat:

    { "version": "2.0", "approval_data": "AAEAAwAAABgAAAAAAAAAAJ9eFkfcP3mNzJAlfK+OWbNhZG1pbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj5vbeAAAAAAAAAAAAAQADAAAAFQAAAAAAAAAAW/v5Euk83amq1fij0zyvD2FkbWluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPm9t4AAAAAAAAAAAABAAMAAAAUAAAAAAAAAABDw2XDwfK4hB8a15Xh1E0nYWRtaW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY+b23gAAAAAAAAAA", "token": "0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=", "signatures": [ { "username": "admin2", "signature": "O6qx7/mUaVkYYVr1PW7l8JJko+Kh3e8zBIqdk3tAiNy+1rW+OsDtvYujhEU4aOFVLcrUFmyB/CX9OQmgJLgx/pyK+ZPEH+GoJGqk9YZ7X1nOXwZRP9g7hKV+7XCtg9TuDFtHYWDpBfz2jWiu2fXfX4/jTs4f2xIfFPIDKcSP8fhxjQ63xEcCf1jzGha6rDQMu4xUWWdtDgfT7um7EJ9dXNoHqLB7cTzphaubNaEFbFPXQ1siGmYKmvETlqe/ssktwyruGFLpXs1n0tJOEglGhx2qbYTs+omKWZdORl5WIWEXW3IXw/Dg5vVObrNpvG0eZKO8nSMc27+cyPySc+ZbNw==" }, { "username": "admin3", "signature": "O6qx7/mUaVkYYVr1PW7l8JJko+Kh3e8zBIqdk3tAiNy+1rW+OsDtvYujhEU4aOFVLcrUFmyB/CX9OQmgJLgx/pyK+ZPEH+GoJGqk9YZ7X1nOXwZRP9g7hKV+7XCtg9TuDFtHYWDpBfz2jWiu2fXfX4/jTs4f2xIfFPIDKcSP8fhxjQ63xEcCf1jzGha6rDQMu4xUWWdtDgfT7um7EJ9dXNoHqLB7cTzphaubNaEFbFPXQ1siGmYKmvETlqe/ssktwyruGFLpXs1n0tJOEglGhx2qbYTs+omKWZdORl5WIWEXW3IXw/Dg5vVObrNpvG0eZKO8nSMc27+cyPySc+ZbNw==" } ] }

Genehmigen Sie das Token auf dem AWS CloudHSM Cluster und führen Sie einen Benutzerverwaltungsvorgang aus

Sobald ein Administrator über die erforderlichen Genehmigungen/Signaturen verfügt hat, wie im vorherigen Abschnitt beschrieben, kann er dieses Token zusammen mit einem der folgenden Benutzerverwaltungsvorgänge an den AWS CloudHSM -Cluster weitergeben:

Weitere Informationen zur Verwendung dieser Befehle finden Sie unter Verwenden der CloudHSM CLI.

Während der Transaktion wird das Token innerhalb des AWS CloudHSM Clusters genehmigt und der angeforderte Benutzerverwaltungsvorgang ausgeführt. Der Erfolg des Benutzerverwaltungsvorgangs hängt sowohl von einem gültigen genehmigten Quorum-Token als auch von einem gültigen Benutzerverwaltungsvorgang ab.

Der Admin kann das Token nur für einen Vorgang nutzen. Wurde dieser erfolgreich ausgeführt, verliert das Token seine Gültigkeit. Um einen weiteren HSM-Benutzerverwaltungsvorgang durchzuführen, muss der Administrator den oben beschriebenen Vorgang wiederholen. Das heißt, der Administrator muss ein neues Quorum-Token generieren, neue Signaturen von den Genehmigenden einholen und dann das neue Token auf dem HSM mit dem angeforderten Benutzerverwaltungsvorgang genehmigen und verbrauchen.

Anmerkung

Das Quorum-Token ist nur gültig, solange Ihre aktuelle Anmeldesitzung geöffnet ist. Wenn Sie sich von CloudHSM-CLI abmelden oder wenn die Netzwerkverbindung unterbrochen wird, ist das Token nicht mehr gültig. Ebenso kann ein autorisiertes Token nur innerhalb der CloudHSM-CLI verwendet werden. Es kann nicht zur Authentifizierung in einer anderen Anwendung verwendet werden.

Beispiel Einen neuen Benutzer als Administrator erstellen

Im folgenden Beispiel erstellt ein eingeloggter Administrator einen neuen Benutzer auf dem HSM:

aws-cloudhsm > user create --username user1 --role crypto-user --approval /path/admin.token Enter password: Confirm password: { "error_code": 0, "data": { "username": "user1", "role": "crypto-user" } }

Der Administrator gibt dann den user list-Befehl ein, um die Erstellung des neuen Benutzers zu bestätigen:

aws-cloudhsm > user list{ "error_code": 0, "data": { "users": [ { "username": "admin", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "admin2", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "admin3", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "admin4", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "user1", "role": "crypto-user", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" }, { "username": "app_user", "role": "internal(APPLIANCE_USER)", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" } ] } }

Wenn der Administrator versucht, einen anderen HSM-Benutzerverwaltungsvorgang durchzuführen, schlägt dieser mit einem Quorum-Authentifizierungsfehler fehl:

aws-cloudhsm > user delete --username user1 --role crypto-user { "error_code": 1, "data": "Quorum approval is required for this operation" }

Wie unten gezeigt, zeigt der quorum token-sign list-Befehl, dass der Administrator keine genehmigten Token hat. Um eine weitere HSM-Benutzerverwaltungsoperation durchzuführen, muss der Administrator ein neues Quorum-Token generieren, neue Signaturen von den Genehmigern einholen und die gewünschte Benutzerverwaltungsoperation mit dem Argument --approval ausführen, um das Quorum-Token bereitzustellen, das bei der Ausführung der Benutzerverwaltungsoperation genehmigt und aufgenommen werden soll.

aws-cloudhsm > quorum token-sign list { "error_code": 0, "data": { "tokens": [] } }