Показывает код Terraform, который будет записывать автоматически созданный SSH-ключ в Azure Key Vault, чтобы вы могли программно получить ключ позже.
Обычно, когда Terraform создает ключ, он просто сохраняет его на локальном диске. Но это означает, что ключ будет недоступен, если у вас нет доступа к личному диску.
При выполнении развертывания в Gitlab CI/CD, например, вы потеряете ключ, когда конвейер завершится.
Этот код предполагает, что вы ранее создали Azure Key Vault (https://azure.microsoft.com/en-us/services/key-vault/), и вы передали свой принцип обслуживания для текущего кода Terraform в Azure Key Vault (https://docs.microsoft.com/en-us/azure/key-vault/general/rbac-guide?tabs=azure-cli).
Сначала создайте пару ключей SSH в Terraform:
resource "tls_private_key" "this" {
algorithm = "RSA"
rsa_bits = 4096
}
Затем загрузите ключ в Azure Key Vault.
data "azurerm_client_config" "current" {}
data "azurerm_key_vault" "kv1" {
name = var.kv_name
resource_group_name = var.resource_group_name
depends_on = [local_file.key_pem]
}
resource "azurerm_key_vault_secret" "privatekey" {
name = "private-key"
value = tls_private_key.this.private_key_pem
key_vault_id = data.azurerm_key_vault.kv1.id
}
В этом примере нам нужно установить несколько переменных:
-
kv_name = имя хранилища ключей Azure Key Vault Name
-
resource_group_name = Группа ресурсов Azure, к которой принадлежит Azure Key Vault.
Когда вы закончите, вы найдете свой закрытый SSH-ключ в хранилище ключей. Добавление открытого ключа — это упражнение для читателя.