Gestion des groupes de ressources

Un groupe de ressources vous permet d'organiser les ressources de votre compte en regroupements personnalisables pour que vous puissiez rapidement affecter aux utilisateurs l'accès à plusieurs ressources à la fois. Chaque ressource de compte gérée à l'aide du contrôle d'accès IBM Cloud® Identity and Access Management (IAM) appartient à un groupe de ressources au sein de votre compte. Vous pouvez regrouper les ressources et affecter des droits d'accès à des instances de service individuelles ou des groupes entiers de ressources qui utilisent IAM.

Pour commencer à gérer vos groupes de ressources, accédez à Gérer > Compte > Comptes de ressource > Groupes de ressources dans la console IBM Cloud®. Vous pouvez créer, afficher et renommer vos groupes de ressources, ajouter des ressources et gérer l'accès à vos groupes de ressources. Vous pouvez également supprimer n'importe quel groupe de ressources uniquement s'il ne contient pas de ressources et s'il ne s'agit pas du groupe de ressources par défaut. Le propriétaire du compte IBM Cloud peut ajouter des ressources à n'importe quel groupe de ressources, mais d'autres utilisateurs doivent utiliser une règle d'accès IAM pour y avoir accès.

Pour plus d'informations sur la gestion des groupes de ressources, voir Meilleures pratiques pour l'organisation des ressources et l'affectation d'accès.

Création d'un groupe de ressources

Si vous disposez d'un compte Paiement à la carte ou Abonnement, vous pouvez créer plusieurs groupes de ressources de manière à faciliter la gestion du quota et l'affichage de la facturation d'utilisation d'un ensemble de ressources. Vous pouvez également regrouper des ressources afin de faciliter l'affectation d'accès utilisateur à plusieurs instances à la fois. Vous pouvez avoir un maximum de 1000 groupes de ressources par compte. Une règle IAM avec le rôle d'administrateur sur tous les services de gestion des comptes doit vous être attribué pour pouvoir créer d'autres groupes de ressources. Si vous disposez d'un compte Lite ou d'un compte d'essai de 30 jours, vous ne pouvez pas créer de groupes de ressources supplémentaires, mais vous pouvez renommer votre groupe de ressources par défaut.

Création d'un groupe de ressources dans la console

  1. Dans la console IBM Cloud, accédez à Gérer > Compte > Ressources de compte > Groupes de ressources.
  2. Cliquez sur Créer.
  3. Entrez un nom pour le groupe de ressources.
  4. Cliquez sur Créer.

Création d'un groupe de ressources à l'aide de l'interface de ligne de commande

Vous pouvez créer et renommer un groupe de ressources ou visualiser une ressource dans un groupe en utilisant l'interface de ligne de commande " IBM Cloud® Pour plus d'informations sur l'utilisation des ressources, voir Utilisation de ressources et de groupes de ressources.

  1. Connectez-vous et sélectionnez le compte.
    ibmcloud login
    
  2. Créez un nouveau groupe de ressources en exécutant la commande ibmcloud resource group-create. Par exemple, la commande suivante permet de créer un groupe de ressources nommé group2 :
ibmcloud resource group-create group2

Création d'un groupe de ressources à l'aide de l'API

Si vous disposez d'un compte Paiement à la carte ou Abonnement, vous pouvez créer plusieurs groupes de ressources de manière à faciliter la gestion du quota et l'affichage de la facturation d'utilisation d'un ensemble de ressources. Vous pouvez également regrouper des ressources afin de faciliter l'affectation d'accès utilisateur à plusieurs instances à la fois.

Une règle IAM avec le rôle d'administrateur sur tous les services de gestion des comptes doit vous être attribué pour pouvoir créer d'autres groupes de ressources. Si vous disposez d'un compte Lite ou d'un compte d'essai de 30 jours, vous ne pouvez pas créer de groupes de ressources supplémentaires, mais vous pouvez renommer votre groupe de ressources par défaut.

Pour créer un groupe de ressources, appelez l'API IBM Cloud® Resource Manager, comme illustré dans l'exemple suivant :

