Création de données d'identification de service
Vous pouvez utiliser IBM Cloud® Secrets Manager pour créer des identifiants de service que vous pourriez utiliser pour accéder à une ressource IBM Cloud nécessitant une authentification.
Les données d'identification de service peuvent contenir des données d'identification émises par Identity and Access Management. Les informations d'identification peuvent également être des informations d'identification natives spécifiques au service, telles que des clés HMAC, un identifiant et un mot de passe d'utilisateur de base de données, des informations d'identification SASL ou des certificats TLS. Pour en savoir plus sur les types de secrets que vous pouvez gérer à l'aide d' Secrets Manager, consultez la section « Qu'est-ce qu'un secret? ».
Services IBM Cloud pris en charge
Vous pouvez créer des données d'identification de service via Secrets Manager pour les services IBM Cloud suivants:
Avant de commencer
Avant de commencer, vérifiez que vous disposez du niveau d'accès requis. Pour créer ou ajouter des secrets, vous devez utiliser le rôle de service Auteur ou supérieur.
Un administrateur de compte, ou toute entité disposant du niveau d'accès requis, peut modifier de l'extérieur les références de service créées et gérées par Secrets Manager. Si un tel justificatif est supprimé en dehors de Secrets Manager, le service peut se comporter de manière inattendue. Par exemple, vous risquez de ne pas pouvoir créer ou effectuer une rotation des données d'identification.
Notez que dans le cas des données d'identification de service créées pour les bases de données, si, en plus des données d'identification, vous modifiez également les droits d'accès à la base de données pour les données d'identification créées, celles-ci ne seront pas synchronisées une fois que les données d'identification de service ont été modifiées. Lors de la rotation des données d'identification d'un service de bases de données, il s'agit d'une rotation d'identité.
Lors de la modification de la durée de vie d'un secret de données d'identification de service, il est appliqué uniquement lors de la prochaine rotation de la version du secret.
Le secret du justificatif de service créé par Secrets Manager sera également le nom de la clé de ressource. Par exemple, un secret d'authentification de service pour Cloud Object Storage appelé my-secret-name aura une clé de ressource
correspondante dans Cloud Object Storage appelée my-secret-name. Si vous renommez ultérieurement le secret dans Secrets Manager, ce changement ne se reflétera pas dans la clé de ressource, mais la fonctionnalité ne sera pas interrompue.
Affectation du rôle d'accès au service IAM pour les données d'identification du service
Pour créer un justificatif de service, un rôle d'accès au service IAM doit être sélectionné. Les rôles disponibles pour la sélection peuvent différer entre les services pris en charge. Voir la liste des services pris en charge pour la documentation associée. Le rôle sélectionné est ensuite associé à un IDIAM Service qui peut être un ID de service existant ou généré automatiquement.
L'ID de service continue d'être utilisé une fois la rotation des secrets effectuée. Si vous supprimez un secret, un ID de service préexistant ne sera pas supprimé, mais un ID de service généré automatiquement sera supprimé.
Si vous choisissez d'utiliser un ID de service préexistant, vous pouvez également préconfigurer ses règles d'accès au service. Dans ce cas, sélectionnez Aucun comme rôle lors de la création du secret. En savoir plus sur les règles IAM.
Meilleures pratiques relatives aux données d'identification de service
Il est recommandé d'appliquer le principe de l'accès de moindre privilège pour les cas d'utilisation en production:
- Lors de la définition de l'autorisation de service à service, elle doit être définie entre des instances de service source et cible concrètes, et non entre tous les services.
- Lorsque vous définissez manuellement l'accès pour les ID de service à utiliser avec des données d'identification de service, vous devez l'appliquer à une instance de service concrète.
Création d'identifiants de service dans l'interface utilisateur
Pour créer des identifiants de service à l'aide de l'interface utilisateur d' Secrets Manager, procédez comme suit.
-
Dans la console, cliquez sur l'icône Menu
> Liste de ressources.
-
Dans la liste des services, sélectionnez votre instance de Secrets Manager.
-
Dans le tableau Secrets, cliquez sur Ajouter.
-
Dans la liste des types de secrets, cliquez sur la vignette « Identifiants de service ».
-
Cliquez sur Suivant.
-
Ajoutez un nom et une description pour facilement identifier votre secret.
-
Sélectionnez le groupe de secretsEnvironnement et contraintes auxquels les secrets contenus doivent adhérer. Un utilisateur peut être associé à un groupe de secrets pour activer l'accès et la collaboration. auquel vous souhaitez attribuer ce secret.
Vous n'avez pas de groupe de secrets ? Dans la zone Groupe de secrets, vous pouvez cliquer sur Créer pour fournir un nom et une description pour un nouveau groupe. Votre secret est automatiquement ajouté au nouveau groupe. Pour plus d'informations sur les groupes de secrets, consultez Organisation de vos secrets.
-
Facultatif : ajoutez des étiquettes pour vous aider à rechercher des secrets similaires dans votre instance.
-
Sélectionnez le service et l'instance de service pour lesquels vous souhaitez créer un justificatif d'identité
S'il s'agit de la première fois que l'instance de service est sélectionnée ou qu'un CRN de service a été fourni, autorisez d'abord Secrets Manager à y accéder.
- Cliquez sur Autoriser et sélectionnez Gestionnaire de clés
-
Cliquez sur Suivant.
-
Indiquez l'entrée demandée, en fonction du service sélectionné.
-
Facultatif: ajoutez des métadonnées à votre secret ou à une version spécifique de votre secret.
- Téléchargez un fichier ou entrez les métadonnées et les métadonnées de version au format JSON.
-
Facultatif : définissez une durée de validité ou un temps de vie (TTL) pour le secret.
En définissant une durée de validité pour votre identifiant de service, vous déterminez la durée pendant laquelle l'identifiant associé reste valide. Une fois que la durée de validité des informations d'identification du service arrive à expiration, celles-ci sont automatiquement révoquées.
-
Facultatif: Activez la rotation automatique de votre secret.
-
Cliquez sur Suivant.
-
Passez en revue les détails de votre secret.
-
Cliquez sur Ajouter.
Création d'identifiants de service à partir de l'interface de ligne de commande (CLI)
Pour créer un secret d'identification de service à l'aide du plug-in CLI « Secrets Manager », exécutez la ibmcloud secrets-manager secret-create commande suivante. Vous pouvez spécifier le type de secret à l'aide de l'option --secret-type service_credentials. Par exemple, la commande suivante crée des données d'identification de service pour une instance Cloud Object Storage,
avec prise en charge HMAC. Ainsi que la spécification du rôle IAM à fournir pour ce justificatif, par exemple Writer.
ibmcloud secrets-manager secret-create --secret-type="service_credentials" --secret-name="example-service-credentials-secret" --secret-source-service='{"instance": {"crn": "CRN of the instance to create a credential for"},"parameters": {"HMAC": true},"role": {"crn": "crn:v1:bluemix:public:iam::::serviceRole:Writer"}}'
La commande génère en sortie la valeur d'ID du secret ainsi que d'autres métadonnées. Pour plus d'informations sur les options de commande, voir ibmcloud secrets-manager secret-create.
Création d'identifiants de service à l'aide de l'API
Vous pouvez créer des identifiants de service par programmation en appelant l'API « Secrets Manager ».
Vous pouvez stocker des métadonnées adaptées aux besoins de votre organisation à l'aide des paramètres de demande custom_metadata et version_custom_metadata. Les valeurs de version_custom_metadata sont
renvoyées uniquement pour les versions d'un secret. Les métadonnées personnalisées de votre secret sont stockées comme toutes les autres métadonnées, pour un maximum de 50 versions, et vous ne devez pas inclure de données confidentielles.
Dans l'exemple suivant, un justificatif de service pour Cloud Object Storage est créé, avec des paramètres personnalisés avec l'ID IAM d'un Service ID existant, et en activant HMAC. Ainsi que la spécification du rôle IAM à fournir pour ce justificatif,
par exemple Writer.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
{
"name": "example-service-credentials-secret",
"description": "Description of my Service Credentials secret",
"secret_type": "service_credentials",
"secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
"labels": [
"dev",
"us-south"
],
"source_service": {
"instance": {
"crn": "CRN of the instance to create a credential for"
},
"parameters": {
"serviceid_crn": "Existing Service ID's IAM ID",
"HMAC": true
},
"role": {
"crn": "crn:v1:bluemix:public:iam::::serviceRole:Writer"
}
}
}' \ "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"
Une réponse ayant abouti renvoie la valeur d'ID du secret ainsi que d'autres métadonnées. Pour plus d'informations sur les paramètres de demande obligatoires et facultatifs, consultez la Référence des API.
Créer des identifiants de service avec Terraform
Vous pouvez créer des identifiants de service de manière programmatique en utilisant Terraform pour Secrets Manager L'exemple suivant montre une configuration que vous pouvez utiliser pour créer des informations d'identification de service pour le Cloud Object Storage.
resource "ibm_sm_service_credentials_secret" "my_service_credentials_secret" {
instance_id = "local.instance_id"
region = "local.region"
name = "example-service-credentials-secret"
secret_group_id = "ibm_sm_secret_group.sm_secret_group_test.secret_group_id"
description = "Description of my Service Credentials secret"
ttl = "24h"
source_service {
role = {
crn = "crn:v1:bluemix:public:iam::::serviceRole:Writer"
},
instance = {
crn = "crn:v1:bluemix:public:cloud-object-storage:global:a/347df6de25020f0fa8b711c6d9881111:f35e85fc-3d4d-476e-8547-51222e3c1111::"
},
parameters = {
HMAC: true
}
}
rotation {
auto_rotate = true
interval = 1
unit = "day"
}
}
Déployer les identifiants de service avec une rotation automatisée en utilisant les modules Terraform IBM (TIM) pour Secrets Manager Secret. Consultez les modules Terraform IBM pour des exemples.