Configurando o Terraform para Secrets Manager

O Terraform no IBM Cloud permite a criação previsível e consistente de serviços IBM Cloud, para que você possa construir rapidamente ambientes complexos em nuvem com várias camadas, seguindo os princípios da Infraestrutura como Código ( IaC ). Da mesma forma que ao usar a CLI, a API e os SDKs do IBM Cloud, você pode automatizar a criação, a atualização e a exclusão de suas instâncias do Secrets Manager usando a Linguagem de Configuração do HashiCorp (HCL).

Procurando por um Terraform gerenciado na solução do IBM Cloud? Experimente o IBM Cloud® Schematics. Com Schematics, você pode usar a linguagem de script do Terraform com a qual está familiarizado. Mas você não precisa se preocupar em configurar e manter a linha de comando do Terraform e o plug-in do provedor IBM Cloud. O Schematics também fornece modelos pré-definidos do Terraform que você pode instalar facilmente a partir do catálogo IBM Cloud.

Instalando o Terraform e configurando recursos para Secrets Manager

Antes de poder criar uma autorização usando o Terraform, certifique-se de ter concluído as etapas a seguir:

  • Certifique-se de ter o acesso necessário para criar e trabalhar com recursos do Secrets Manager.
  • Instale a CLI do Terraform e configure o plug-in do provedor IBM Cloud para o Terraform. Para obter mais informações, consulte o tutorial para Introdução ao Terraform no IBM Cloud O plug-in abstrai as APIs do IBM Cloud que são usadas para concluir esta tarefa.
  • Crie um arquivo de configuração do Terraform que seja denominado main.tf. Nesse arquivo, você define recursos usando o HashiCorp Configuration Language. Para obter mais informações, consulte a documentação do Terraform.
  1. Após concluir a construção do arquivo de configuração, inicialize a CLI do Terraform. Para obter mais informações, consulte Inicializando diretórios de trabalho.

    terraform init
    
  2. Crie uma instância Secrets Manager usando o argumento de recurso ibm_resource_instance em seu arquivo main.tf.

    • A instância Secrets Manager no exemplo a seguir é denominada secrets-manager-london e é criada com o plano de avaliação na região eu-gb. O user@ibm.com é designado à função de Administrador na política de acesso do IAM Para outras regiões suportadas, consulte Regiões e terminais.. As opções de plano incluem trial e standard
        resource "ibm_resource_instance" "sm_instance" {
            name = "Secrets Manager-London"
            service = "secrets-manager"
            plan = "trial"
            location = "eu-gb"
            timeouts {
             create = "60m"
             delete = "2h"
         },
        }
    

    Para visualizar uma lista completa dos atributos suportados, consulte ibm_resource_instance..

    Opcionalmente, é possível criar uma origem de dados para recuperar informações sobre uma instância Secrets Manager existente de IBM Cloud, executando o comando a seguir.

         data "ibm_resource_instance" "sm_resource_instance" {
             name              = "Secrets Manager-London"
             location          = "eu-gb"
             service           = "secrets-manager"
         }
    

    Para uma lista completa dos atributos suportados, consulte ibm_resource_instance.

  3. Provisione os recursos do arquivo main.tf. Para obter mais informações, consulte Provisioning Infrastructure with Terraform.

    1. Execute o terraform plan para gerar um plano de execução do Terraform para visualizar as ações propostas
         terraform plan
    
    1. Execute terraform apply para criar os recursos definidos no plano.
         terraform apply
    
  4. Defina valores locais para sua instância do Secrets Manager a ser usada quando você estiver criando recursos..

         locals {
             instance_id = data.ibm_resource_instance.sm_resource_instance.guid
             region = data.ibm_resource_instance.sm_resource_instance.location
         }
    
  5. Na lista de recursos “ IBM Cloud ” da interface do usuário, selecione a instância “ Secrets Manager ” que você criou e anote o ID da instância.

  6. Verifique se a política de acesso foi atribuída com sucesso. Para obter mais informações, consulte Revisando o acesso designado no console.

Gerenciando o desvio de recurso

Com o Terraform, é possível gerenciar com segurança e previsivelmente o ciclo de vida de sua infraestrutura usando arquivos de configuração declarativos Um desafio que existe quando você está gerenciando a infraestrutura como código é o desvio. O desvio ocorre quando os recursos são incluídos, excluídos ou modificados fora das mudanças de configuração do Terraform. Por exemplo, quando um segredo expira ou é girado. Para evitar desvio, sempre use o Terraform para gerenciar recursos inicialmente criados com o Terraform.

O arquivo de estado do Terraform é um registro de todos os recursos gerenciados pelo Terraform. Não se deve fazer mudanças manuais nos recursos que são controlados pelo Terraform porque, ao fazer isso, o arquivo de estado se torna fora de sincronização ou "desvio" da infraestrutura real. Se o seu estado e a configuração não corresponderem à sua infraestrutura, o Terraform tentará reconciliar sua infraestrutura, que pode destruir ou recriar involuntariamente os recursos.

Quando você estiver usando o provedor Terraform Secrets Manager, poderá ocorrer um desvio em casos como:

  • Expiração do segredo
  • Rotação automática de segredo
  • Mudanças externas nos recursos do Secret Manager que são controladas pelo Terraform

Ao projetar o seu projeto do Terraform, siga as práticas recomendadas do Terraform para gerenciar as mudanças no ciclo de vida e de deriva para evitar a destruição ou recriação não intencional dos recursos do Secrets Manager.

O que vem a seguir?

Agora que você criou com sucesso sua primeira instância de serviço do Secrets Manager com o Terraform no IBM Cloud, é possível revisar os recursos e origens de dados do Secrets Manager no registro do Terraform. Também é possível revisar como gerenciar seus recursos do Secrets Manager seguindo as etapas do Terraform incluídas na seção Como fazer. Por exemplo, é possível seguir as instruções sobre como criar segredos arbitrários usando Terraform.

Para implementações de produção, considere o IBM Cloud® Secrets Manager que fornece configurações prontas para a empresa. Saiba mais sobre o Terraform IBM Modules.