Terraform Запись SSH-ключа в Azure Key Vault для виртуальной машины Azure VM

Показывает код 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
}
Войти в полноэкранный режим Выйдите из полноэкранного режима

В этом примере нам нужно установить несколько переменных:

  1. kv_name = имя хранилища ключей Azure Key Vault Name

  2. resource_group_name = Группа ресурсов Azure, к которой принадлежит Azure Key Vault.

Когда вы закончите, вы найдете свой закрытый SSH-ключ в хранилище ключей. Добавление открытого ключа — это упражнение для читателя.

Оцените статью
devanswers.ru
Добавить комментарий