Création de données d'identification IAM
Vous pouvez utiliser IBM Cloud® Secrets Manager pour générer dynamiquement des données d'identification IAM pour accéder à une ressource IBM Cloud qui requiert une authentification IAM.
Les identifiants IAM sont des secrets dynamiquesValeur unique, telle qu'un mot de passe ou une clé d'API, créée dynamiquement et louée à une application qui requiert l'accès à une ressource protégée. Une fois qu'un secret dynamique atteint la fin de son bail, l'accès à la ressource protégée est révoqué et le secret est supprimé automatiquement. que vous pouvez utiliser pour accéder à une ressource IBM Cloud. Un ensemble de données d'identification IAM est constitué d'un ID de service et d'une clé d'API générée chaque fois que la ressource protégée est lue ou accédée. Vous pouvez définir une durée de vie (TTL) ou une durée de location pour vos données d'identification IAM lors de leur création afin de réduire la durée de validité du secret.
Pour en savoir plus sur les types de secrets que vous pouvez gérer dans Secrets Manager, voir Qu'est-ce qu'un secret ?
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.
Les identifiants IAM nécessitent une étape de configuration avant de pouvoir commencer à les créer ou à les gérer dans le service. Pour plus d'informations, voir Configuration du moteur de données d'identification IAM.
Lors de la modification de la durée de vie d'un secret de données d'identification IAM, il sera appliqué uniquement lors de la prochaine rotation de la version du secret.
Le secret d'authentification IAM créé par Secrets Manager sera également le nom de la clé API IAM. Par exemple, un secret appelé my-secret-name aura une clé API correspondante nommée Secrets-Manager-IAM-Secret-my-secret-name.
Si vous renommez ultérieurement le secret dans Secrets Manager, ce changement ne sera pas répercuté dans IAM, mais la fonctionnalité ne sera pas interrompue.
Un administrateur de compte (ou toute entité disposant du niveau d'accès requis) peut modifier en externe les justificatifs IAM créés et gérés par Secrets Manager. Si un tel identifiant de service ou une telle clé API 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.
Création de données d'identification IAM dans l'interface utilisateur
Pour créer des données d'identification IAM à l'aide de l'interface utilisateur 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 secrets, cliquez sur la mosaïque Données d'identification IAM.
-
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. que vous souhaitez attribuer au 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.
-
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.
-
Cliquez sur Suivant.
-
Définissez une durée de bail ou une durée de vie (TTL) pour le secret.
En définissant une durée de bail pour vos données d'identification IAM, vous déterminez la durée de validité de la clé d'API associée. Une fois cette durée écoulée, les données d'identification IAM sont automatiquement révoquées.
La durée minimale est de 1 minute. La durée maximale est de 90 jours.
- Facultatif : Déterminez si les données d'identification IAM peuvent être réutilisées pour votre secret.
- Facultatif: Activez la rotation automatique de votre secret. Les secrets ne peuvent faire l'objet d'une rotation automatique que si l'option de réutilisation des informations d'identification IAM est sélectionnée.
- Cliquez sur Suivant.
- Déterminer le compte source.
- Déterminer l'étendue de l'accès à attribuer.
- Cliquez sur Suivant.
- Passez en revue les détails de votre secret.
- Cliquez sur Ajouter.
Réutilisation de la même clé d'API jusqu'à expiration du bail
Les données d'identification IAM se composent d'un ID de service et d'une clé d'API. Par défaut, l'ID de service et la clé d'API sont des valeurs éphémères à usage unique qui sont générées et supprimées chaque fois qu'un secret d'identification IAM est lu ou fait l'objet d'un accès.
Si vous souhaitez continuer à utiliser ces données d'identification à la fin de la location de votre secret, vous pouvez définir Réutiliser les données d'identification IAM jusqu'à l'expiration du bail sur Activé. Lorsque vous activez cette option, votre secret conserve ses valeurs actuelles d'ID de service et de clé API et les réutilise à chaque lecture tant que le secret reste valide. Une fois la durée de location du secret écoulée, les données d'identification sont automatiquement révoquées.
Si l'option de réutilisation des identifiants IAM est désactivée, la rotation manuelle du secret n'est pas prise en charge. Pour plus d'informations, voir Rotation manuelle des secrets.
Déterminer le compte source
Secrets Manager peut créer et gérer des secrets d'identification IAM à partir du compte IBM Cloud actuel ou d'un compte IBM Cloud spécifique. Lorsque vous choisissez de créer un compte à partir d'un compte spécifique, indiquez l'identifiant du compte.
Déterminer l'étendue de l'accès à attribuer
Il se peut que vous ayez déjà un identifiant de service dans votre compte pour lequel vous souhaitez générer une clé API en sélectionnant l'identifiant de service. Vous pouvez également générer à la fois un identifiant de service et une clé API en attribuant l'accès à un groupe d'accès.
Dans l'étape Attribuer un accès de l'assistant Créer des informations d'identification IAM, choisissez une étendue d'accès pour votre secret.
-
Pour utiliser un ID de service existant, sélectionnez un ID dans la liste. Si le compte source est un autre compte spécifique, indiquez l'ID du service, dans le format suivant :
ServiceId-c0c7cfa4-b24e-4917-ad74-278f2fee5ba0.Choisissez cette option lorsque vous avez besoin de Secrets Manager pour générer et gérer uniquement une clé d'API pour votre secret de données d'identification IAM, et non pas l'ID de service lui-même. La clé d'API hérite de la stratégie d'accès de l'ID de service que vous sélectionnez dans votre compte. Seuls les ID de service auquel vous avez accès sont affichés.
-
Pour générer à la fois un nouvel ID de service et une clé d'API pour le secret, sélectionnez un groupe d'accès. Si le compte source est un compte spécifique, indiquez les identifiants des groupes d'accès souhaités.
En sélectionnant un groupe d'accès, vous déterminez l'étendue des autorisations attribuées à l'ID de service et à la clé API à l'aide du groupe d'accès. L'identifiant de service et la clé API sont générés et associés à votre nouvel identifiant IAM. Vous pouvez affecter jusqu'à 10 groupes d'accès.
Les politiques d'accès doivent être assignées au(x) groupe(s) d'accès sélectionné(s) et non directement aux identifiants de service. L'identifiant de service et la clé API sont supprimés et de nouveaux sont créés une fois que le TTL de l'identifiant IAM est atteint.
Si vous avez utilisé un identifiant de service existant, la clé API générée par Secrets Manager est automatiquement verrouillée. Si vous avez sélectionné un groupe d'accès, le nouvel identifiant de service et la clé API que Secrets Manager crée pour le secret sont automatiquement verrouillés. Chaque fois que vous récupérez un secret d'identification IAM à l'aide de l'API, la clé API et l'identifiant de service générés par Secrets Manager sont verrouillés, même si vous les déverrouillez manuellement avant de récupérer le secret.
Création de données d'identification IAM depuis l'interface de ligne de commande
Avant de commencer, suivez la documentation de l'interface de programmation pour définir votre point de terminaison API.
Pour créer un identifiant de service et une clé API à l'aide du plug-in CLI Secrets Manager, exécutez la commande ibmcloud secrets-manager secret-create commande. Pour le créer dans un autre compte spécifique, ajoutez l'option --iam-credentials-account-id.
ibmcloud secrets-manager secret-create --secret-type iam_credentials --secret-name "example-iam-credentials-secret" --secret-description "Description of my IAM credentials secret" --iam-credentials-access-groups ["<access_group_id>, ..."] --secret-ttl 30m --iam-credentials-reuse-apikey true
Pour utiliser un identifiant de service existant et créer une clé API en utilisant le plug-in CLI Secrets Manager, exécutez la commande ibmcloud secrets-manager secret-create.
Pour le créer dans un autre compte spécifique, ajoutez l'option --iam-credentials-account-id.
ibmcloud secrets-manager secret-create --secret-type iam_credentials --secret-name "example-iam-credentials-secret" --secret-description "Description of my IAM credentials secret" --iam-credentials-service-id "ServiceId-c0c7cfa4-b24e-4917-ad74-278f2fee5ba0" --secret-ttl 90d --iam-credentials-reuse-apikey true
Vous pouvez trouver la valeur de l'ID d'un service dans la section IAM de la console. Allez dans Gérer > Accès (IAM) > Service IDs > nom. Cliquez sur Détails pour afficher l'ID.
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.
Réutilisation de la même clé d'API jusqu'à expiration du bail
Si vous souhaitez continuer à utiliser les informations d'identification IAM jusqu'à la fin du bail de votre secret, vous pouvez utiliser l'option --iam-credentials-reuse-apikey. S'il est défini sur true, votre secret
conserve ses valeurs actuelles d'ID de service et de clé API et les réutilise à chaque lecture tant que le secret reste valide, sinon définissez-le sur false. Par exemple, la commande suivante crée des informations d'identification
IAM qui peuvent être réutilisées jusqu'à leur expiration.
ibmcloud secrets-manager secret-create --secret-type iam_credentials --secret-name "example-iam-credentials-secret" --secret-description "Description of my IAM credentials secret" --iam-credentials-service-id "<iam_id_of_service_id>" --secret-ttl 30m --iam-credentials-reuse-apikey true
La commande génère en sortie la valeur d'ID du secret ainsi que d'autres métadonnées. Une fois la durée de location du secret écoulée, les données d'identification sont automatiquement révoquées. Pour plus d'informations sur les options de
commande, voir ibmcloud secrets-manager secret-create.
Si --iam-credentials-reuse-apikey est défini sur false pour les identifiants IAM, la rotation manuelle du secret n'est pas prise en charge. Pour plus d'informations, voir Rotation manuelle des secrets.
Création de données d'identification IAM à l'aide de l'API
Vous pouvez créer des données d'identification IAM à l'aide d'un programme en appelant l'API Secrets Manager.
L'exemple suivant montre une requête que vous pouvez utiliser pour créer un identifiant de service et une clé API. Lorsque vous appelez l'API, remplacez les variables d'ID et le jeton IAM par les valeurs spécifiques à votre instance Secrets
Manager. Pour le créer dans un autre compte spécifique, ajoutez le champ account_id.
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.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
{
"name": "example-iam-credentials-secret",
"description": "Description of my IAM Credentials secret",
"secret_type": "iam_credentials",
"secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
"labels": [
"dev",
"us-south"
],
"ttl": "30m",
"access_groups": [
"AccessGroupId-45884031-54be-4dd7-86ff-112511e92699",
"AccessGroupId-8c0ed733-dfee-4a94-992b-e2247b86e2a2"
],
"reuse_api_key": false,
"custom_metadata": {
"metadata_custom_key": "metadata_custom_value"
},
"version_custom_metadata": {
"custom_version_key": "custom_version_value"
}
}' \ "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.
Réutilisation de la même clé d'API jusqu'à expiration du bail
Si vous souhaitez utiliser les informations d'identification IAM jusqu'à la fin du bail de votre secret, vous pouvez utiliser le champ reuse_api_key. Si elle est définie sur true, votre secret conserve ses valeurs
d'ID de service et de clé d'API en cours et les réutilise à chaque lecture tant qu'il reste valide. Par exemple, la commande suivante crée des informations d'identification IAM qui peuvent être réutilisées jusqu'à leur expiration.
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.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
{
"name": "example-iam-credentials-secret",
"description": "Description of my IAM Credentials secret",
"secret_type": "iam_credentials",
"secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
"labels": [
"dev",
"us-south"
],
"ttl": "30m",
"access_groups": [
"AccessGroupId-45884031-54be-4dd7-86ff-112511e92699",
"AccessGroupId-8c0ed733-dfee-4a94-992b-e2247b86e2a2"
],
"reuse_api_key": true,
"custom_metadata": {
"metadata_custom_key": "metadata_custom_value"
},
"version_custom_metadata": {
"custom_version_key": "custom_version_value"
}
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"
Une demande réussie renvoie la valeur d'ID du secret, ainsi que d'autres métadonnées. Une fois la durée de location du secret écoulée, les données d'identification sont automatiquement révoquées. Pour plus d'informations, consultez la Référence d'API.
Si reuse_api_key est false pour les données d'identification IAM, la rotation manuelle du secret n'est pas prise en charge. Pour plus d'informations, voir Rotation manuelle des secrets.
Utilisation d'un ID de service existant dans votre compte
Vous pouvez déjà avoir un ID de service dans votre compte que vous souhaitez utiliser pour générer dynamiquement une clé d'API. Dans ce scénario, vous pouvez choisir de créer un secret de données 'identification IAM en apportant votre propre
ID de service. Par exemple, la commande suivante crée un justificatif IAM à l'aide de la zone service_id. Pour le créer dans un autre compte spécifique, ajoutez le champ account_id.
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.
Vous pouvez trouver la valeur de l'ID d'un service dans la section IAM de la console. Allez dans Gérer > Accès (IAM) > Service IDs > nom. Cliquez sur Détails pour afficher l'ID.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "example-iam-credentials-secret",
"description": "Description of my IAM Credentials secret",
"secret_type": "iam_credentials",
"secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
"labels": [
"dev",
"us-south"
],
"ttl": "30m",
"service_id": "ServiceId-c0c7cfa4-b24e-4917-ad74-278f2fee5ba0,
"reuse_api_key": false,
"custom_metadata": {
"metadata_custom_key": "metadata_custom_value"
},
"version_custom_metadata": {
"custom_version_key": "custom_version_value"
}
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"
Une demande réussie renvoie la valeur d'ID du secret, ainsi que d'autres métadonnées. Pour plus d'informations, consultez la Référence d'API.
Création de données d'identification IAM avec Terraform
Vous pouvez créer des données d'identification IAM à l'aide d'un programme en utilisant Terraform pour Secrets Manager.
Vous devez ajouter un méta-argument depends_on Terraform et le référencer dans votre ressource de configuration IAM. Le méta-argument depends_on demande à Terraform d'effectuer toutes les actions sur la configuration
IAM avant d'effectuer des actions sur les secrets de données d'identification IAM. Lors de la création d'un secret d'identification IAM inter-comptes, il convient d'inclure la propriété account_id, qui pointe vers le compte IBM
Cloud dans lequel l'identifiant de service a été créé.
L'exemple suivant illustre une configuration que vous pouvez utiliser pour créer des données d'identification IAM.
resource "ibm_sm_iam_credentials_secret" "test_iam_credentials_secret" {
instance_id = local.instance_id
region = local.region
service_id = "ServiceId-f4b2deac-fbb5-4bf7-85de-88426701db97"
ttl = "1800"
name = "test-iam-credentials-secret"
reuse_api_key = true
secret_group_id = ibm_sm_secret_group.sm_secret_group_test.secret_group_id
depends_on = [
ibm_sm_iam_credentials_configuration.iam_credentials_configuration
]
}
Automatisez la génération d'identifiants IAM avec les modules Terraform IBM (TIM) pour Secrets Manager Secret pour des déploiements cohérents et contrôlés par version. Découvrez les modules Terraform IBM.
Suppression des données d'identification IAM
Si vous disposez d'un ID de service ou d'une clé d'API qui a été générée par le moteur de secret des données d'identification IAM et que vous supprimez votre instance de Secrets Manager, vous devez également supprimer le secret d'IAM. Pour plus d'informations, voir Gestion des clés d'API utilisateur.