Configuration du moteur de données d'identification IAM
Vous pouvez configurer les données d'identification IAM pour votre instance de service IBM Cloud® Secrets Manager en configurant le moteur de données d'identification IAM.
Dans Secrets Manager, le moteur de données d'identification IAM sert de dorsal pour le type de secret iam_credentials. Pour pouvoir créer des données d'identification IAM, vous devez d'abord configurer le moteur de données d'identification
IAM pour votre instance de service. Vous pouvez activer votre instance en créant une autorisation de service IAM, ou en saisissant une clé API associée
à un identifiant de service dans votre compte IBM Cloud.
Lors de l'utilisation d'une clé API pour la configuration du moteur, le jeton d'accès généré dure 60 minutes et continuera à fonctionner même si la clé API est supprimée d'IAM. Cela peut être modifié en modifiant l'expiration du jeton dans les paramètres IAM. En savoir plus. Notez que si l'entité associée à la clé d'API est supprimée, le jeton est immédiatement invalidé.
Lorsque vous utilisez l'autorisation de service IAM pour la configuration du moteur, vous pouvez créer et gérer des secrets d'identification IAM dans le même compte IBM Cloud que l'instance Secrets Manager, ainsi qu'à partir d'autres comptes. La configuration de la clé API ne fonctionne qu'avec le compte auquel appartient l'instance Secrets Manager.
Avant de commencer
Pour configurer le moteur d'identification IAM, assurez-vous que le rôle de service Manager vous est attribué sur l'instance Secrets Manager.
Si vous configurez le moteur d'identification IAM avec une clé API, vous avez besoin d'une clé API ID service avec l'accès suivant :
- Rôle de plateforme Editeur sur IAM Access Groups Service.
- Rôle de plateforme Opérateur sur IAM Identity Service.
- Rôle de service Service ID creator sur le IAM Identity Service. Le rôle de service de créateur d'ID de service est requis uniquement lorsque vous désactivez la création d'ID de service dans vos paramètres IAM.
Si vous configurez le moteur d'identification IAM avec l'autorisation de service IAM, Secrets Manager ajoute les deux politiques d'autorisation suivantes en votre nom.
- Membre du service Groupes Gérer le rôle de plateforme sur le service IAM Access Groups Service.
- Opérateur rôle de la plate-forme pour le service IAM Identity Service.
- Rôle de service Service ID creator sur le IAM Identity Service. Le rôle de service de créateur d'ID de service est requis uniquement lorsque vous désactivez la création d'ID de service dans vos paramètres IAM.
Si le compte dans lequel vous souhaitez générer des informations d'identification IAM autorise l'accès à partir d'adresses IP spécifiques, vous devez également mettre à jour les paramètres de l'adresse IP dans le compte afin d'autoriser les requêtes entrantes provenant de Secrets Manager. Pour plus d'informations, voir Gestion de l'accès avec des restrictions contextuelles.
Configuration du moteur de données d'identification IAM dans l'interface utilisateur
Utilisation de l'autorisation de service IAM
Effectuez les étapes suivantes pour configurer le moteur d'informations d'identification IAM à l'aide de l'autorisation de service IAM.
Pour gérer les identifiants IAM à partir du même compte IBM Cloud que votre instance Secrets Manager:
- Dans la page Moteurs de secrets, cliquez sur l'onglet Données d'identification IAM.
- Cliquez sur Autoriser.
- Cliquez sur Configurer.
Pour gérer les identifiants IAM à partir d'un autre compte d' IBM Cloud, créez manuellement les autorisations de service IAM.
Pour la politique d'autorisation IAM Identity Service service:
- Dans le compte où vous souhaitez gérer les informations d'identification IAM, allez dans Gestion > Accès (IAM).
- Sélectionnez Autorisations dans le menu du volet gauche.
- Cliquez sur Créer.
- Sous Source, sélectionnez Compte spécifique et indiquez l'ID du compte auquel appartient l'instance Secrets Manager.
- Service : Secrets Manager.
- Ressources : Ressources spécifiques > Instance de service et indiquez l'identifiant de l'instance de service pour votre instance Secrets Manager.
- Sous Cible, sélectionnez
- Service : IAM Identity Service
- Ressources : Tous
- Rôles : Opérateur
Pour la service IAM Access Groups Service politique d'autorisation :
- Dans le compte où vous souhaitez gérer les informations d'identification IAM, allez dans Gestion > Accès (IAM).
- Sélectionnez Autorisations dans le menu du volet gauche.
- Cliquez sur Créer.
- Sous Source, sélectionnez Compte spécifique et indiquez l'ID du compte auquel appartient l'instance Secrets Manager.
- Service : Secrets Manager.
- Ressources : Ressources spécifiques > Instance de service et indiquez l'identifiant de l'instance de service pour votre instance Secrets Manager.
- Sous Cible, sélectionnez
- Service : Service de groupes d'accès IAM
- Ressources : Tous
- Rôles : Groupes Service Membre Gérer
Utilisation de la clé d'API
Effectuez les étapes suivantes pour configurer le moteur d'informations d'identification IAM à l'aide de la clé API d'un identifiant de service.
- Dans la page Moteurs de secrets, cliquez sur l'onglet Données d'identification IAM.
- Cliquez sur Configure IAM credentials engine with API key.
- Entrez une clé d'API autorisée à créer et gérer d'autres clés d'API dans votre compte.
- Cliquez sur Configurer.
Configuration du moteur de données d'identification IAM à partir de l'interface de ligne de commande
Utilisation de l'autorisation de service IAM
Effectuez les étapes suivantes pour configurer le moteur d'informations d'identification IAM à l'aide d'une autorisation de service IAM.
Pour gérer les identifiants IAM à partir du même compte IBM Cloud que votre instance Secrets Manager, exécutez les commandes suivantes pour ajouter les politiques d'autorisation de service IAM requises :
ibmcloud iam authorization-policy-create secrets-manager iam-identity "Service ID Creator, Operator" --source-service-instance-id SOURCE_SERVICE_INSTANCE_GUID
ibmcloud iam authorization-policy-create secrets-manager iam-groups "Groups Service Member Manage" --source-service-account SOURCE_SERVICE_INSTANCE_GUID
- Remplacez SOURCE_SERVICE_INSTANCE_GUID par l'identifiant du service d'instance Secrets Manager. Si elle n'est pas fournie, l'autorisation s'applique à toutes les instances Secrets Manager
Pour gérer les informations d'identification IAM à partir d'un autre compte IBM Cloud: incluez également le paramètre ACCOUNT_GUID.
- Connectez-vous au compte IBM Cloud avec les identifiants de service que vous souhaitez gérer.
- Exécutez les commandes suivantes pour ajouter les politiques d'autorisation de service IAM requises :
ibmcloud iam authorization-policy-create secrets-manager iam-identity "Service ID Creator, Operator" --source-service-instance-id SOURCE_SERVICE_INSTANCE_GUID --source-service-account ACCOUNT_GUID
ibmcloud iam authorization-policy-create secrets-manager iam-groups "Groups Service Member Manage" --source-service-account SOURCE_SERVICE_INSTANCE_GUID --source-service-instance-id ACCOUNT_GUID
- Remplacez SOURCE_SERVICE_INSTANCE_GUID par l'identifiant du service d'instance Secrets Manager. Si elle n'est pas fournie, l'autorisation s'applique à toutes les instances Secrets Manager
- Remplacez ACCOUNT_GUID par l'ID du compte IBM Cloud dans lequel vous souhaitez créer des secrets d'identification IAM.
Utilisation de la clé d'API
Effectuez les étapes suivantes pour configurer le moteur d'informations d'identification IAM en utilisant la clé API d'un identifiant de service.
-
Dans une fenêtre de terminal, connectez-vous à IBM Cloud via l'interface de ligne de commande IBM Cloud.
ibmcloud login -
Sélectionnez le compte, la région et le groupe de ressources où se trouve votre instance de service Secrets Manager.
-
Créez un ID de service et définissez-le en tant que variable d'environnement.
export SERVICE_ID=`ibmcloud iam service-id-create <service_ID_name> --description "<description>" --output json | jq -r ".id"`; echo $SERVICE_ID -
Gérez l'accès pour l'ID de service.
Affectez à l'ID de service les droits pour créer et gérer d'autres ID de service.
ibmcloud iam service-policy-create $SERVICE_ID --roles Operator --service-name "iam-identity"Affectez à l'ID de service les droits pour afficher et mettre à jour les groupes d'accès de votre compte.
ibmcloud iam access-group-policy-create $SERVICE_ID --roles Editor --service-name "iam-groups"Ajoutez l'ID de service à un groupe d'accès dans votre compte.
ibmcloud iam access-group-service-id-add <access_group_name> $SERVICE_IDCréez une clé d'API IBM Cloud pour votre ID de service.
export IBM_CLOUD_API_KEY=`ibmcloud iam service-api-key-create <API_key_name> $SERVICE_ID --description "<description>" --output json | jq -r ".apikey"` -
Utilisez la clé API pour configurer le moteur d'identification IAM pour votre instance.
Pour configurer un moteur de secrets à partir de l'interface CLI de IBM Cloud, exécutez la commande
ibmcloud secrets-manager configuration-createcommande.ibmcloud secrets-manager configuration-create --configuration-prototype='{"config_type": "iam_credentials_configuration","name": "iam-configuration","api_key": "'$IBM_CLOUD_API_KEY'"}'Utilisation d'une invite de commande Windows™ (
cmd.exe) ou PowerShell ? Si vous rencontrez des erreurs lors de la transmission de contenu JSON sur la ligne de commande, vous devrez peut-être adapter les chaînes en fonction des exigences d'échappement propres à votre système d'exploitation. Pour plus d'informations, voir Utilisation de guillemets avec des chaînes dans l'interface de ligne de commande IBM Cloud.
Configuration du moteur d'identification IAM avec l'API
Pour obtenir des instructions détaillées sur la création d'une clé d'API IBM Cloud avec un niveau d'accès correct, passez aux étapes UI ou CLI .
Utilisation de l'autorisation de service IAM
L'exemple suivant montre une requête que vous pouvez utiliser pour configurer le moteur d'informations d'identification IAM pour votre instance lors de l'utilisation de l'autorisation de service IAM. Pour en savoir plus, consultez IBM Cloud IAM's API Docs.
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{
"type": "authorization",
"subjects": [
{
"attributes": [
{
"name": "accountId",
"value": "$SOURCE_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "secrets-manager"
},
{
"name": "serviceInstance",
"value": "$INSTANCE_GUID"
}
]
}
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam-identity::::serviceRole:ServiceIdCreator"
},
{
"role_id": "crn:v1:bluemix:public:iam::::role:Operator"
}
],
"resources":[
{
"attributes": [
{
"name": "accountId",
"value": "$TARGET_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "iam-identity"
}
]
}
]
}'
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{
"type": "authorization",
"subjects": [
{
"attributes": [
{
"name": "accountId",
"value": "$SOURCE_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "secrets-manager"
},
{
"name": "serviceInstance",
"value": "$INSTANCE_GUID"
}
]
}
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam-groups::::serviceRole:MemberManage"
}
],
"resources":[
{
"attributes": [
{
"name":"$TARGET_ACCOUNT_ID",
"value": "791f5fb10986423e97aa8512f18b7e65"
},
{
"name": "serviceName",
"value": "iam-groups"
}
]
}
]
}'
L'attribut serviceInstance est facultatif. Si elle est omise, l'autorisation s'applique à toutes les instances de Secrets Manager. Les SOURCE_ACCOOUNT_ID et TARGET_ACCOUNT_ID sont nécessaires pour créer l'autorisation pour le compte courant ou un compte spécifique.
Utilisation de la clé d'API
L'exemple suivant montre une requête que vous pouvez utiliser pour configurer le moteur d'identifiants IAM pour votre instance en utilisant une clé API. Lorsque vous appelez l'API, remplacez les variables de clé d'API et le jeton IAM par les valeurs spécifiques à votre instance Secrets Manager.
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d '{
"api_key": "{iam_apikey}", "config_type": "iam_credentials_configuration",
"name": "iam-configuration"
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"
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, voir Créer un secret.
Configuration du moteur de données d'identification IAM avec Terraform
Utilisation de l'autorisation de service IAM
L'exemple suivant montre une requête que vous pouvez utiliser pour configurer le moteur d'informations d'identification IAM pour votre instance Secrets Manager lors de l'utilisation d'une autorisation de service IAM.
resource "ibm_iam_authorization_policy" "sm_to_iam_identity" {
source_service_name = "secrets-manager"
source_service_account = local.source_account_id
source_resource_instance_id = local.instance_id
target_service_name = "iam-identity"
roles = ["Service ID creator", "Operator"]
}
resource "ibm_iam_authorization_policy" "sm_to_iam_groups" {
source_service_name = "secrets-manager"
source_service_account = local.source_account_id
source_resource_instance_id = local.instance_id
target_service_name = "iam-groups"
roles = ["Groups Service Member Manage"]
}
L'attribut source_resource_instance_id est facultatif. Si elle est omise, l'autorisation s'applique à toutes les instances de Secrets Manager. L'attribut source_service_account est
facultatif. Il peut être omis si le compte source est le même que le compte courant.
Utilisation de la clé d'API
Pour obtenir des instructions détaillées sur la création d'une clé d'API IBM Cloud avec un niveau d'accès correct, passez aux étapes UI ou CLI .
L'exemple suivant montre une configuration que vous pouvez utiliser pour configurer le moteur d'identifiants IAM en utilisant la clé API d'un identifiant de service.
resource "ibm_sm_iam_credentials_configuration" "iam_credentials_configuration" {
instance_id = local.instance_id
region = local.region
name = "iam_credentials_config"
api_key = var.ibmcloud_api_key
}
Configurez le moteur d'authentification IAM de manière programmatique avec Secrets Manager IAM Engine. Voir Terraform IBM Modules pour des exemples de configuration.
Récupération de la valeur de configuration d'un moteur d'identifiants IAM dans l'interface utilisateur
Vous pouvez extraire la configuration d'un moteur à l'aide de l'interface utilisateur Secrets Manager. La récupération d'une configuration n'est valide que lors de la configuration du moteur d'identification IAM avec une clé API.
- Dans le moteur de secret Données d'identification IAM, cliquez sur le menu Actions
pour ouvrir une liste d'options pour votre configuration de moteur.
- Pour afficher la valeur de configuration, cliquez sur Afficher la configuration.
- Cliquez sur Confirmer après vous être assuré que vous êtes dans un environnement sécurisé.
La valeur confidentielle est affichée pendant 15 secondes, puis la boîte de dialogue se ferme.
Extraction de la valeur de configuration d'un moteur à l'aide de l'interface CLI
Vous pouvez extraire la configuration d'un moteur à l'aide de l'interface de ligne de commande Secrets Manager. Dans l'exemple de commande suivant, remplacez le nom de la configuration du moteur par le nom de votre configuration. La récupération d'une configuration n'est valide que lors de la configuration du moteur d'identification IAM avec une clé API.
ibmcloud secrets-manager configuration --name EXAMPLE_CONFIG --service-url https://{instance_ID}.{region}.secrets-manager.appdomain.cloud
Remplacez {instance_ID} et {region} par les valeurs qui s'appliquent à votre instance de service Secrets Manager. Pour trouver l'URL de point d'extrémité spécifique à votre instance, vous pouvez la copier à partir de
la page Noeuds finaux de l'interface utilisateur Secrets Manager. Pour plus d'informations, voir Affichage de vos URL de point d'extrémité
Extraction de la valeur de configuration d'un moteur à l'aide de l'API
Vous pouvez extraire la configuration d'un moteur à l'aide de l'API Secrets Manager. Dans l'exemple de demande suivant, remplacez le nom de la configuration du moteur par le nom de votre configuration. La récupération d'une configuration n'est valide que lors de la configuration du moteur d'identification IAM avec une clé API.
curl -X GET --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/{name}"
Remplacez {instance_ID} et {region} par les valeurs qui s'appliquent à votre instance de service Secrets Manager. Pour trouver l'URL de point d'extrémité spécifique à votre instance, vous pouvez la copier à partir de
la page Noeuds finaux de l'interface utilisateur Secrets Manager. Pour plus d'informations, voir Affichage de vos URL de point d'extrémité
Une réponse positive renvoie la valeur de la configuration du moteur, ainsi que d'autres métadonnées. Pour plus d'informations sur les paramètres obligatoires et facultatifs de la demande, voir Obtenir la configuration.
Etapes suivantes
Vous pouvez maintenant utiliser Secrets Manager pour générer des informations d'identification IAM. Dans l'interface utilisateur Secrets Manager, cliquez sur Secrets > Ajouter > Données d'identification IAM pour commencer à créer des secrets.
- Création de données d'identification IAM
- Automatisez la configuration du moteur IAM de Secrets Manager à l'aide du module IAM Engine de Secrets Manager.