Integration von Secrets Manager in Schematics

IBM Cloud® Schematics unterstützt die Integration mit IBM Cloud® Secrets Manager die es Ihnen ermöglicht, sensible Informationen sicher zu verwalten, ohne dass die tatsächlichen geheimen Werte in Schematics Konfigurationen angezeigt werden. Anstatt Geheimnisse hart zu kodieren, können Sie die Geheimreferenz direkt von Secrets Manager aus bereitstellen, um die Sicherheit zu erhöhen und die Rotation der Geheimnisse zu vereinfachen.

Durch die Integration von Secrets Manager in Schematics entfällt die Notwendigkeit, geheime Werte in Automatisierungsstapeln wie Terraform, Ansible und Extensions offenzulegen. Durch die direkte Rotation von Geheimnissen und die verbesserte Sicherheit verbessert Secrets Manager die Wartbarkeit Ihrer Schematics Arbeitsabläufe.

Um Secrets Manager in Schematics zu integrieren und auf die Geheimnisse zuzugreifen, müssen Sie eine Service-to-Service-Richtlinie zwischen Secrets Manager und Schematics erstellen und Viewer und Secret Reader Rollen zuweisen.

Vorbereitende Schritte

  • Sie müssen Ihre Schlüssel-Wert-Geheimnisse haben. Um die Geheimnisse zu erstellen, siehe Secrets Manager instance erstellen.
  • Sie müssen die Autorisierung von Dienst zu Dienst konfigurieren, um Secrets Manager in den Dienst Schematics zu integrieren.
  • Führen Sie die folgenden Schritte aus, um die Berechtigung von Dienst zu Dienst auf den Dienst Schematics zu übertragen.
  1. Melden Sie sich bei der Konsole IBM Cloud an.
  2. Klicken Sie auf Verwalten > Zugriff (IAM) > Berechtigungen > Erstellen.
  3. Wählen Sie ein Quellkonto als Dieses Konto.
  4. Dienst auswählen als Schematics.
  5. Wählen Sie Ressourcen als Alle Ressourcen oder Bestimmte Ressourcen.
  6. Wählen Sie als Secrets Manager den Zieldienst aus.
  7. Wählen Sie die Rolle als Betrachter und geheimer Leser.
  8. Aktivieren Sie das Kontrollkästchen Abhängige Dienste autorisieren, damit die Autorisierung durch Quell- und abhängige Dienste delegiert werden kann.
  9. Klicken Sie auf Autorisieren.

Integration von Secrets Manager in Schematics Terraform mit Hilfe der Konsole

Folgen Sie den Schritten zur Aktivierung von Secrets Manager in Schematics, um eine sichere Verbindung mit Schematics Terraform herzustellen.

  1. Melden Sie sich bei der Konsole IBM Cloud an.
  2. Klicken Sie auf das Hamburger-Symbol Menü > Plattformautomatisierung > Schematics > Terraform > Arbeitsbereich erstellen.
    • Im Abschnitt Vorlage angeben:
      • GitHub, GitLab, oder Bitbucket repository URL- <provide your Terraform template Git repository URL>.
      • Persönlicher Zugangstoken- <leave it blank>. Sie können auf Open reference picker klicken, um Ihre Secrets Manager Schlüsselreferenz auszuwählen. Weitere Informationen finden Sie unter Erstellen einer Secrets Manager Instanz.
  3. Auf der Seite Referenz auswählen wählen Sie Konto, Dienstinstanz und Geheimnis.
  4. Klicken Sie auf OK.
  5. Klicken Sie auf Erstellen, um einen Arbeitsbereich zu erstellen.

Beachten Sie die geheime Referenz für eine Eingangsvariable, die als Referenz gespeichert ist.

Integration von Secrets Manager in Variable

Folgen Sie den Schritten zur Aktivierung von Secrets Manager in Schematics, um die Terraform-Variable Schematics sicher zu aktualisieren.

  1. Melden Sie sich bei der Konsole IBM Cloud an.
  2. Klicken Sie auf das Hamburger-Symbol Menü > Plattformautomatisierung > Schematics > Terraform.
  3. Klicken Sie auf Ihren Arbeitsbereich, um ihn zu bearbeiten.
  4. Klicken Sie auf Einstellungen. Klicken Sie unter " Variablen" auf das Symbol " Bearbeiten", um die Parameter von api_key zu bearbeiten.
  5. Klicken Sie unter Variable bearbeiten auf Open reference picker, um die Seiten Referenzseite auswählen, hinzufügen , ** Dienstinstanz und Geheimnis anzuzeigen.
  6. Klicken Sie auf Speichern, um den geheimen Referenzparameter unter ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME anzuzeigen.

