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.
- Melden Sie sich bei der Konsole IBM Cloud an.
- Klicken Sie auf Verwalten > Zugriff (IAM) > Berechtigungen > Erstellen.
- Wählen Sie ein Quellkonto als Dieses Konto.
- Dienst auswählen als Schematics.
- Wählen Sie Ressourcen als Alle Ressourcen oder Bestimmte Ressourcen.
- Wählen Sie als Secrets Manager den Zieldienst aus.
- Wählen Sie die Rolle als Betrachter und geheimer Leser.
- Aktivieren Sie das Kontrollkästchen Abhängige Dienste autorisieren, damit die Autorisierung durch Quell- und abhängige Dienste delegiert werden kann.
- 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.
- Melden Sie sich bei der Konsole IBM Cloud an.
- Klicken Sie auf das
Menü > Plattformautomatisierung > Schematics > Terraform > Arbeitsbereich erstellen.
- Im Abschnitt Vorlage angeben:
- GitHub, GitLab, oder
Bitbucketrepository URL-<provide your Terraform template Git repository URL>. - Persönlicher Zugangstoken-
<leave it blank>. Sie können aufOpen reference pickerklicken, um Ihre Secrets Manager Schlüsselreferenz auszuwählen. Weitere Informationen finden Sie unter Erstellen einer Secrets Manager Instanz.
- GitHub, GitLab, oder
- Im Abschnitt Vorlage angeben:
- Auf der Seite Referenz auswählen wählen Sie Konto, Dienstinstanz und Geheimnis.
- Klicken Sie auf OK.
- 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.
- Melden Sie sich bei der Konsole IBM Cloud an.
- Klicken Sie auf das
Menü > Plattformautomatisierung > Schematics > Terraform.
- Klicken Sie auf Ihren Arbeitsbereich, um ihn zu bearbeiten.
- Klicken Sie auf Einstellungen. Klicken Sie unter " Variablen" auf das Symbol " Bearbeiten", um die Parameter von
api_keyzu bearbeiten. - Klicken Sie unter Variable bearbeiten auf
Open reference picker, um die Seiten Referenzseite auswählen, hinzufügen , ** Dienstinstanz und Geheimnis anzuzeigen. - Klicken Sie auf Speichern, um den geheimen Referenzparameter unter
ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAMEanzuzeigen.
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.
-
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> -
Verweisen Sie auf das Geheimnis in Ihrem Terraform-Code.
variable "my_secret" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
Ü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.
-
Befolgen Sie die Schritte, um Ihren IAM Zugriffstoken abzurufen und authentifizieren Sie mit IBM Cloud Schematics mit der API.
-
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>" }' -
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"}' -
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>" }] }] } -
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" } -
Aktualisieren Sie den Arbeitsbereich mit der Terraform-Vorlage, um das Geheimnis zu referenzieren.
curl -X PATCH /v1/workspaces/{workspace_id} -
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.
-
Definieren Sie die Secrets Manager Instanz.
-
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.
-
Erstellen Sie die IAM Service-to-Service-Richtlinie.
-
Verweisen Sie auf das Geheimnis in Terraform-Variablen. Ersetzen Sie
secret-iddurch die tatsächliche ID des in Secrets Manager gespeicherten Geheimnisses.variable "git_token" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
Verwenden Sie den Schematics-Provider oder die CLI, um Ihren Arbeitsbereich mit der vorherigen Konfiguration zu erstellen.