Affectation de l'accès au cluster à l'aide de Terraform pour IBM Cloud Kubernetes Service
Terraform sur IBM Cloud® permet une mise à disposition prévisible et cohérente des services IBM Cloud afin que vous puissiez générer rapidement des environnements de cloud complexes et à plusieurs niveaux, à la suite des principes IaC (Infrastructure as Code). Comme pour l'utilisation de l'interface de ligne de commande IBM Cloud ou de l'API et des logiciels SDK, vous pouvez automatiser la mise à disposition, la mise à jour et la suppression de vos ressources IBM Cloud Kubernetes Service à l'aide du langage HCL ( HashiCorp Configuration Language).
Vous recherchez une solution Terraform on IBM Cloud® gérée ? Essayez IBM Cloud® Schematics. Avec Schematics, vous pouvez utiliser le langage de script Terraform que vous connaissez, mais vous n'avez pas à vous soucier de la configuration et de la maintenance de la ligne de commande Terraform ou du plug-in IBM Cloud® Provider. Schematics fournit également des modèles Terraform prédéfinis que vous pouvez facilement installer à partir du catalogue IBM Cloud®.
Création d'un cluster Kubernetes Service à l'aide de Terraform
Avant de pouvoir affecter un accès au cluster à l'aide de Terraform, suivez les étapes de création d'un cluster Kubernetes Service à l'aide de Terraform. Si vous disposez déjà d'un cluster, voir Affectation d'accès utilisateur IAM.
Avant de commencer, vérifiez que vous disposez de l'accès requis pour créer et utiliser des ressources IBM Cloud Kubernetes Service.
-
Suivez le tutoriel d'initiation à Terraform on IBM Cloud® pour installer l'interface de ligne de commande de Terraform et configurer le plug-in IBM Cloud® Provider pour Terraform. Le plug-in extrait les API IBM Cloud® utilisées pour la mise à disposition, la mise à jour ou la suppression des instances de service et des ressources Kubernetes Service.
-
Suivez le tutoriel pour créer des clusters à zone unique et à zones multiples avec Terraform.
-
Facultatif: utilisez Terraform pour configurer des règles d'accès utilisateur IAM pour votre cluster Kubernetes Service.
Affectation de l'accès utilisateur IAM aux clusters Kubernetes Service
Vous pouvez utiliser Terraform pour affecter un accès utilisateur IAM aux clusters Kubernetes Service dans un compte IBM Cloud. Pour plus d'informations sur l'utilisation de Terraform avec des règles IAM, voir la documentation Terraform du fournisseur IBM Cloud.
-
Dans votre répertoire Terraform, créez un fichier de configuration nommé
iam.tf
. Dans votre fichieriam.tf
, ajoutez les paramètres de configuration pour créer une règle d'accès utilisateur IAM pour un cluster Kubernetes Service à l'aide du langage HCL ( HashiCorp Configuration Language). L'exemple de configuration suivant crée leibm_iam_user_policy
, puis affecte la règle à un cluster spécifié. Pour plus d'informations, voir la documentation Terraform.resource "ibm_iam_user_policy" "cluster" { ibm_id = "<ibm_id>" roles = ["<access_role_1>, <access_role_2>"] resources { service = "containers-kubernetes" resource_instance_id = "<cluster_name>" } }
Configuration de règles d'accès IAM avec Terraform Ressource Description ibm_id
L'ID ou l'adresse électronique IBM Cloud de l'utilisateur pour lequel vous souhaitez créer la règle d'accès IAM. roles
Liste séparée par des virgules des rôles d'accès que vous souhaitez affecter à l'utilisateur. service
Type de service auquel la règle d'accès s'applique. Entrez "containers-kubernetes"
pour les clusters Kubernetes Service. Pour obtenir la liste complète des types de service applicables, exécutezibmcloud ks catalog service-marketplace
.resource_instance_id
ID ou nom du cluster. Exemple de fichier de configuration:
resource "ibm_iam_user_policy" "test_policy" { ibm_id = "ibm_id@ibm.com" roles = ["Viewer", "Editor", "Administrator"] resources { service = "containers-kubernetes" resource_instance_id = "my-cluster" } }
-
Initialisez l'interface de ligne de commande de Terraform.
terraform init
-
Créez un plan d'exécution Terraform et examinez la sortie. Le plan d'exécution Terraform récapitule toutes les actions qui s'exécutent pour créer le cluster Kubernetes Service dans votre compte. Notez la section
Plan
de la sortie. L'exemple de sortie indiquePlan: 1 to add, 0 to change, 0 to destroy
car le fichier de configuration crée une règle d'accès utilisateur IAM.Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # ibm_iam_user_policy.test_policy will be created + resource "ibm_iam_user_policy" "test_policy" { + account_management = false + ibm_id = "ibm_id@ibm.com" + id = (known after apply) + roles = [ + "Viewer", + "Editor", + "Administrator", ] + resources { + service = "containers-kubernetes" } } Plan: 1 to add, 0 to change, 0 to destroy.
-
Appliquez le fichier de configuration pour créer la règle d'accès. Cette opération peut prendre quelques secondes. Dans la sortie, notez le numéro d'ID de règle après l'adresse électronique IBM de l'utilisateur.
terraform apply
Exemple de sortie :
ibm_iam_user_policy.test_policy: Creating... ibm_iam_user_policy.test_policy: Creation complete after 2s [id=ibm_id@ibm.com/f81b161f-e1db-4084-8b28-cfcbe88fec72]
-
Vérifiez que la règle d'accès IAM a été créée en exécutant la commande et en recherchant l'ID de règle que vous avez précédemment noté.
ibmcloud iam user-policies ibm_id@ibm.com
Exemple de sortie :
Policy ID: f81b161f-e1db-4084-8b28-cfcbe88fec72 Roles: Viewer, Editor, Administrator Resources: Service Name containers-kubernetes Service Instance my-cluster