Terraform Azure 服务器访问问题

Terraform Azure Server Access Issue

在 terraform Azure 服务器中,我已将 ips 列入白名单,但除了管理员登录外无法访问服务器。是否需要额外的 configuration/role 来允许我缺少的活动目录访问权限?

脚本:

# Create Server using keyvault secrets for user/pw
resource "azurerm_sql_server" "sqlserver" {
  name                         = "sql-${var.suffix}"
  resource_group_name          = var.resource_group_name
  location                     = var.location
  version                      = "12.0"
  administrator_login          = data.azurerm_key_vault_secret.sqlserverusr.value
  administrator_login_password = data.azurerm_key_vault_secret.sqlserverpw.value

}



# Create SQL Server firewall rule for Azure resouces access
resource "azurerm_sql_firewall_rule" "azureservicefirewall" {
  name                = "allow-azure-service"
  resource_group_name = var.resource_group_name
  server_name         = azurerm_sql_server.sqlserver.name
  start_ip_address    = "0.0.0.0"
  end_ip_address      = "0.0.0.0"
}

当您在 SQL 服务器防火墙中设置 start_ip_address = "0.0.0.0"end_ip_address = "0.0.0.0" 时,实际上它设置了 允许 Azure 服务和资源访问此服务器Yes。这意味着您的服务器接受来自 Azure 边界内任何子网的通信,即源自被识别为在为 Azure 数据中心定义的范围内的 IP 地址之一。

如果您想从 Internet 访问您的 SQL 服务器,您需要添加客户端的 public IP 地址。然后这样改:

  start_ip_address    = "73.118.x.x"
  end_ip_address      = "73.118.x.x"

如果要将用户或组设置为 Azure SQL 服务器的 AD 管理员,可以使用 azurerm_sql_active_directory_administrator

data "azurerm_client_config" "current" {}

resource "azurerm_sql_active_directory_administrator" "example" {
  server_name         = azurerm_sql_server.sqlserver.name
  resource_group_name = azurerm_resource_group.example.name
  login               = "sqladmin"
  tenant_id           = data.azurerm_client_config.current.tenant_id
  object_id           = data.azurerm_client_config.current.object_id
}

无论您使用何种身份验证方法,您仍然需要确保网络连接成功。