簡體   English   中英

如何使用 terraform 將來自 SQL 托管實例的連接字符串存儲在 Azure 密鑰保管庫中

[英]How to use terraform to store connection string from SQL Managed Instance in Azure Key vault

我正在使用 terraform 部署一個 SQL 托管實例,並且需要將它附帶的 4 個連接字符串存儲在 azure 密鑰保管庫中。 根據 SQL 托管實例的 terraform 文檔: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/mssql_managed_instance連接字符串不是導出的屬性,因此不能只執行 88633347並參考它。 我將如何識別這些連接字符串以將它們存儲在密鑰保管庫中?

如果 terraform 不可能,我願意接受 powershell/arm 解決方案

通常,您可以使用 terraform 將任何機密存儲在密鑰庫中,如下所示:

resource "azurerm_key_vault_secret" "example" {
  name         = "the-secret-name"
  value        = "the-secret-value"
  key_vault_id = var.keyvault_id
}

每個連接字符串都遵循特定的語法,因此我會根據名稱、管理員用戶和管理員密碼將它們組合在一起作為字符串,並將它們添加到密鑰庫中,類似於以下內容:

locals {
    username = "admin"
    password = "abc"
}

resource "azurerm_mssql_managed_instance" "example" {
  name                = "managedsqlinstance"
  resource_group_name = var.resource_group_name
  location            = var.location
  
  administrator_login          = local.username
  administrator_login_password = local.password
  ...
}
resource "azurerm_key_vault_secret" "example" {
  name         = "sql-connectionstring"
  value        = "Server=tcp:${azurerm_mssql_managed_instance.example.name}.database.windows.net,1433;Persist Security Info=False;User ID=${local.username};Password=${local.password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
  key_vault_id = var.keyvault_id
}

要查找連接字符串及其確切語法,您應該查看在 azure 門戶中創建的 sql 托管實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM