Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este inicio rápido, creará un grupo de recursos de Azure y un confidential ledger mediante Terraform. Azure confidential ledger es un servicio totalmente administrado que proporciona un registro a prueba de alteraciones para almacenar datos confidenciales. Se basa en la informática confidencial de Azure, que usa entornos de ejecución de confianza basados en hardware para proteger los datos de las amenazas incluso cuando está en uso. Este libro de contabilidad está diseñado para mantener la confidencialidad e integridad de los datos que almacena, lo que lo convierte en ideal para casos de uso que requieran altos niveles de protección de datos. Los recursos creados en este script incluyen una instancia de Azure confidential ledger y un grupo de recursos de Azure.
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.
- Genere un nombre de pila aleatorio para el grupo de recursos.
- Cree un grupo de recursos de Azure con el nombre generado.
- Recupere la configuración actual del cliente de Azure.
- Genere una cadena aleatoria para el nombre del Azure confidential ledger.
- Cree un Azure confidential ledger con el nombre generado y asígnelo al grupo de recursos.
- Asigne una entidad de servicio basada en Azure AD al confidential ledger.
- Etiquete el confidential ledger como ejemplo.
- Genere el nombre del grupo de recursos, así como el nombre, el tipo y el nombre del rol del confidential ledger.
- Especifique la versión necesaria de Terraform y los proveedores necesarios.
- Defina el proveedor de Azure sin características adicionales.
- Defina las variables para el prefijo de nombre del grupo de recursos, la ubicación del grupo de recursos y el nombre, el tipo y el nombre del rol del confidential ledger.
Requisitos previos
Cree una cuenta de Azure con una suscripción activa. También puede crear una cuenta de forma gratuita.
Implementación del código de Terraform
Nota
El código de ejemplo de este artículo se encuentra en el repositorio de GitHub de Azure Terraform. Puedes ver el archivo de registro que contiene los resultados de las pruebas de las versiones actuales y anteriores de Terraform.
Consulte más artículos y código de ejemplo sobre el uso de Terraform para administrar recursos de Azure.
Cree un directorio en el que probar y ejecutar el código de ejemplo de Terraform y conviértalo en el directorio actual.
Cree un archivo llamado
main.tfe inserte el siguiente código:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { location = var.resource_group_location name = random_pet.rg_name.id } data "azurerm_client_config" "current" { } resource "random_string" "azurerm_confidential_ledger_name" { length = 13 lower = true numeric = false special = false upper = false } resource "azurerm_confidential_ledger" "example" { name = coalesce(var.confidential_ledger_name, "ledger-${random_string.azurerm_confidential_ledger_name.result}") resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location ledger_type = var.confidential_ledger_type azuread_based_service_principal { principal_id = data.azurerm_client_config.current.object_id tenant_id = data.azurerm_client_config.current.tenant_id ledger_role_name = var.confidential_ledger_role_name } tags = { IsExample = "True" } }Cree un archivo llamado
outputs.tfe inserte el siguiente código:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "confidential_ledger_name" { value = azurerm_confidential_ledger.example.name } output "confidential_ledger_type" { value = azurerm_confidential_ledger.example.ledger_type } output "confidential_ledger_role_name" { value = azurerm_confidential_ledger.example.azuread_based_service_principal[0].ledger_role_name }Cree un archivo llamado
providers.tfe inserte el siguiente código:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }Cree un archivo llamado
variables.tfe inserte el siguiente código:variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." } variable "resource_group_location" { type = string default = "eastus" description = "Location of the resource group." } variable "confidential_ledger_name" { type = string description = "The name of the confidential ledger resource. The value will be randomly generated if blank." default = "" } variable "confidential_ledger_type" { type = string default = "Public" validation { condition = contains(["Public", "Private"], var.confidential_ledger_type) error_message = "The confidential ledger type value must be one of the following: Public, Private." } description = "Type of the confidential ledger." } variable "confidential_ledger_role_name" { type = string default = "Administrator" description = "Role name for the confidential ledger." }
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.
terraform init -upgrade
Puntos clave:
- El parámetro
-upgradeactualiza los complementos de proveedor necesarios a la versión más reciente que cumpla con las restricciones de versión de la configuración.
Creación de un plan de ejecución de Terraform
Ejecute terraform plan para crear un plan de ejecución.
terraform plan -out main.tfplan
Puntos clave:
- El comando
terraform plancrea 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
-outopcional permite especificar un archivo de salida para el plan. El uso del parámetro-outgarantiza 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.
terraform apply main.tfplan
Puntos clave:
- El comando
terraform applyde ejemplo asume que ejecutóterraform plan -out main.tfplanpreviamente. - Si especificó un nombre de archivo diferente para el parámetro
-out, use ese mismo nombre de archivo en la llamada aterraform apply. - Si no ha utilizado el parámetro
-out, llame aterraform applysin ningún parámetro.
Verificación de los resultados
CLI de Azure
Ejecute az confidential-ledger show para ver el Azure confidential ledger.
az confidentialledger show --ledger-name <ledger_name> --resource-group <resource_group_name>
Debe reemplazar <ledger_name> por el nombre del Azure confidential ledger y <resource_group_name> por el nombre del grupo de recursos.
Limpieza de recursos
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.terraform plan -destroy -out main.destroy.tfplanPuntos clave:
- El comando
terraform plancrea 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
-outopcional permite especificar un archivo de salida para el plan. El uso del parámetro-outgarantiza que el plan que ha revisado es exactamente lo que se aplica.
- El comando
Ejecute terraform apply para aplicar el plan de ejecución.
terraform apply main.destroy.tfplan
Solución de problemas de Terraform en Azure
Solución de problemas comunes al usar Terraform en Azure.