IBM Cloud Docs
Designando acesso ao cluster usando o Terraform para IBM Cloud Kubernetes Service

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.

  1. 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.

  2. Siga o tutorial para criar clusters únicos e multizona com o Terraform.

  3. Opcional: use o Terraform para configurar políticas de acesso de usuário do IAM para seu cluster do Kubernetes Service.

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.

  1. Em seu diretório do Terraform, crie um arquivo de configuração denominado iam.tf. No arquivo iam.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 o ibm_iam_user_policy e, em seguida, designa a política a um cluster especificado Para obter mais informações, consulte a Documentação do 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>"
    }
    }
    
    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, execute ibmcloud 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"
        }
    }
    
  2. Inicialize a CLI do Terraform.

    terraform init
    
  3. 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 indica Plan: 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 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.
    
  4. 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]
    
  5. 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