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.
-
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 -
Crie uma instância Secrets Manager usando o argumento de recurso
ibm_resource_instanceem seu arquivomain.tf.- A instância Secrets Manager no exemplo a seguir é denominada
secrets-manager-londone é criada com o plano de avaliação na regiãoeu-gb. Ouser@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 incluemtrialestandard
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. - A instância Secrets Manager no exemplo a seguir é denominada
-
Provisione os recursos do arquivo
main.tf. Para obter mais informações, consulte Provisioning Infrastructure with Terraform.- Execute o
terraform planpara gerar um plano de execução do Terraform para visualizar as ações propostas
terraform plan- Execute
terraform applypara criar os recursos definidos no plano.
terraform apply - Execute o
-
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 } -
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.
-
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.