Quickstart: Een Azure-sleutelkluis en -sleutel maken met Behulp van Terraform
Artikel
Azure Key Vault is een cloudservice die een beveiligd archief biedt voor geheimen, zoals sleutels, wachtwoorden en certificaten. Dit artikel is gericht op het implementeren van een Terraform-bestand om een sleutelkluis en een sleutel te maken.
Terraform maakt de definitie, preview en implementatie van de cloudinfrastructuur mogelijk. Met Behulp van Terraform maakt u configuratiebestanden met behulp van de HCL-syntaxis. Met de HCL-syntaxis kunt u de cloudprovider opgeven, zoals Azure, en de elementen waaruit uw cloudinfrastructuur bestaat. Nadat u uw configuratiebestanden hebt gemaakt, maakt u een uitvoeringsplan waarmee u een voorbeeld van uw infrastructuurwijzigingen kunt bekijken voordat ze worden geïmplementeerd. Zodra u de wijzigingen hebt gecontroleerd, past u het uitvoeringsplan toe om de infrastructuur te implementeren.
In dit artikel leert u het volgende:
Een willekeurige waarde maken voor de naam van de Azure-resourcegroep met behulp van random_pet
Maak een bestand met de naam variables.tf en voeg de volgende code in:
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
}
Maak een bestand met de naam outputs.tf en voeg de volgende code in:
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
}
Terraform initialiseren
Voer terraform init uit om de Terraform-implementatie te initialiseren. Met deze opdracht wordt de Azure-provider gedownload die is vereist voor het beheren van uw Azure-resources.
Console
terraform init -upgrade
Belangrijkste punten:
Met -upgrade de parameter worden de benodigde providerinvoegtoepassingen bijgewerkt naar de nieuwste versie die voldoet aan de versiebeperkingen van de configuratie.
Een Terraform-uitvoeringsplan maken
Voer terraform-plan uit om een uitvoeringsplan te maken.
Console
terraform plan -out main.tfplan
Belangrijkste punten:
De terraform plan opdracht maakt een uitvoeringsplan, maar voert het niet uit. In plaats daarvan wordt bepaald welke acties nodig zijn om de configuratie te maken die is opgegeven in uw configuratiebestanden. Met dit patroon kunt u controleren of het uitvoeringsplan aan uw verwachtingen voldoet voordat u wijzigingen aanbrengt in de werkelijke resources.
Met de optionele -out parameter kunt u een uitvoerbestand voor het plan opgeven. Door de -out parameter te gebruiken, zorgt u ervoor dat het plan dat u hebt gecontroleerd precies wordt toegepast.
Een Terraform-uitvoeringsplan toepassen
Terraform uitvoeren is van toepassing om het uitvoeringsplan toe te passen op uw cloudinfrastructuur.
Console
terraform apply main.tfplan
Belangrijkste punten:
Bij de voorbeeldopdracht terraform apply wordt ervan uitgegaan dat u eerder hebt uitgevoerd terraform plan -out main.tfplan.
Als u een andere bestandsnaam voor de -out parameter hebt opgegeven, gebruikt u diezelfde bestandsnaam in de aanroep naar terraform apply.
Als u de parameter niet hebt gebruikt, roept terraform apply u deze -out aan zonder parameters.
De terraform plan opdracht maakt een uitvoeringsplan, maar voert het niet uit. In plaats daarvan wordt bepaald welke acties nodig zijn om de configuratie te maken die is opgegeven in uw configuratiebestanden. Met dit patroon kunt u controleren of het uitvoeringsplan aan uw verwachtingen voldoet voordat u wijzigingen aanbrengt in de werkelijke resources.
Met de optionele -out parameter kunt u een uitvoerbestand voor het plan opgeven. Door de -out parameter te gebruiken, zorgt u ervoor dat het plan dat u hebt gecontroleerd precies wordt toegepast.
Terraform uitvoeren is van toepassing om het uitvoeringsplan toe te passen.