Terraform für Hyper Protect Crypto Services mit Unified Key Orchestrator einrichten

Terraform in IBM Cloud® ermöglicht eine vorhersehbare und konsistente Bereitstellung von IBM Cloud-Services, damit Sie in kürzester Zeit komplexe, mehrschichtige Cloudumgebungen nach IaC-Prinzipien (Infrastructure as Code) erstellen können. Ähnlich wie bei der Verwendung der IBM Cloud-CLI oder -API und SDKs können Sie das Einrichten, Aktualisieren und Löschen Ihrer Hyper Protect Crypto Services -Instanzen mithilfe von HashiCorp Configuration Language (HCL) automatisieren.

In diesem Abschnitt wird nur erläutert, wie Sie Terraform für Hyper Protect Crypto Services mit Unified Key Orchestratorkonfigurieren können.

Sie suchen eine verwaltete Terraform on IBM Cloud-Lösung? Probieren Sie IBM Cloud® Schematics aus. Mit Schematics können Sie die Terraform-Scripting-Sprache verwenden, mit der Sie vertraut sind. Sie müssen sich jedoch nicht um die Einrichtung und Verwaltung der Terraform-Befehlszeile und des IBM Cloud-Provider-Plug-ins kümmern. Schematics stellt auch vordefinierte Terraform-Vorlagen bereit, die Sie ohne großen Aufwand aus dem IBM Cloud-Katalog installieren können.

Bevor Sie beginnen, stellen Sie sicher, dass Sie über den erforderlichen Zugang verfügen, um Hyper Protect Crypto Services Ressourcen zu erstellen und mit ihnen zu arbeiten.

Beispiel: Serviceinstanzen mithilfe von Terraform einrichten und initialisieren

