我们正在使用 Terraform 来部署基础设施。我们的环境中有着陆区。我已经部署了 Azure SQL DB PaaS,并为专用终结点启用了它。我想在 SQL Server 上启用审核,以便它可以将审核日志发送到启用了专用端点的存储帐户 存储帐户和 SQL 的专用端点都在同一个子网中 我的 SQL 的 TF 代码下面提供服务器
resource "azurerm_mssql_server" "primary" {
resource_group_name = module.resourcegroup.resource_group.name
location = module.resourcegroup.resource_group.location
name = module.names-mssql-server.location.mssql_server.name_unique
tags = module.resourcegroup.resource_group.tags
administrator_login = local.mssql_admin_username
administrator_login_password = random_password.mssql_primary.result
public_network_access_enabled = false
version = "12.0"
azuread_administrator {
login_username = data.azuread_group.sqladmin.name
object_id = data.azuread_group.sqladmin.id
}
identity {
type = "SystemAssigned"
}
extended_auditing_policy {
storage_endpoint = module.storageaccount.storage_account.self.primary_blob_endpoint
storage_account_access_key = module.storageaccount.storage_account.self.primary_access_key
storage_account_access_key_is_secondary = false
retention_in_days = 30
}
}
我在应用 Terraform 时不断遇到的错误是:
│ Error: waiting for creation of Blob Auditing Policies Server: (Name "sql-primary-predev-cus-cb17" / Resource Group "rg-xxxx-predev-cus-409d"): Code="BlobAuditingInsufficientStorageAccountPermissions" Message="Insufficient read or write permissions on storage account 'stqb2sal908f'. "
│
│ with azurerm_mssql_server.primary,
│ on resources.sql.tf line 39, in resource "azurerm_mssql_server" "primary":
│ 39: resource "azurerm_mssql_server" "primary
” 我什至将 SQL Server 的“存储帐户贡献者”角色赋予了存储帐户,并带有以下块:
resource "azurerm_role_assignment" "regular-storage-account-sql-role" {
scope = module.storageaccount.storage_account.self.id
role_definition_name = "Storage Account Contributor"
principal_id = azurerm_mssql_server.primary.identity.0.principal_id
}
我注意到的另一件事是,如果我通过门户访问门户启用审核,当我尝试选择存储帐户时,它不会向我显示存储帐户。我们的专用端点的专用 DNS 区域位于 Hub VNET 和资源组中,作为登陆区域架构的一部分。
我的 SQL Server 网络设置显示在屏幕截图中。