Упрощение установки Azure Cosmo DB: как создать и сохранить строку подключения в Key Vault с помощью Terraform

Azure Cosmos DB — это глобально распределенная многомодельная служба базы данных, предоставляемая Microsoft Azure. Он предлагает высокую масштабируемость, низкую задержку и автоматическое индексирование, что делает его идеальным выбором для современных приложений. В этой статье мы рассмотрим процесс создания экземпляра Azure Cosmos DB и безопасного хранения его строки подключения в Azure Key Vault с помощью Terraform.

Содержание:

  1. Введение в Azure Cosmos DB
  2. Настройка Azure Cosmos DB с помощью Terraform
  3. Создание хранилища ключей Azure
  4. Настройка Terraform для интеграции хранилища ключей
  5. Хранение строки подключения Cosmos DB в Key Vault
  6. Получение строки подключения из Key Vault
  7. Заключение

Раздел 1. Знакомство с Azure Cosmos DB
Azure Cosmos DB — это глобально распределенная многомодельная служба базы данных, которая позволяет хранить данные и получать к ним доступ с помощью различных API, включая SQL, MongoDB, Cassandra, Gremlin, и хранилище таблиц Azure. Он обеспечивает автоматическое масштабирование, высокую доступность и низкую задержку, что делает его отличным выбором для современных приложений.

Раздел 2. Настройка Azure Cosmos DB с помощью Terraform
Чтобы создать экземпляр Azure Cosmos DB с помощью Terraform, вам необходимо определить необходимые ресурсы в файле конфигурации Terraform. Вот пример того, как вы можете создать учетную запись Cosmos DB:

resource "azurerm_cosmosdb_account" "example" {
  name                = "my-cosmosdb-account"
  location            = "eastus"
  resource_group_name = azurerm_resource_group.example.name
  offer_type          = "Standard"
  kind                = "GlobalDocumentDB"
}

Раздел 3. Создание хранилища ключей Azure
Azure Key Vault — это облачная служба, позволяющая безопасно хранить конфиденциальную информацию, такую ​​как пароли, строки подключения и ключи API, и управлять ею. Чтобы создать Azure Key Vault с помощью Terraform, вы можете использовать следующий код:

resource "azurerm_key_vault" "example" {
  name                        = "my-key-vault"
  location                    = "eastus"
  resource_group_name         = azurerm_resource_group.example.name
  enabled_for_disk_encryption = true
  tenant_id                   = data.azurerm_client_config.current.tenant_id
  sku_name                    = "standard"
}

Раздел 4. Настройка Terraform для интеграции Key Vault
Чтобы позволить Terraform взаимодействовать с Azure Key Vault, вам необходимо настроить необходимые параметры поставщика и аутентификации. Вот пример того, как вы можете настроить интеграцию поставщика Azure и Key Vault в вашей конфигурации Terraform:

provider "azurerm" {
  features {}
}
data "azurerm_client_config" "current" {}
data "azurerm_key_vault" "example" {
  name                = azurerm_key_vault.example.name
  resource_group_name = azurerm_key_vault.example.resource_group_name
}

Раздел 5. Хранение строки подключения Cosmos DB в Key Vault
Чтобы сохранить строку подключения вашего экземпляра Azure Cosmos DB в Azure Key Vault, вы можете использовать следующий код Terraform:

resource "azurerm_key_vault_secret" "example" {
  name         = "cosmosdb-connection-string"
  value        = azurerm_cosmosdb_account.example.connection_strings.0.connection_string
  key_vault_id = azurerm_key_vault.example.id
}

Раздел 6. Получение строки подключения из Key Vault
После того как вы сохранили строку подключения в Azure Key Vault, вы можете получить ее программно с помощью Azure SDK или инструментов командной строки. Вот пример того, как можно получить строку подключения с помощью Azure CLI:

az keyvault secret show --name cosmosdb-connection-string --vault-name my-key-vault --query "value" --output tsv

Раздел 7. Заключение
В этой статье мы рассмотрели процесс создания экземпляра Azure Cosmos DB и безопасного хранения его строки подключения в Azure Key Vault с помощью Terraform. Используя возможности Terraform по модели «инфраструктура как код» и безопасное хранилище Azure Key Vault, вы можете упростить настройку и управление экземплярами Cosmos DB, обеспечивая при этом безопасность конфиденциальной информации.