Designando acesso ao cluster usando o Terraform para IBM Cloud Kubernetes Service
O Terraform na IBM Cloud® permite o provisionamento previsível e consistente de serviços IBM Cloud para que você possa criar rapidamente ambientes de nuvem complexos e multicamadas seguindo os princípios de infraestrutura como código (IaC). Semelhante ao uso da CLI ou da API e dos SDKs do IBM Cloud, é possível automatizar o fornecimento, a atualização e a exclusão de seus recursos do IBM Cloud Kubernetes Service usando o HashiCorp Configuration Language (HCL).
Procurando por uma solução Terraform gerenciada no IBM Cloud®? Experimente o IBM Cloud® Schematics. Com o Schematics, é possível usar a linguagem de script do Terraform com a qual você está familiarizado, mas não é necessário se preocupar em configurar e manter a linha de comandos do Terraform ou o plug-in do IBM Cloud® Provider. Schematics também fornece modelos do Terraform predefinidos que podem ser facilmente instalados por meio do catálogo do IBM Cloud®.
Criando um cluster do Kubernetes Service usando o Terraform
Para poder designar o acesso ao cluster usando o Terraform, siga as etapas para criar um cluster do Kubernetes Service usando o Terraform. Se você já tiver um cluster, consulte Designando o acesso de usuário do IAM
Antes de começar, certifique-se de que você tenha o acesso necessário para criar e trabalhar com recursos do IBM Cloud Kubernetes Service.
-
Siga o tutorial de informações iniciar do Terraform no IBM Cloud® para instalar a CLI do Terraform e configurar o plug-in do IBM Cloud® Provider para Terraform. O plug-in abstrai as APIs do IBM Cloud® que são usadas para provisionar, atualizar ou excluir instâncias de serviços e recursos do Kubernetes Service.
-
Siga o tutorial para criar clusters únicos e multizona com o Terraform.
Designando acesso de usuário do IAM a clusters do Kubernetes Service
É possível usar o Terraform para designar acesso de usuário do IAM para clusters Kubernetes Service em uma conta do IBM Cloud. Para obter mais informações sobre como usar o Terraform com políticas do IAM, consulte a documentação do Terraform do provedor IBM Cloud.
-
Em seu diretório do Terraform, crie um arquivo de configuração denominado
iam.tf
. No arquivoiam.tf
, inclua os parâmetros de configuração para criar uma política de acesso de usuário do IAM para um cluster do Kubernetes Service usando o HashiCorp Configuration Language (HCL). A configuração de exemplo a seguir cria oibm_iam_user_policy
e, em seguida, designa a política a um cluster especificado Para obter mais informações, consulte a Documentação do Terraformresource "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>" } }
Configurando políticas de acesso do IAM com o Terraform Recurso Descrição ibm_id
O ID do IBM Cloud ou o endereço de e-mail do usuário para o qual você deseja criar a política de acesso do IAM roles
Uma lista separada por vírgula das funções de acesso que você deseja designar ao usuário. service
O tipo de serviço ao qual a política de acesso se aplica.. Insira "containers-kubernetes"
para clusters do Kubernetes Service. Para obter uma lista completa de tipos de serviço aplicáveis, executeibmcloud ks catalog service-marketplace
resource_instance_id
O ID ou nome do cluster. Arquivo de configuração de exemplo:
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" } }
-
Inicialize a CLI do Terraform.
terraform init
-
Crie um plano de execução Terraform e revise a saída. O plano de execução do Terraform resume todas as ações que são executadas para criar o cluster Kubernetes Service em sua conta. Anote a seção
Plan
da saída A saída de exemplo indicaPlan: 1 to add, 0 to change, 0 to destroy
porque o arquivo de configuração cria uma política de acesso de usuário do IAMTerraform 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.
-
Aplique o arquivo de configuração para criar a política de acesso Pode levar alguns segundos para concluir. Na saída, observe o número do ID da política após o e-mail IBM do usuário.
terraform apply
Saída de exemplo:
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]
-
Verifique se a política de acesso do IAM foi criada com sucesso executando o comando e procurando o ID de política anotado anteriormente.
ibmcloud iam user-policies ibm_id@ibm.com
Saída de exemplo:
Policy ID: f81b161f-e1db-4084-8b28-cfcbe88fec72 Roles: Viewer, Editor, Administrator Resources: Service Name containers-kubernetes Service Instance my-cluster