curl -X POST https://resource-controller.cloud.ibm.com/v2/resource_groups -H 'Authorization: Bearer <IAM_TOKEN>'
  -H 'Content-Type: application/json' -d '{
      "account_id": "987d4cfd77b04e9b9e1a6asdcc861234",
      "name": "test"
    }'
CreateResourceGroupOptions createResourceGroupOptions = new CreateResourceGroupOptions.Builder()
        .accountId(exampleUserAccountId)
        .name("ExampleGroup")
        .build();
Response<ResCreateResourceGroup> response = resourceManagerService.createResourceGroup(createResourceGroupOptions).execute();
ResCreateResourceGroup resCreateResourceGroup = response.getResult();
System.out.println(resCreateResourceGroup);
const params = {
  accountId: exampleUserAccountId,
  name: "ExampleGroup"
};
resourceManagerService.createResourceGroup(params)
  .then(res => {
    resourceGroupId = res.result.id;
    console.log(JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
res_create_resource_group = resource_manager_service.create_resource_group(
  account_id=example_user_account_id,
  name='ExampleGroup',
).get_result()
print(json.dumps(res_create_resource_group, indent=2))
createResourceGroupOptions := resourceManagerService.NewCreateResourceGroupOptions()
createResourceGroupOptions.SetAccountID(exampleUserAccountID)
createResourceGroupOptions.SetName("ExampleGroup")
resCreateResourceGroup, response, err := resourceManagerService.CreateResourceGroup(createResourceGroupOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(resCreateResourceGroup, "", "  ")
fmt.Println(string(b))

Avant de commencer

Avant de pouvoir gérer des groupes de ressources à l'aide de Terraform, assurez-vous d'avoir effectué les opérations suivantes :

  • Installez le CLI Terraform et configurez le plug-in IBM Cloud Pour Terraform. Pour plus d'informations, voir le tutoriel pour démarrer avec Terraform sur IBM Cloud® Ce plug-in résume les API IBM Cloud utilisées pour effectuer cette tâche.

  • Créez un fichier de configuration Terraform nommé main.tf. Dans ce fichier, vous définissez les ressources en utilisant le langage de configuration HashiCorp. Pour plus d'informations, voir la documentation de Terraform.

Création d'un groupe de ressources à l'aide de Terraform

Suivez les étapes suivantes pour créer un groupe de ressources à l'aide de Terraform :

  1. Créez un argument dans votre fichier " main.tf. L'exemple ci-après crée un groupe de ressources à l'aide de la ressource ibm_resource_group, name représentant un nom unique permettant d'identifier le groupe de ressources.

    resource "ibm_resource_group" "resourceGroup" {
     name     = "prod"
    }
    

    Vous pouvez spécifier des tags associées à l'instance de groupe de ressources. Pour plus d'informations, voir les détails de la référence des arguments sur la page Terraform Resource Management.

    Vous pouvez également créer et gérer des groupes de ressources avec le module Resource Group de Terraform IBM Modules(TIM), qui simplifie le provisionnement et les recherches en renvoyant directement l'ID du groupe de ressources.

  2. Une fois que vous avez fini de construire votre fichier de configuration, initialisez le CLI Terraform. Pour plus d'informations, voir Initialisation des répertoires de travail.

    terraform init
    
  3. Fournir les ressources du fichier " main.tf. Pour plus d'informations, voir Provisionnement de l'infrastructure avec Terraform.

    1. Exécutez 'terraform plan pour générer un plan d'exécution Terraform afin de prévisualiser les actions proposées.
      terraform plan
      
    2. Exécutez le " terraform apply pour créer les ressources définies dans le plan.
      terraform apply
      

Modification du nom d'un groupe de ressources

Votre premier groupe de ressources, automatiquement nommé Default, est créé. Vous pouvez mettre à jour le nom de ce groupe ou de tout autre groupe que vous créez.

Changement de nom d'un groupe de ressources dans la console

  1. Dans la console IBM Cloud, accédez à Gérer > Compte > Ressources de compte > Groupes de ressources.
  2. Cliquez sur le menu Actions Icône Liste des actions et sélectionnez Renommer.
  3. Entrez un nom unique, puis cliquez sur Sauvegarder.

Changement de nom d'un groupe de ressources à l'aide de l'interface de ligne de commande

  1. Connectez-vous et sélectionnez le compte.
    ibmcloud login
    
  2. Renommez un groupe de ressources en exécutant la commande ibmcloud resource group-update. Par exemple, la commande suivante permet de renommer le groupe de ressources Default en Admin :
ibmcloud resource group-update Default [-n, --name Admin]

Changement de nom d'un groupe de ressources à l'aide de l'API

La variable name identifie le nouveau nom du groupe de ressources. Pour plus de détails, voir la section Mettre à jour un groupe de ressources.

curl -X PATCH https://resource-controller.cloud.ibm.com/v2/resource_groups/09f8c1c0742c493f80baaf7835212345 -H 'Authorization: Bearer <IAM_TOKEN>'
  -H 'Content-Type: application/json' -d '{
      "name": "test1"
    }'
UpdateResourceGroupOptions updateResourceGroupOptions = new UpdateResourceGroupOptions.Builder()
  .id(resourceGroupId)
  .name("RenamedExampleGroup")
  .state("ACTIVE")
  .build();
Response<ResourceGroup> response = resourceManagerService.updateResourceGroup(updateResourceGroupOptions).execute();
ResourceGroup resourceGroup = response.getResult();
System.out.println(resourceGroup);
const params = {
  id: resourceGroupId,
  state: 'ACTIVE',
  name: 'RenamedExampleGroup'
};
resourceManagerService.updateResourceGroup(params)
  .then(res => {
    console.log(JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
resource_group = resource_manager_service.update_resource_group(
  id=resource_group_id,
  name='RenamedExampleGroup',
  state='ACTIVE',
).get_result()
print(json.dumps(resource_group, indent=2))
updateResourceGroupOptions := resourceManagerService.NewUpdateResourceGroupOptions(
  resourceGroupID,
)
updateResourceGroupOptions.SetName("RenamedExampleGroup")
updateResourceGroupOptions.SetState("ACTIVE")
resourceGroup, response, err := resourceManagerService.UpdateResourceGroup(updateResourceGroupOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(resourceGroup, "", "  ")
fmt.Println(string(b))

Changement de nom d'un groupe de ressources à l'aide de Terraform

Vous pouvez renommer un groupe de ressources à l'aide de Terraform.

  1. Pour installer l'interface de ligne de commande de Terraform et configurer le plug-in IBM Cloud Provider pour Terraform, suivez le tutoriel d'initiation à Terraform sur IBM Cloud®. Ce plug-in résume les API IBM Cloud utilisées pour effectuer cette tâche.

  2. Créez un fichier de configuration Terraform nommé main.tf. Dans ce fichier, vous ajoutez la configuration permettant de renommer un groupe de ressources à l'aide de HashiCorp Configuration Language. Pour plus d'informations, voir la documentation de Terraform.

    Vous pouvez renommer le groupe de ressources en remplaçant name par une nouvelle valeur dans l'exemple ci-après.

    resource "ibm_resource_group" "resourceGroup" {
     name     = "prod"
    }
    

    Pour plus d'informations, voir les détails de référence des arguments sur la page Terraform Resource Management.

  3. Initialisez l'interface de ligne de commande de Terraform.

    terraform init
    
  4. Exécutez 'terraform plan pour générer un plan d'exécution Terraform afin de prévisualiser les actions proposées. Ce plan d'exécution Terraform récapitule toutes les actions à exécuter pour renommer le groupe de ressources.

    terraform plan
    
  5. Renommez le groupe de ressources.

    terraform apply
    

Ajout de ressources à un groupe de ressources

Les services gérés par IAM appartiennent à un groupe de ressources. Lorsque vous créez une instance pour l'un de ces services à partir du catalogue, vous êtes invité à affecter l'instance à un groupe de ressources. Veillez à planifier le mode d'organisation des ressources dans votre compte avant de les affecter à un groupe de ressources. Votre sélection de groupe de ressource au moment de la création de l'instance est définitive et ne peut pas être modifiée.

Votre sélection de groupe de ressource au moment de la création de l'instance est définitive et ne peut pas être modifiée.

Le propriétaire du compte IBM Cloud peut ajouter des ressources à n'importe quel groupe de ressources, mais d'autres utilisateurs doivent utiliser une règle d'accès IAM pour y avoir accès. Pour que les utilisateurs de votre compte puissent créer des ressources à partir du catalogue et les ajouter à un groupe de ressources, deux règles d'accès doivent leur être affectées :

  • Une règle avec rôle Afficheur ou supérieur appliquée au groupe de ressources lui-même
  • Une règle avec rôle Editeur ou supérieur appliquée au service du compte

Pour ajouter les ressources à un groupe de ressources, procédez comme suit :

  1. Dans la console IBM Cloud, accédez à Gérer > Compte > Ressources de compte > Groupes de ressources.
  2. Cliquez sur le menu Actions Icône Liste des actions et sélectionnez Ajouter des ressources.
  3. Le catalogue s'affiche. Vous pouvez rechercher les produits ou les filtrer en fonction d'une catégorie spécifique, d'un fournisseur, d'un plan tarifaire, d'un type de conformité ou d'un type de version. Les applications, les instances de service, les clusters de conteneurs, les volumes de stockage, les serveurs virtuels et les logiciels sont des exemples de ressource.

Ajout de ressources à un groupe de ressources à l'aide de l'API

Voir Gestion des paramètres de catalogue pour définir la visibilité du catalogue IBM Cloud® et contrôler l'accès des utilisateurs du compte aux produits du catalogue public et des catalogues privés.

Affichage des ressources d'un groupe de ressources

Pour visualiser facilement les ressources affectées à un groupe de ressources, cliquez sur l'icône Menu de navigation Menu de navigation > Liste des ressources. Filtrez ensuite par groupe de ressources.

Si vous ne trouvez pas votre ressource d'infrastructure classique sur la page Liste des ressources, vérifiez la liste des dispositifs en cliquant sur l'icône Menu de navigation Icône Menu de navigation > Infrastructure classique > Liste des dispositifs.

Visualisation des ressources d'un groupe de ressources à l'aide de la CLI

  1. Connectez-vous et sélectionnez le compte.

    ibmcloud login
    
  2. Affichez les ressources affectées à un groupe de ressources spécifique en exécutant la commande ibmcloud resource service-instances. Par exemple, la commande suivante permet de répertorier toutes les ressources du groupe de ressources Default :

ibmcloud resource service-instances -g Default

Affichage des ressources d'un groupe de ressources à l'aide de l'API

Pour afficher les ressources d'un groupe de ressources, appelez l'API du contrôleur de ressourceIBM Cloud®, comme illustré dans l'exemple suivant :

curl -X GET https://resource-controller.cloud.ibm.com/v2/resource_instances -H 'Authorization: Bearer <>'
ListResourceInstancesOptions listResourceInstancesOptions = new ListResourceInstancesOptions.Builder()
  .name(resourceInstanceName)
  .build();
Response<ResourceInstancesList> response = service.listResourceInstances(listResourceInstancesOptions).execute();
ResourceInstancesList resourceInstancesList = response.getResult();
System.out.printf("listResourceInstances() response:\n%s\n", resourceInstancesList.toString());
const params = {
  name: resourceInstanceName,
};
resourceControllerService.listResourceInstances(params)
  .then(res => {
    console.log('listResourceInstances() response:\n' + JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
resource_instances_list = resource_controller_service.list_resource_instances(
    name=resource_instance_name
).get_result()
print('\nlist_resource_instances() response:\n',
      json.dumps(resource_instances_list, indent=2))
listResourceInstancesOptions := resourceControllerService.NewListResourceInstancesOptions()
listResourceInstancesOptions = listResourceInstancesOptions.SetName(resourceInstanceName)
resourceInstancesList, response, err := resourceControllerService.ListResourceInstances(listResourceInstancesOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(resourceInstancesList, "", "  ")
fmt.Printf("\nListResourceInstances() response:\n%s\n", string(b))

Suppression d'un groupe de ressources à l'aide de la console

Vous ne pouvez pas supprimer le groupe de ressources par défaut qui est ajouté à votre compte. Par ailleurs, vous ne pouvez supprimer un groupe de ressources que s'il ne contient aucune ressource.

Pour supprimer un groupe de ressources qui ne contient pas de ressources et n'est pas votre groupe de ressources par défaut, procédez comme suit :

  1. Dans la console IBM Cloud, accédez à Gérer > Compte > Ressources de compte > Groupes de ressources.
  2. Cliquez sur l'icône Actions Icône Actions > Supprimer.

Suppression d'un groupe de ressources à l'aide de l'interface de ligne de commande

Pour supprimer un groupe de ressources qui ne contient pas de ressources et n'est pas votre groupe de ressources par défaut, exécutez ibmcloud resource group-delete. Par exemple, pour supprimer le groupe de ressources example-group, exécutez :

ibmcloud resource group-delete example-group -f

Suppression d'un groupe de ressources à l'aide de l'API

Vous pouvez supprimer un groupe de ressources à l'aide d'un programme en appelant l'API Resource Manager, comme indiqué dans l'exemple de demande suivant. Pour des informations détaillées sur l'API, voir Resource Manager API.

curl -X DELETE \
  https://resource-controller.cloud.ibm.com/v2/resource_groups/09f8c1c0742c493f80baaf7835212345 \
  -H 'Authorization: Bearer <IAM_TOKEN>'
  -H 'Content-Type: application/json'
String id = '09f8c1c0742c493f80baaf7835212345';
DeleteResourceGroupOptions options = new DeleteResourceGroupOptions.Builder().id(id).build();
Response<Void> response = service.deleteResourceGroup(options).execute();
System.out.println(response):
const params = {
    id: '09f8c1c0742c493f80baaf7835212345'
};
service.deleteResourceGroup(params).then(response => {
    console.log(response)
}).catch(err => {});
delete_resource_group(self,
        id: str,
        **kwargs
    ) -> DetailedResponse
ID := "09f8c1c0742c493f80baaf7835212345"
deleteResourceGroupOptionsModel := service.NewDeleteResourceGroupOptions(ID)
detailedResponse, err := service.DeleteResourceGroup(deleteResourceGroupOptionsModel)

Suppression d'un groupe de ressources à l'aide de Terraform

Avant de pouvoir supprimer un groupe de ressources à l'aide de Terraform, assurez-vous d'avoir effectué les opérations suivantes :

  • Installez le CLI Terraform et configurez le plug-in IBM Cloud Pour Terraform. Pour plus d'informations, voir le tutoriel pour démarrer avec Terraform sur IBM Cloud® Ce plug-in résume les API IBM Cloud utilisées pour effectuer cette tâche.
  • Créez un fichier de configuration Terraform nommé main.tf. Dans ce fichier, vous définissez les ressources en utilisant le langage de configuration HashiCorp. Pour plus d'informations, voir la documentation de Terraform.

Pour supprimer un groupe de ressources, procédez comme suit :

Le groupe de ressources ne peut être supprimé que s'il ne contient aucune ressource.

  1. Vous pouvez supprimer le groupe de ressources en supprimant le bloc de code suivant de votre fichier Terraform main.tf. Vous devez avoir créé le site resourceGroup à l'aide du fichier Terraform.

    resource "ibm_resource_group" "resourceGroup" {
     name     = "prod"
    }
    

    Pour plus d'informations, voir les détails de référence des arguments sur la page Terraform Resource Management.

  2. Une fois que vous avez fini de construire votre fichier de configuration, initialisez le CLI Terraform. Pour plus d'informations, voir Initialisation des répertoires de travail.

    terraform init
    
  3. Fournir les ressources du fichier " main.tf. Pour plus d'informations, voir Provisionnement de l'infrastructure avec Terraform.

    1. Exécutez 'terraform plan pour générer un plan d'exécution Terraform afin de prévisualiser les actions proposées.

      terraform plan
      
    2. Exécutez le " terraform apply pour créer les ressources définies dans le plan.

      terraform apply
      

Vous pouvez également supprimer un groupe de ressources en exécutant la commande terraform destroy ci-après.

terraform destroy -target RESOURCE_TYPE.NAME -target RESOURCE_TYPE2.NAME