Zweite Authentifizierungsebene für EP11-Verbindungen aktivieren-nur Standardplan
Um die exklusive Kontrolle für die Ausführung von Verschlüsselungsoperationen sicherzustellen, können Sie die CLI des Hyper Protect Crypto Services-Zertifikatsmanagers verwenden, um die zweite Ebene der Authentifizierung für EP11-Verbindungen (GREP11- oder PKCS #11-API) zu aktivieren. Durch Aktivieren dieser Funktion fügen Sie eine zusätzliche Ebene der Zugriffssteuerung zusätzlich zum IAM-Token (Identity and Access Management) zu den EP11-Anwendungen hinzu. Es wird eine gegenseitige TLS-Verbindung hergestellt, um sicherzustellen, dass nur EP11-Anwendungen mit einem gültigen Clientzertifikat EP11-Operationen ausführen können.
Die zweite Authentifizierungsebene für EP11-Verbindungen wird derzeit nur durch den Standardplan Hyper Protect Crypto Services unterstützt.
Best Practices für Sicherheit und Verfügbarkeit zur Aktivierung der gegenseitigen TLS-Authentifizierung
Wenn Sie TLS als zweite Authentifizierungsebene für den Zugriff auf EP11 verwenden, müssen Sie die folgenden Aspekte der Sicherheit und Verfügbarkeit beachten:
- Wenn Sie verhindern müssen, dass bestimmte Personen auf EP11 zugreifen, trennen Sie die Zertifikatadministratoren von den Servicebenutzern. Steuern Sie den Zugriff, indem Sie die Rolle Zertifikatmanager nur den Personen zuweisen, diewelche die Clientzertifikate verwalten, und anderen Servicebenutzern die entsprechenden Rollen für die operative Nutzung zuweisen. Zum Verwalten des Benutzerzugriffs müssen Sie über die Rolle Administrator mit Kontoverwaltungszugriff verfügen.
- Die EP11-APIs sind nicht zugänglich, wenn Sie ungültige Clientzertifikate nutzen oder wenn Sie nicht verfügbare private Schlüssel verwenden, um Clientzertifikate zu signieren. Um die Verfügbarkeit sicherzustellen, ordnen Sie mehreren Personen die Rolle Zertifikatmanager als Sicherung zu. Zertifikatadministratoren müssen ihre eigenen privaten Schlüssel sicher verwalten. Zertifikatsadministratoren müssen außerdem eine Sicherung aller Clientzertifikate außerhalb der Hyper Protect Crypto Services-Instanz verwalten, z. B. mithilfe von IBM Cloud Secrets Manager. Es wird außerdem empfohlen, den Ablauf der Zertifikate zu überwachen.
Vorbereitende Schritte
Bevor Sie die zweite Ebene der Authentifizierung für GREP11- oder PKCS #11-API-Verbindungen aktivieren können, müssen Sie sicherstellen, dass die folgenden Voraussetzungen erfüllt sind:
-
Ihnen ist die IAM-Rolle Zertifikatmanager zugewiesen, damit Sie die entsprechenden Aktionen ausführen können. Weitere Informationen zum Zuordnen von IAM-Rollen finden Sie in den Abschnitten zum Verwalten des Benutzerzugriffs und zum Verwalten des Zugriffs auf Ressourcen.
-
Sie verfügen über ein Clientzertifikat, das auf Ihrer Workstation vorbereitet ist, die für die TLS-Authentifizierung verwendet wird. Es wird empfohlen, den IBM Cloud Secrets Manager zu verwenden, um SSL/TLS-Zertifikate für Ihre Anwendungen und Services zu verwalten. Er ist kostenlos und stellt den persistenten Speicher für Ihre Zertifikate zur Verfügung.
-
Installieren Sie die IBM Cloud-CLI.
-
Installieren Sie das neueste Plug-in der Zertifikatmanager-CLI mit dem folgenden Befehl:
ibmcloud plugin install hpcs-cert-mgr -
Melden Sie sich bei IBM Cloud über die Befehlszeilenschnittstelle an. Wenn Sie über mehrere Konten verfügen, wählen Sie das Konto aus, mit dem Ihre Serviceinstanz erstellt wird. Stellen Sie sicher, dass Sie sich bei der richtigen Region und bei der Ressourcengruppe anmelden, in der sich die Serviceinstanz mit dem folgenden Befehl befindet:
ibmcloud target -r <region> -g <resource_group>
Schritt 1: Administratorsignaturschlüssel konfigurieren
Um die zweite Ebene der Authentifizierung zu aktivieren, müssen Sie zuerst den Signaturschlüssel des Administrators konfigurieren. Der Signaturschlüssel wird verwendet, damit Sie eine Verbindung zum Zertifikatmanagerserver Ihrer Instanz herstellen können, der die CLI-Befehle des Zertifikatmanagers verarbeitet.
-
Generieren Sie das Signaturschlüsselpaar mit dem folgenden Befehl:
ibmcloud hpcs-cert-mgr adminkey set --crn HPCS_CRN [--private]Ersetzen Sie die Variable
HPCS_CRNdurch den Cloudressourcennamen (CRN) Ihrer Hyper Protect Crypto Services-Instanz. Sie können den Befehlibmcloud resource service-instances --longverwenden, um den CRN abzurufen. Der Parameter--privateist optional. Wenn Sie diese Option verwenden, verweist die Server-URL des Zertifikatmanagers auf den privaten Endpunkt und Sie müssen das private Netz verwenden, um eine Verbindung zu Ihrer Serviceinstanz herzustellen.Nach der Ausführung dieses Befehls wird ein Paar aus öffentlichem und privatem Schlüssel generiert und auf Ihrer lokalen Workstation gespeichert. Der Standarddateipfad lautet
/Users/<username>/.hpcs-cert-mgr-cfg/. Stellen Sie sicher, dass Sie den Signaturschlüssel sicher speichern (zum Beispiel mit dem Kennwortschutz). Der öffentliche Schlüssel wird automatisch zur Signaturprüfung auf den Zertifikatmanagerserver Ihrer Instanz hochgeladen.Wenn Sie Ihren Signaturschlüssel aktualisieren möchten, können Sie den Befehl
ibmcloud hpcs-cert-mgr adminkey updateverwenden, um die Aktion auszuführen. Weitere Informationen zur Verwendung der CLI finden Sie in der CLI-Referenz für den Hyper Protect Crypto Services-Zertifikatmanagers. -
(Optional) Überprüfen und bestätigen Sie, ob der öffentliche Schlüssel mit dem folgenden Befehl auf den Server hochgeladen wurde:
ibmcloud hpcs-cert-mgr adminkey get --crn HPCS_CRN [--private]Wenn dieser Befehl den öffentlichen Schlüsselwert zurückgibt, bedeutet dies, dass Sie den öffentlichen Schlüssel erfolgreich hochgeladen haben.
Schritt 2: Client-CA-Zertifikat für Authentifizierung einrichten
Nach der Konfiguration des Administratorsignaturschlüssels müssen Sie das Zertifikat der ZertifizierungsstelleA trusted third-party organization or company that issues the digital certificates. The certificate authority typically verifies the identity of the individuals who are granted the unique certificate. des Clients für die TLS-Clientauthentifizierung auf den Zertifikatmanagerserver Ihrer Instanz hochladen.
Nachdem Sie das Client-CA-Zertifikat eingerichtet haben, können Sie nicht mehr über die Benutzerschnittstelle auf EP11-Keystores und EP11-Schlüssel zugreifen.
-
(Optional) CA- und Clientzertifikate vorbereiten
Sie können CA-Zertifikate für die GREP11-Infrastruktur mithilfe des OpenSSL-Dienstprogramms generieren.
Stellen Sie sicher, dass OpenSSL auf einer Workstation installiert wird, die Sie zum Generieren der Zertifikate verwenden können. Führen Sie die folgenden Schritte auf Ihrer Workstation aus:
- Generieren Sie den CA-Schlüssel, indem Sie den folgenden Befehl ausführen:
openssl genrsa -out ca.key 2048 - Führen Sie den folgenden Befehl aus, um das CA-Zertifikat zu erstellen:
openssl req -new -x509 -key ca.key -days 730 -out ca.pem - Erstellen Sie den Clientschlüssel mit dem folgenden Befehl:
openssl genrsa -out client-key.pem 2048 - Erstellen Sie die Anforderung zum Signieren des Clientzertifikats, indem Sie den folgenden Befehl ausführen:
openssl req -new -key client-key.pem -out client.csr - Erstellen Sie das Clientzertifikat, indem Sie den folgenden Befehl ausführen:
openssl x509 -req -days 730 -in client.csr -CA ca.pem -CAcreateserial -CAkey ca.key -out client.pem
- Generieren Sie den CA-Schlüssel, indem Sie den folgenden Befehl ausführen:
-
Laden Sie das CA-Zertifikat des Clients mit dem folgenden Befehl auf den Server hoch:
Wenn Ihr Clientzertifikat durch ein CA-Zwischenzertifikat in einer Zertifikatskette signiert ist, müssen Sie dieses CA-Zwischenzertifikat hochladen.
ibmcloud hpcs-cert-mgr cert set --crn HPCS_CRN --admin-priv-key ADMIN_PRIV_KEY --cert-id CERT_ID --cert CERT_FILE [--private]Ersetzen Sie die Variablen in der Beispielanforderung entsprechend der folgenden Tabelle.
Tabelle 1. Beschreibt die Variablen, die zum Hochladen des TLS-Zertifikats erforderlich sind Variabel Beschreibung HPCS_CRNErforderlich. Der Cloudressourcenname (CRN) Ihrer Hyper Protect Crypto Services-Instanz. Sie können den Befehl ibmcloud resource service-instances --longverwenden, um den CRN abzurufen.ADMIN_PRIV_KEYErforderlich. Der Dateipfad des aktuellen privaten Schlüssels auf Ihrer lokalen Workstation, den Sie in Schritt 1 generieren bzw. aktualisieren. Der private Schlüssel wird verwendet, um diese Befehlsaktion für Ihren Instanzzertifikatmanagerserver zu signieren. CERT_IDErforderlich. Die Zeichenfolge-ID, die Sie dem Client-CA-Zertifikat zur einfachen Identifikation zuordnen möchten. CERT_FILEErforderlich. Der Dateipfad des Client-CA-Zertifikats auf Ihrer lokalen Workstation. Der Parameter
--privateist optional. Wenn Sie diese Option verwenden, verweist die Server-URL des Zertifikatmanagers auf den privaten Endpunkt und Sie müssen das private Netz verwenden, um eine Verbindung zu Ihrer Serviceinstanz herzustellen. -
(Optional) Überprüfen und bestätigen Sie mit dem folgenden Befehl, ob das CA-Zertifikat des Clients auf den Server hochgeladen wurde:
ibmcloud hpcs-cert-mgr cert list --crn HPCS_CRN [--private]Dieser Befehl listet alle verfügbaren Client-CA-Zertifikate auf, die von Ihnen auf dem Server verwaltet werden. Wenn die Liste das Zertifikat enthält, das zuvor hochgeladen wurde, bedeutet dies, dass die Aktion erfolgreich abgeschlossen wurde.
Schritt 3: Gegenseitige TLS-Verbindungen für EP11-Anwendungen einrichten
Nachdem Sie den Administratorsignaturschlüssel und das CA-Clientzertifikat eingerichtet haben, können EP11-Benutzer gegenseitige TLS-Verbindungen für Anwendungen herstellen, die die GREP11- oder PKCS #11-API verwenden. Bevor EP11-Benutzer dies tun können, müssen sie die GREP11- oder PKCS #11-Anwendungen mit dem Clientzertifikat konfigurieren.
Wenn Sie die GREP11- oder PKCS #11-API verwenden möchten, müssen Sie sicherstellen, dass EP11-Benutzern die richtigen IAM-Rollen für die Ausführung von EP11-Operationen zugeordnet sind. Weitere Informationen finden Sie auf der Registerkarte 'HSM-APIs' in den IAM-Servicezugriffsrollen.
-
GREP11-Anwendungen konfigurieren
Abhängig von der Programmiersprache, die Sie für die Anwendung GREP11 verwenden, variiert die Konfigurationsmethode abhängig vom jeweiligen gRPC-Paket. Im Folgenden finden Sie Beispiele für Golang und JavaScript.
-
Beispiel für Golang-Code-Snippet
cert, _ := tls.LoadX509KeyPair("client.pem", "client-key.pem") var callOpts = []grpc.DialOption{ grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{Certificates: []tls.Certificate{cert}})) }tls.Config{}muss auf der Basis derConfig-Typstrukturordnungsgemäß definiert werden. Sie müssen mindestens das FeldCertificatesfestlegen. Stellen Sie sicher, dass Sie Ihren Clientschlüssel und Ihr Clientzertifikat verwenden. Den vollständigen Golang-Beispielcode finden Sie unter Das GitHub-Beispielrepository für Golang. -
Beispiel für JavaScript-Code-Snippet
credentials.push(grpc.credentials.createSsl());Ausführliche Informationen zu Funktionen und Parametern finden Sie in der Dokumentation zum Berechtigungsnachweismodul. Sie müssen die Parameter
private_keyundcert_chainfür die FunktioncreateSsl()festlegen. Den vollständigen JavaScript-Beispielcode finden Sie unter The sample GitHub repository for JavaScript.
-
-
PKCS #11-Anwendungen konfigurieren
PKCS #11 behandelt gegenseitiges TLS in der Konfigurationsdatei. Aktualisieren Sie das Feld
tlsgemäß dem folgenden Beispiel:tls: enabled: true mutual: true cacert: certfile: "<client_certificate>" keyfile: "<client_certificate_private_key>"Ersetzen Sie die Variablen in dem Beispiel auf der Basis der folgenden Tabelle:
Tabelle 3. Beschreibt die Variablen, die zum Konfigurieren von PKCS #11 -Anwendungen erforderlich sind Variabel Beschreibung client_certificateErforderlich. Der Dateipfad des Clientzertifikats, das vom Zertifikatadministrator auf den Server hochgeladen wird. client_certificate_private_keyErforderlich. Der Dateipfad des privaten Schlüssels des Clientzertifikats, der zum Signieren des Zertifikats verwendet wird.
Wenn die Anwendungen nach der Konfiguration die GREP11- oder PKCS #11-API zum Ausführen von Verschlüsselungsoperationen verwenden, wird eine gegenseitige TLS-Verbindung hergestellt und das Clientzertifikat für die zusätzliche Authentifizierungsebene validiert.
(Optional) Gegenseitige TLS-Verbindungen inaktivieren
Wenn Sie die zweite Authentifizierungsschicht nicht mehr benötigen, können Sie die Funktion inaktivieren, indem Sie alle Client-CA-Zertifikate auf dem Server löschen.
-
Löschen Sie ein CA-Zertifikat mit dem folgenden Befehl. Wiederholen Sie diesen Schritt, um alle verfügbaren Zertifikate auf dem Server zu löschen und die TLS-Verbindungen von EP11-Anwendungen zu inaktivieren.
ibmcloud hpcs-cert-mgr cert delete --crn HPCS_CRN --admin-priv-key ADMIN_PRIV_KEY --cert-id CERT_ID [--private]Ersetzen Sie die Variablen in der Beispielanforderung entsprechend der folgenden Tabelle.
Tabelle 2. Beschreibt die Variablen, die zum Löschen von CA-Zertifikaten erforderlich sind Variabel Beschreibung HPCS_CRNErforderlich. Der Cloudressourcenname (CRN) Ihrer Hyper Protect Crypto Services-Instanz. Sie können den Befehl ibmcloud resource service-instances --longverwenden, um den CRN abzurufen.ADMIN_PRIV_KEYErforderlich. Der Dateipfad Ihres aktuellen privaten Schlüssels, der auf Ihrer lokalen Workstation gespeichert ist. Der private Schlüssel wird verwendet, um diese Befehlsaktion für Ihren Instanzzertifikatmanagerserver zu signieren. CERT_IDErforderlich. Die Zeichenfolge-ID des CA-Zertifikats, das Sie löschen möchten. Sie können zunächst den Befehl ibmcloud hpcs-cert-mgr cert list --crn HPCS_CRNverwenden, um alle Zertifikate, einschließlich ihrer IDs, aufzulisten.Der Parameter
--privateist optional. Wenn Sie diese Option verwenden, verweist die Server-URL des Zertifikatmanagers auf den privaten Endpunkt und Sie müssen das private Netz verwenden, um eine Verbindung zu Ihrer Serviceinstanz herzustellen.Wenn mehrere Zertifikatsadministratoren für Ihre Serviceinstanz eingerichtet sind, stellen Sie sicher, dass alle CA-Zertifikate unter diesen Administratoren gelöscht werden.
Wenn Sie ein CA-Zertifikat des Zertifikatmanagerservers löschen, haben alle Anwendungen, welche die von diesem CA-Zertifikat ausgegebenen Clientzertifikate verwenden, keinen Zugriff auf die GREP11-Instanz über eine gegenseitige TLS-Verbindung.
Nachdem Sie alle CA-Zertifikate des Zertifikatmanagerservers gelöscht haben, wird die gegenseitige TLS-Authentifizierung für die GREP11-Instanz inaktiviert. Anwendungen benötigen dann keine gegenseitige TLS-Verbindung, um eine Verbindung zur GREP11-Instanz herzustellen.
-
(Optional) Überprüfen und bestätigen Sie mit dem folgenden Befehl, ob alle CA-Zertifikate gelöscht wurden:
ibmcloud hpcs-cert-mgr cert list --crn HPCS_CRN [--private]Wenn kein Zertifikat zurückgegeben wird, bedeutet dies, dass alle Zertifikate Ihrer Serviceinstanz gelöscht wurden.
-
(Optional) Aktualisieren Sie die GREP11- oder PKCS #11-Anwendungen, um die Zertifikatskonfigurationen zu löschen, sodass die Anwendungen das Zertifikat nicht mehr für zukünftige API-Verbindungen verwenden.
Nächste Schritte
- Die vollständige CLI-Befehlsreferenz für den Zertifikatsmanager finden Sie im Hyper Protect Crypto Services-CLI-Plug-in des Zertifikatsmanagers.
- GREP11 API- und PKCS #11 API-Referenzinformationen finden Sie unter Verschlüsselungsoperationen: GREP11 API und Verschlüsselungsoperationen: PKCS #11 API.