Intégrer Secrets Manager dans Schematics
IBM Cloud® Schematics prend en charge l'intégration avec IBM Cloud® Secrets Manager qui vous permet de gérer en toute sécurité des informations sensibles sans afficher les valeurs secrètes réelles dans les configurations Schematics. Au lieu de coder les secrets en dur, vous pouvez fournir la référence du secret directement à partir de Secrets Manager pour renforcer la sécurité et simplifier la rotation des secrets.
L'intégration de Secrets Manager dans Schematics élimine le besoin d'exposer des valeurs secrètes dans des piles d'automatisation telles que Terraform, Ansible et Extensions. Grâce à la rotation directe des secrets et à une sécurité accrue, Secrets Manager améliore la maintenabilité de vos flux de travail Schematics.
Pour intégrer Secrets Manager dans Schematics et accéder aux secrets, vous devez créer une politique de service à service entre Secrets Manager et Schematics et attribuer des rôles à Viewer et Secret Reader.
Avant de commencer
- Vous devez avoir vos secrets clé-valeur. Pour créer les secrets, voir créer l'instance Secrets Manager.
- Vous devez configurer l'autorisation de service à service pour intégrer Secrets Manager dans le service Schematics.
- Procédez comme suit pour accorder une autorisation d'accès de service à service au service Schematics.
- Connectez-vous à la console IBM Cloud.
- Cliquez sur Gérer > Accès (IAM ) > Autorisations > Créer.
- Sélectionnez un compte source comme Ce compte.
- Sélectionnez le service comme Schematics.
- Sélectionnez les ressources comme Toutes les ressources ou Ressources spécifiques.
- Sélectionnez le service cible comme Secrets Manager.
- Sélectionnez le rôle de spectateur et de lecteur secret.
- Sélectionnez Autoriser les services dépendants pour permettre la délégation de l'autorisation par les services sources et dépendants.
- Cliquez sur Autoriser.
Intégrer Secrets Manager dans Schematics Terraform en utilisant la console
Suivez les étapes pour permettre à Secrets Manager dans Schematics de se connecter en toute sécurité à Schematics Terraform.
- Connectez-vous à la console IBM Cloud.
- Cliquez sur l'icône Menu
> Platform Automation > Schematics > Terraform > Créer un espace de travail.
- Dans la section Specify Template:
- GitHub, GitLab, ou
Bitbucketréférentiel URL-<provide your Terraform template Git repository URL>. - Jeton d'accès personnel-
<leave it blank>. Vous pouvez cliquer surOpen reference pickerpour sélectionner votre clé de référence Secrets Manager. Pour plus d'informations, voir la création d'une instance Secrets Manager.
- GitHub, GitLab, ou
- Dans la section Specify Template:
- Dans la page Sélectionner une référence, sélectionnez Compte, Instance de service et Secret.
- Cliquez sur OK.
- Cliquez sur Créer pour créer un espace de travail.
Observez la référence secrète d'une variable d'entrée, qui est stockée en tant que référence.
Intégration de Secrets Manager en variable
Suivez les étapes pour activer Secrets Manager dans Schematics afin de mettre à jour en toute sécurité la variable Terraform Schematics.
- Connectez-vous à la console IBM Cloud.
- Cliquez sur l'icône Menu
> Platform Automation > Schematics > Terraform.
- Cliquez sur l'espace de travail à modifier.
- Cliquez sur Paramètres. Dans Variables, cliquez sur l'icône Edit pour modifier les paramètres de
api_key. - Dans Modifier la variable, cliquez sur le site
Open reference pickerpour afficher la page Sélectionner une page de référence, ajouter , ** Instance de service et Secret. - Cliquez sur Enregistrer pour afficher le paramètre de référence secret à l'adresse
ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME.
Observer la référence secrète d'une variable d'entrée stockée comme référence.
Étapes pour intégrer Secrets Manager dans Schematics en utilisant le CLI
Suivez les étapes pour permettre à Secrets Manager dans Schematics de mettre à jour en toute sécurité le Terraform Schematics.
-
Téléchargez et installez la ligne de commande et exécutez les commandes partagées pour cibler votre région, créer une politique de service à service, créer une instance Secrets Manager, référencer les secrets dans votre code Terraform et appliquer.
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> -
Faites référence au secret dans votre code Terraform.
variable "my_secret" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
Appliquer l'espace de travail Schematics
ibmcloud schematics workspace apply --id <WORKSPACE_ID>
Intégrer Secrets Manager dans Schematics Terraform en utilisant l'API
Suivez les étapes pour permettre à Secrets Manager dans Schematics de se connecter en toute sécurité à Schematics Terraform.
-
Suivez les étapes permettant d'extraire votre jeton d'accès IAM et de vous authentifier auprès d'IBM Cloud Schematics à l'aide de l'API.
-
Créez une instance Secrets Manager (si ce n'est pas déjà fait) en utilisant votre point de terminaison cible et l'API du contrôleur de ressources IBM Cloud.
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>" }' -
Créez un secret dans Secrets Manager en utilisant l'API Secrets Manager.
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"}' -
Créer un service pour gérer la politique IAM
{ "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>" }] }] } -
Faites référence au secret dans votre fichier de variables Terraform en utilisant l'espace de travail Schematics.
variable "git_token" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
Mettre à jour l'espace de travail avec le modèle Terraform pour référencer le secret.
curl -X PATCH /v1/workspaces/{workspace_id} -
Appliquer l'espace de travail avec le modèle Terraform.
curl -X POST /v1/workspaces/{workspace_id}/actions/apply
Intégrer Secrets Manager dans Schematics Terraform en utilisant Terraform
Suivez les étapes pour permettre à Secrets Manager dans Schematics de se connecter en toute sécurité à Schematics Terraform.
-
Définir l'instance Secrets Manager.
-
Créez un secret sur Secrets Manager. Vous pouvez utiliser l'interface de programmation ou créer manuellement des secrets. Dans Terraform, les secrets sont généralement référencés, et non créés directement.
-
Créer une politique IAM Service.
-
Référencez le secret dans les variables Terraform. Remplacer
secret-idpar l'ID réel du secret stocké dans Secrets Manager.variable "git_token" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
Utilisez le fournisseur Terraform Schematics ou le CLI pour créer votre espace de travail avec la configuration précédente.