Beobachten Sie die geheime Referenz für eine Eingangsvariable, die als Referenz gespeichert ist.

Schritte zur Integration von Secrets Manager in Schematics mit Hilfe von CLI

Befolgen Sie die Schritte zur Aktivierung von Secrets Manager in Schematics, um die Terraform Schematics sicher zu aktualisieren.

  1. Laden Sie die Befehlszeile herunter, installieren Sie sie und führen Sie die gemeinsamen Befehle aus, um Ihre Region anzuvisieren, eine Service-to-Service-Richtlinie zu erstellen, eine Secrets Manager-Instanz zu erstellen, die Secrets in Ihrem Terraform-Code zu referenzieren und anzuwenden.

    ibmcloud login --sso
    ibmcloud target -r <region>
    ibmcloud iam service-policy-create --source-service-name schematics --target-service-instance-name <your-secrets-manager-name> --roles "Viewer,SecretReader"
    ibmcloud secrets-manager secret-create --secret-type arbitrary --name <secret-name> --payload <secret-value>
    
  2. Verweisen Sie auf das Geheimnis in Ihrem Terraform-Code.

     variable "my_secret" {
     default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME"
    }
    
  3. Übernehmen Sie den Arbeitsbereich Schematics

    ibmcloud schematics workspace apply --id <WORKSPACE_ID>
    

Integration von Secrets Manager in Schematics Terraform mit Hilfe der API

Folgen Sie den Schritten zur Aktivierung von Secrets Manager in Schematics, um eine sichere Verbindung mit Schematics Terraform herzustellen.

  1. Befolgen Sie die Schritte, um Ihren IAM Zugriffstoken abzurufen und authentifizieren Sie mit IBM Cloud Schematics mit der API.

  2. Erstellen Sie eine Secrets Manager Instanz (falls noch nicht erstellt), indem Sie Ihren Zielendpunkt und IBM Cloud Resource Controller API verwenden.

     curl -X POST /v1/resource_instances -H "Authorization: <iam_access_token>" -d '{"name": "my-secrets-manager",
     "target": "test-eu-de",
     "resource_group": "default",
     "resource_plan_id": "<plan-id-for-secrets-manager>"
     }'
    
  3. Erstellen Sie ein Geheimnis in Secrets Manager mit Hilfe von Secrets Manager API.

     curl -X POST /api/v1/secrets/arbitrary  -H "Authorization: <iam_access_token>" -d '{"name": "my-token-secret","description": "Token for private Git repo","secret_group_id": "<secret-group-id>","resources": [],"payload": "your-token-value"}'
    
  4. Erstellen Sie einen Dienst für die IAM-Richtlinie

     {
       "type": "service",
       "subjects": [{
         "attributes": [{
           "name": "serviceName",
           "value": "schematics"
         }]
       }],
       "roles": [
         { "role_id": "crn:v1:bluemix:public:iam::::role:Viewer" },
         { "role_id": "crn:v1:bluemix:public:iam::::role:SecretReader" }
       ],
       "resources": [{
         "attributes": [{
           "name": "serviceInstance",
           "value": "<secrets-manager-instance-id>"
         }]
       }]
     }
    
  5. Verweisen Sie auf das Geheimnis in Ihrer Terraform-Variablendatei, indem Sie Schematics workspace verwenden.

     variable "git_token" {
     default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME"
    }
    
  6. Aktualisieren Sie den Arbeitsbereich mit der Terraform-Vorlage, um das Geheimnis zu referenzieren.

    curl -X PATCH /v1/workspaces/{workspace_id}
    
  7. Wenden Sie den Arbeitsbereich mit der Terraform-Vorlage an.

    curl -X POST /v1/workspaces/{workspace_id}/actions/apply
    

Einbindung von Secrets Manager in Schematics Terraform mit Hilfe von Terraform

Folgen Sie den Schritten zur Aktivierung von Secrets Manager in Schematics, um eine sichere Verbindung mit Schematics Terraform herzustellen.

  1. Definieren Sie die Secrets Manager Instanz.

  2. Erstellen Sie ein Geheimnis in Secrets Manager. Sie können die Befehlszeilenschnittstelle verwenden oder manuell Geheimnisse erstellen. In Terraform werden Geheimnisse normalerweise referenziert und nicht direkt erstellt.

  3. Erstellen Sie die IAM Service-to-Service-Richtlinie.

  4. Verweisen Sie auf das Geheimnis in Terraform-Variablen. Ersetzen Sie secret-id durch die tatsächliche ID des in Secrets Manager gespeicherten Geheimnisses.

     variable "git_token" {
     default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME"
    }
    
  5. Verwenden Sie den Schematics-Provider oder die CLI, um Ihren Arbeitsbereich mit der vorherigen Konfiguration zu erstellen.