Saiba como comprar e ativar uma instância de gerenciamento de chaves de software do KMS usando o Terraform.
Visão geral
Uma instância de gerenciamento de chaves de software requer uma VPC e um vSwitch. Você também pode associar várias VPCs à instância. Após a conclusão da configuração, o sistema gera um certificado de instância CA. Armazene esse certificado com segurança, pois as aplicações que acessam a instância do KMS exigem esse documento.
Preparação
-
Prepare um usuário RAM e conceda permissões
Por questões de segurança, use um usuário RAM em vez da sua conta Alibaba Cloud.
Crie um usuário RAM: Criar um usuário RAM.
Crie uma AccessKey: Crie e registre uma AccessKey para o usuário RAM. Criar uma AccessKey.
-
Conceda permissões ao usuário RAM: O Terraform exige as permissões AliyunKMSFullAccess, AliyunVPCFullAccess e AliyunBSSFullAccess. Para seguir o princípio de menor privilégio, aplique a seguinte política personalizada. Conceder permissões a um usuário RAM.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "vpc:CreateVpc", "vpc:CreateVSwitch", "vpc:DescribeNatGateways", "vpc:DeleteVpc", "vpc:DeleteVSwitch" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "vpc:DescribeVpcAttribute", "vpc:DescribeVSwitchAttributes", "vpc:DescribeRouteTableList" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "bss:*", "bssapi:*" ], "Resource": [ "*" ] } ] }
-
Prepare o ambiente de execução do Terraform
Execute o Terraform de uma das seguintes maneiras:
ImportanteO Terraform
v0.12.28ou superior é obrigatório. Executeterraform --versionpara verificar.Terraform Explorer: Ambiente online da Alibaba Cloud. Faça login para uso imediato, sem necessidade de instalação. Ideal para testes rápidos e gratuitos.
Cloud Shell: O Terraform vem pré-instalado e as credenciais são configuradas automaticamente. Recomendado para execuções rápidas na nuvem.
Instalar e configurar o Terraform localmente: Indicado para ambientes com conectividade limitada ou requisitos de configuração personalizada.
-
Verifique a versão do Aliyun/Alicloud Provider
Alguns recursos exigem uma versão mínima do provider Aliyun/Alicloud:
Definir renovação automática na criação: Requer o provider
1.245.0ou superior.Alterar para renovação automática: Requer o provider
1.257.0ou superior.
Recursos utilizados
alicloud_vpc: Cria uma nuvem privada virtual (VPC).
alicloud_vswitch: Cria um switch virtual (vSwitch) para dividir uma VPC em uma ou mais sub-redes.
alicloud_zones: Consulta as zonas disponíveis.
alicloud_kms_instance: Compra e ativa uma instância de gerenciamento de chaves de software.
Alguns recursos deste tutorial geram custos. Libere-os quando não forem mais necessários.
Comprar e ativar uma instância de gerenciamento de chaves de software usando o Terraform
Este exemplo cria e ativa uma instância do KMS.
Ao ativar uma instância de gerenciamento de chaves de software com o Terraform, você pode configurar apenas um vSwitch.
-
Crie um diretório de trabalho e adicione um arquivo de configuração chamado
main.tfnesse diretório. O arquivo main.tf é o arquivo principal do Terraform e define os recursos a serem implantados.variable "region" { default = "ap-southeast-1" } provider "alicloud" { region = var.region } variable "instance_name" { default = "tf-kms-vpc-172-16" } variable "instance_type" { default = "ecs.e-c1m2.large" } # Use a data source to obtain information about available zones. Resources can be created only in the specified zones. data "alicloud_zones" "default" { available_disk_category = "cloud_efficiency" available_resource_creation = "VSwitch" available_instance_type = var.instance_type } # Create a VPC. resource "alicloud_vpc" "vpc" { vpc_name = var.instance_name cidr_block = "172.16.0.0/12" } # Create a vSwitch with a CIDR block of 172.16.0.0/21. resource "alicloud_vswitch" "vsw" { vpc_id = alicloud_vpc.vpc.id cidr_block = "172.16.0.0/21" zone_id = data.alicloud_zones.default.zones.0.id vswitch_name = "terraform-example-1" } # Create a KMS software key management instance and start it using network parameters. resource "alicloud_kms_instance" "default" { # Software key management instance. product_version = "3" vpc_id = alicloud_vpc.vpc.id # Specify the zones where the KMS instance resides. Use the zone IDs that are obtained. zone_ids = [ data.alicloud_zones.default.zones.0.id, data.alicloud_zones.default.zones.1.id ] # The vSwitch ID. vswitch_ids = [ alicloud_vswitch.vsw.id ] # The computing performance, number of keys, number of secrets, and number of managed access requests. vpc_num = "1" key_num = "1000" secret_num = "100" spec = "1000" # Optional. Associate other VPCs with the KMS instance. # If a VPC and the VPC of the KMS instance belong to different Alibaba Cloud accounts, you must first share the vSwitch. #bind_vpcs { #vpc_id = "vpc-j6cy0l32yz9ttxfy6****" #vswitch_id = "vsw-j6cv7rd1nz8x13ram****" #region_id = "ap-southeast-1" #vpc_owner_id = "119285303511****" #} #bind_vpcs { #vpc_id = "vpc-j6cy0l32yz9ttd7g3****" #vswitch_id = "vsw-3h4yrd1nz8x13ram****" #region_id = "ap-southeast-1" #vpc_owner_id = "119285303511****" #} } # Save the CA certificate of the KMS instance to a local file. resource "local_file" "ca_certificate_chain_pem" { content = alicloud_kms_instance.default.ca_certificate_chain_pem filename = "ca.pem" } -
Inicialize o ambiente de execução do
Terraform.terraform initUma inicialização bem-sucedida gera a seguinte saída:
... Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes... -
Crie um plano de execução e visualize as alterações.
terraform plan -
Crie a instância do KMS.
terraform applyInsira
yesquando solicitado e pressione Enter. A saída abaixo confirma a criação da instância do KMS.Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes ... Apply complete! Resources: 4 added, 0 changed, 0 destroyed. -
Verifique o resultado.
Executar o comando terraform show
Consulte os detalhes dos recursos criados pelo Terraform:
terraform showFazer login no console do Key Management Service
Faça login no console do Key Management Service. Na página Instance Management, siga o Application Integration Guide: Authorize Application Access, Obtain Instance CA Certificate e Complete Application Adaptation. Concentre-se nas duas últimas etapas. A aba Software Key Management lista suas instâncias do KMS com capacidade de chaves, capacidade de segredos, hora de criação, método de faturamento e status de expiração. Você pode visualizar Details, gerenciar Resource Sharing ou iniciar uma Renewal.
Limpar recursos
Para liberar recursos criados pelo Terraform que não são mais necessários, execute o comando a seguir. O uso do terraform destroy está detalhado em Comandos comuns.
terraform destroy
Exemplo completo
Execute o código de exemplo diretamente com um único clique. Executar com um clique