Führen Sie die folgenden Schritte aus, um eine Hyper Protect Crypto Services-Instanz mithilfe von Terraform zu erstellen und zu initialisieren:

  1. Installieren Sie die Terraform-Befehlszeilenschnittstelle und konfigurieren Sie das IBM Cloud Provider-Plug-in für Terraform, indem Sie den Anweisungen im Lernprogramm mit der Einführung zu Terraform unter IBM Cloud folgen.

    Das Plug-in abstrahiert die IBM Cloud-APIs, die zum Einrichten, Aktualisieren oder Löschen von Hyper Protect Crypto Services-Serviceinstanzen und -Ressourcen verwendet werden. Die bevorzugten Terraform-Versionen sind 0.13.x, 0.14.x und 0.15.x. In der Datei versions.tf müssen Sie für den Parameter version die Zahl 1.29.0 angeben.

  2. Legen Sie die Administratorsignaturschlüssel für die Verschlüsselungseinheit fest. Sie können eines der folgenden Verfahren auswählen, um Administratorsignaturschlüssel zu erstellen:

    • IBM Cloud-CLI-Plug-in Trusted Key Entry (TKE) verwenden

      Nach der Installation und Konfiguration des CLI-Plug-ins TKE anhand dieser Anweisungen können Sie den Befehl ibmcloud tke sigkey-add verwenden, um Administratorsignaturschlüssel zu erstellen. Die Signaturschlüssel werden in Dateien gespeichert, die durch Kennwörter auf Ihrer lokalen Workstation geschützt sind. Der Dateipfad wird durch die Umgebungsvariable CLOUDTKEFILES angegeben.

    • Signierservice eines anderen Anbieters verwenden

      Zum Erstellen, Speichern und Zugreifen auf die Signaturschlüssel, die durch das TKE-CLI-Plug-in und von Terraform verwendet werden, kann ein Signaturservice eines anderen Anbieters genutzt werden. Wenn Sie den Signierservice im CLI-Plug-in TKE aktivieren möchten, müssen Sie die Umgebungsvariable TKE_SIGNSERV_URL auf der lokalen Workstation auf die URL und die Portnummer setzen, an der der Signaturservice ausgeführt wird. Um den Signierservice in Terraform zu aktivieren, müssen Sie den Parameter signature_server_url im Ressourcenblock auf denselben Wert setzen.

  3. Erstellen Sie eine Terraform-Konfigurationsdatei main.tf in demselben Ordner wie versions.tf. In dieser Datei fügen Sie die Konfigurationen hinzu, um die entsprechenden Aktionen auszuführen.

    Die folgende Vorlage ist eine Beispielkonfigurationsdatei, um eine Hyper Protect Crypto Services-Instanz mit zwei operativen Verschlüsselungseinheiten in der Region us-south einzurichten. Diese Instanz wird gemäß dem Unified Key Orchestrator-Preistarif berechnet und mit 2 Administratoren initialisiert. Der Masterschlüssel wird automatisch in Recovery-Verschlüsselungseinheiten generiert, die der Instanz zugeordnet sind. Die Signaturschlüssel werden unter Verwendung des CLI-Plug-ins TKE erstellt und in lokalen geschützten Dateien gespeichert.

    Da Verschlüsselungseinheiten für Wiederherstellung derzeit in anderen unterstützten Regionen als Madrid (eu-es) verfügbar sind, wird die Verwendung von Terraform zur Initialisierung von Hyper Protect Crypto Services-Instanzen in dieser Region nicht unterstützt. Weitere Informationen zur manuellen Initialisierung finden Sie in der Einführung zu Ansätzen für die Serviceinstanzinitialisierung.

    resource ibm_hpcs hpcs {
       location             = "us-south"
       name                 = "test-hpcs"
       plan                 = "hpcs-hourly-uko"
       units                = 2
       signature_threshold  = 1
       revocation_threshold = 1
       admins {
         name  = "admin1"
         key   = "/cloudTKE/1.sigkey"
         token = "sensitive1234"
       }
       admins {
         name  = "admin2"
         key   = "/cloudTKE/2.sigkey"
         token = "sensitive1234"
       }
    }
    
    resource "ibm_iam_user_policy" "policy" {
       ibm_id = "user@ibm.com"
       roles  = ["Manager"]
    
       resources {
         service              = "test-hpcs"
         resource_instance_id = element(split(":", ibm_resource_instance.hpcs.id), 7)
       }
    }
    

    In Produktionsumgebungen wird empfohlen, die Kennwörter für die Signaturschlüsseldateien oder die Tokens für den Signaturservice während des Prozesses zum Anwenden von Terraform anzugeben, anstatt sie in Klartext in der Konfigurationsdatei zu schreiben. In diesem Fall werden Sie aufgefordert, die Authentifizierungskennwörter oder Tokens einzugeben, wenn Sie Terraform-Befehle ausführen. Nach der Initialisierung der Instanz werden die Werte, die Sie für die Kennwörter oder Token eingeben, in einer .tfstate-Datei gespeichert. Weitere Informationen zum Sichern sensibler Daten in Terraform finden Sie unter Sensible Daten im Status.

    In der folgenden Tabelle werden die unterstützten Parameter aufgelistet, wenn Sie eine Serviceinstanz mit Terraform erstellen und initialisieren:

    Tabelle 1. Unterstützte Parameter für die Bereitstellung einer Serviceinstanz mit Terraform
    Parameter Beschreibung
    name Erforderlich. Der Name Ihrer Hyper Protect Crypto Services-Instanz.
    location Erforderlich. Die Abkürzung für die Region, z. B. us-south, die den geografischen Bereich darstellt, in dem sich die operativen Verschlüsselungseinheiten Ihrer Serviceinstanz befinden. Weitere Informationen finden Sie unter Regionen und Standorte. Da Verschlüsselungseinheiten für die Wiederherstellung in Madrid nicht verfügbar sind (eu-es) können Sie Terraform nicht für die Instanzinitialisierung in der eu-es-Region verwenden.
    plan Erforderlich. Der Preisplan für Ihre Serviceinstanz.
    units Erforderlich. Die Anzahl der operativen Verschlüsselungseinheiten für Ihre Serviceinstanz. Gültige Werte sind 2 oder 3.
    failover_units Nicht zutreffend. Die regionsübergreifende Hochverfügbarkeit wird derzeit für Unified Key Orchestrator nicht unterstützt.
    service_endpoints Nicht zutreffend. Die Standardeinstellung ist public-and-private.
    tags Optional. Tags, die Ihrer Instanz zugeordnet sind, werden verwendet, um Ihre Ressourcen zu organisieren. Weitere Informationen zu Tags finden Sie unter Mit Tags arbeiten.
    resource_group_id Optional. Die Ressourcengruppe, in der Sie Ihre Serviceinstanz organisieren und verwalten möchten. Wenn Sie den Wert nicht angeben, lautet die Standardressourcengruppe Default.
    signature_threshold Erforderlich. Die Anzahl der Administratorsignaturen, die für die Ausführung von Verwaltungsbefehlen erforderlich sind. Gültige Werte liegen im Bereich von 1 bis 8. Sie müssen ihn auf mindestens 2 setzen, um die Quorumauthentifizierung zu aktivieren.
    revocation_threshold Erforderlich. Die Anzahl der Administratorsignaturen, die erforderlich sind, um einen Administrator zu entfernen, nachdem Sie den Imprint-Modus verlassen haben. Gültige Werte liegen im Bereich von 1 bis 8.
    admins Erforderlich. Die Liste der Administratoren für die Instanzverschlüsselungseinheiten. Sie können bis zu acht Administratoren konfigurieren und die Anzahl muss größer oder gleich den von Ihnen angegebenen Schwellenwerten sein. Die folgenden Werte müssen für jeden Administrator festgelegt werden:

    name
    Der Name des Administrators. Er darf nicht länger sein als 30 Zeichen.

    Schlüssel:

    • Wenn Sie Signaturschlüsseldateien auf der lokalen Workstation verwenden, die vom TKE-CLI-Plug-in erstellt werden und keinen Signaturservice eines anderen Anbieters verwenden, geben Sie den absoluten Pfad und Dateinamen der Signaturschlüsseldatei an, die verwendet werden soll.
    • Wenn Sie einen Signierservice zum Bereitstellen von Signaturschlüsseln verwenden, geben Sie den Namen des Signaturschlüssels abhängig von der Definition des Signierservice an. Die Zeichenfolge für den Schlüsselnamen wird an einen URI angehängt, der an den Signaturservice gesendet wird, und darf nur nicht reservierte Zeichen enthalten, wie in Abschnitt 2.3 von RFC3986.

    token:

    • definiert. Wenn Sie Signaturschlüsseldateien auf der lokalen Workstation verwenden, die vom TKE-CLI-Plug-in erstellt werden und keinen Signaturservice eines anderen Anbieters verwenden, Geben Sie das Administratorkennwort an, um auf die entsprechende Signaturschlüsseldatei zuzugreifen.
    • Wenn Sie einen Signierservice zum Bereitstellen von Signaturschlüsseln verwenden, geben Sie das Token an, das die Verwendung des Signaturschlüssels abhängig von der Signierservicedefinition autorisiert.

    Hinweis: Der Tokenparameter ist optional. Wenn Sie das Token nicht angeben, werden Sie aufgefordert, den Tokenwert einzugeben, wenn Sie Terraform-Befehle ausführen. Nach der Initialisierung der Instanz werden die Werte, die Sie für die Kennwörter oder Token eingeben, in einer .tfstate-Datei gespeichert. Weitere Informationen zum Sichern sensibler Daten in Terraform finden Sie unter Sensible Daten im Status.

    signature_server_url Optional. Die URL und die Portnummer, an der der Signaturservice ausgeführt wird. Wenn Sie einen Signierservice eines anderen Anbieters verwenden, um Administratorsignaturschlüssel zur Verfügung zu stellen, dann müssen Sie diesen Parameter angeben.

    Wenn Sie mehrere Serviceinstanzen in der Datei main.tf verwalten, stellen Sie sicher, dass Sie für jede Instanz denselben Parameter signature_server_url festlegen. Andernfalls sind Sie nicht in der Lage, die Aktionen erfolgreich auszuführen.

  4. Initialisieren Sie die Terraform-CLI mit dem folgenden Befehl.

    terraform init
    
  5. Erstellen Sie einen Terraform-Ausführungsplan mit dem folgenden Befehl. Der Terraform-Ausführungsplan fasst alle Aktionen zusammen, die ausgeführt werden müssen, um die Hyper Protect Crypto Services-Instanz in Ihrem Konto zu erstellen.

    terraform plan
    
  6. Erstellen und initialisieren Sie die Hyper Protect Crypto Services-Instanz, indem Sie Terraform anwenden.

    terraform apply
    
  7. Überprüfen Sie, ob die Instanz Hyper Protect Crypto Services erstellt und über die IBM Cloud-Ressourcenlisteinitialisiert wurde.

  8. Überprüfen Sie, ob die Zugriffsrichtlinie erfolgreich zugeordnet wurde. Weitere Informationen finden Sie unter Zugeordneten Zugriff in der Benutzerschnittstelle prüfen.

Weitere Schritte

Weitere Informationen zur Verwendung von Terraform für die Verwaltung von Hyper Protect Crypto Services-Instanzen mit Unified Key Orchestratorfinden Sie in der folgenden Terraform-Dokumentation: