Azure Cosmos DB — это глобально распределенная многомодельная служба базы данных, предоставляемая Microsoft Azure. Он предлагает высокую масштабируемость, низкую задержку и автоматическое индексирование, что делает его идеальным выбором для современных приложений. В этой статье мы рассмотрим процесс создания экземпляра Azure Cosmos DB и безопасного хранения его строки подключения в Azure Key Vault с помощью Terraform.
Содержание:
- Введение в Azure Cosmos DB
- Настройка Azure Cosmos DB с помощью Terraform
- Создание хранилища ключей Azure
- Настройка Terraform для интеграции хранилища ключей
- Хранение строки подключения Cosmos DB в Key Vault
- Получение строки подключения из Key Vault
- Заключение
Раздел 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, обеспечивая при этом безопасность конфиденциальной информации.