Terraform module to orchestrate Azure Confidential VM (CVM) instances.
Official documentation: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/service_principal_client_secret
Generate your Azure Client Id and Secret keys in Azure. Source an .rc file with the following environment variables:
export ARM_SUBSCRIPTION_ID=***
export ARM_TENANT_ID=***
export ARM_CLIENT_ID=***
export ARM_CLIENT_SECRET=***
Users of this Terraform module can create multiple similar resources by using for_each meta-argument within module block.
Users of Terragrunt can achieve similar results by using modules provided in the wrappers directory, if they prefer to reduce amount of configuration files.
| Name | Version |
|---|---|
| terraform | >= 1.0 |
| azurerm | >= 4.50 |
| Name | Version |
|---|---|
| azurerm | >= 4.50 |
| http | n/a |
| local | n/a |
| null | n/a |
| tls | n/a |
No modules.
| Name | Type |
|---|---|
| azurerm_linux_virtual_machine.cvm | resource |
| azurerm_network_interface.default | resource |
| azurerm_network_security_group.default | resource |
| azurerm_network_security_rule.default | resource |
| azurerm_network_security_rule.ssh | resource |
| azurerm_public_ip.default | resource |
| azurerm_subnet.default | resource |
| azurerm_subnet_network_security_group_association.default | resource |
| azurerm_virtual_network.default | resource |
| local_sensitive_file.signing-key | resource |
| null_resource.signing-key-fingerprint | resource |
| tls_private_key.rsa-4096 | resource |
| azurerm_resource_group.default | data source |
| http_http.cblogin | data source |
| local_file.signing-key-fingerprint | data source |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| az_region | Azure Region. Defaults to the AZ Resource Group location. | string |
null |
no |
| az_resource_group_name | Azure Resource Group Name | string |
n/a | yes |
| cb_password | CanaryBit password | string |
n/a | yes |
| cb_username | CanaryBit username | string |
n/a | yes |
| cvm_disk_size_gb | CVM Disk size | string |
"30" |
no |
| cvm_name | Confidential VM name | string |
n/a | yes |
| cvm_os | URN of the OS image | string |
"canonical:ubuntu-24_04-lts:cvm:latest" |
no |
| cvm_ports_open | List of CVM open network ports | list(string) |
[] |
no |
| cvm_size | Supported sizes are Standard_DC* or Standard_EC* series |
string |
n/a | yes |
| cvm_ssh_enabled | Enable/Disable SSH login | bool |
null |
no |
| cvm_ssh_pubkey | Path to the public key used for SSH connection | string |
n/a | yes |
| cvm_username | CVM Username for SSH login | string |
"tower" |
no |
| remote_attestation | Enable CanaryBit Remote Attestation | object({ |
null |
no |
| Name | Description |
|---|---|
| cloud-init | The cloud-init configuration of the running CVM instance(s) |
| cvm-info | Details of the running CVM instance(s) |