Inicio rápido: crear un almacén de claves de Azure y una clave mediante Terraform
Artículo
Azure Key Vault es un servicio en la nube que proporciona un lugar seguro para almacenar los secretos,como claves, contraseñas y certificados. Este artículo se centra en el proceso de implementación de un archivo de Terraform para crear un almacén de claves y una clave.
Terraform habilita la definición, vista previa e implementación de la infraestructura en la nube. Con Terraform, se crean archivos de configuración mediante la sintaxis de HCL. La sintaxis de HCL permite especificar el proveedor de la nube, como Azure, y los elementos que componen la infraestructura de la nube. Después de crear los archivos de configuración, se crea un plan de ejecución que permite obtener una vista previa de los cambios de infraestructura antes de implementarlos. Una vez que compruebe los cambios, aplique el plan de ejecución para implementar la infraestructura.
En este artículo aprenderá a:
Crear un valor aleatorio para el nombre del grupo de recursos de Azure mediante random_pet
Cree un archivo denominado variables.tf e inserte el siguiente código:
Terraform
variable"resource_group_location" {
type = string
description = "Location for all resources."
default = "eastus"
}
variable"resource_group_name_prefix" {
type = string
description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription."
default = "rg"
}
variable"vault_name" {
type = string
description = "The name of the key vault to be created. The value will be randomly generated if blank."
default = ""
}
variable"key_name" {
type = string
description = "The name of the key to be created. The value will be randomly generated if blank."
default = ""
}
variable"sku_name" {
type = string
description = "The SKU of the vault to be created."
default = "standard"
validation {
condition = contains(["standard", "premium"], var.sku_name)
error_message = "The sku_name must be one of the following: standard, premium."
}
}
variable"key_permissions" {
type = list(string)
description = "List of key permissions."
default = ["List", "Create", "Delete", "Get", "Purge", "Recover", "Update", "GetRotationPolicy", "SetRotationPolicy"]
}
variable"secret_permissions" {
type = list(string)
description = "List of secret permissions."
default = ["Set"]
}
variable"key_type" {
description = "The JsonWebKeyType of the key to be created."
default = "RSA"
type = string
validation {
condition = contains(["EC", "EC-HSM", "RSA", "RSA-HSM"], var.key_type)
error_message = "The key_type must be one of the following: EC, EC-HSM, RSA, RSA-HSM."
}
}
variable"key_ops" {
type = list(string)
description = "The permitted JSON web key operations of the key to be created."
default = ["decrypt", "encrypt", "sign", "unwrapKey", "verify", "wrapKey"]
}
variable"key_size" {
type = number
description = "The size in bits of the key to be created."
default = 2048
}
variable"msi_id" {
type = string
description = "The Managed Service Identity ID. If this value isn't null (the default), 'data.azurerm_client_config.current.object_id' will be set to this value."
default = null
}
Cree un archivo denominado outputs.tf e inserte el siguiente código:
Terraform
output"resource_group_name" {
value = azurerm_resource_group.rg.name
}
output"azurerm_key_vault_name" {
value = azurerm_key_vault.vault.name
}
output"azurerm_key_vault_id" {
value = azurerm_key_vault.vault.id
}
Inicialización de Terraform
Para inicializar la implementación de Terraform, ejecute terraform init. Este comando descarga el proveedor de Azure necesario para administrar los recursos de Azure.
Consola
terraform init -upgrade
Puntos clave:
El parámetro -upgrade actualiza los complementos de proveedor necesarios a la versión más reciente que cumpla con las restricciones de versión de la configuración.
El comando terraform plan crea un plan de ejecución, pero no lo ejecuta. En su lugar, determina qué acciones son necesarias para crear la configuración especificada en los archivos de configuración. Este patrón le permite comprobar si el plan de ejecución coincide con sus expectativas antes de realizar cambios en los recursos reales.
El parámetro -out opcional permite especificar un archivo de salida para el plan. El uso del parámetro -out garantiza que el plan que ha revisado es exactamente lo que se aplica.
Aplicación de un plan de ejecución de Terraform
Ejecute terraform apply para aplicar el plan de ejecución a su infraestructura en la nube.
Consola
terraform apply main.tfplan
Puntos clave:
El comando terraform apply de ejemplo asume que ejecutó terraform plan -out main.tfplan previamente.
Si especificó un nombre de archivo diferente para el parámetro -out, use ese mismo nombre de archivo en la llamada a terraform apply.
Si no ha utilizado el parámetro -out, llame a terraform apply sin ningún parámetro.
Cuando ya no necesite los recursos creados a través de Terraform, realice los pasos siguientes:
Ejecute el comando terraform plan y especifique la marca destroy.
Consola
terraform plan -destroy -out main.destroy.tfplan
Puntos clave:
El comando terraform plan crea un plan de ejecución, pero no lo ejecuta. En su lugar, determina qué acciones son necesarias para crear la configuración especificada en los archivos de configuración. Este patrón le permite comprobar si el plan de ejecución coincide con sus expectativas antes de realizar cambios en los recursos reales.
El parámetro -out opcional permite especificar un archivo de salida para el plan. El uso del parámetro -out garantiza que el plan que ha revisado es exactamente lo que se aplica.
Demostrar conocimientos fundamentales de los conceptos de la nube, los servicios principales de Azure, además de las características y herramientas de gobernanza y administración de Azure.