You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Terraform配置Azure Cognitive Search的RBAC API访问控制?

Azure Cognitive Search数据平面RBAC预览版的Terraform配置方案

1. 订阅级启用RBAC预览功能

首先需要通过Terraform启用订阅层面的Microsoft.Search/enableRBACPreview预览特性,代码如下:

resource "azurerm_feature" "search_rbac_preview" {
  name       = "Microsoft.Search/enableRBACPreview"
  scope      = "/subscriptions/your-subscription-id" # 替换为你的订阅ID
}

注意:该操作需要订阅级权限,且预览特性启用后无法回滚,建议先在测试环境验证。

2. 配置搜索服务的双认证模式

在azurerm_search_service资源中,通过auth_options块开启「同时支持密钥和RBAC」模式,对应门户操作的配置:

resource "azurerm_search_service" "target_search" {
  name                = "your-search-service-name" # 替换为你的搜索服务名称
  resource_group_name = azurerm_resource_group.your_rg.name # 替换为资源组名称
  location            = azurerm_resource_group.your_rg.location
  sku                 = "standard" # 根据实际需求选择SKU

  auth_options {
    api_key_enabled   = true # 保留API密钥认证
    aad_auth_enabled  = true # 启用RBAC认证
  }

  # 依赖预览特性启用完成,避免部署顺序问题
  depends_on = [azurerm_feature.search_rbac_preview]
}

3. 分配RBAC权限(可选)

配置完成后,可通过azurerm_role_assignment为主体分配搜索服务的内置角色,实现细粒度权限控制:

# 示例:分配「搜索数据读者」角色给指定用户/组
resource "azurerm_role_assignment" "search_data_reader" {
  scope                = azurerm_search_service.target_search.id
  role_definition_name = "Search Data Reader"
  principal_id         = "principal-id-of-user-or-group" # 替换为主体ID
}

版本要求

确保使用的AzureRM Terraform Provider版本不低于3.0.0,旧版本不支持aad_auth_enabled参数。

内容的提问来源于stack exchange,提问作者frictionlesspulley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 16:12:48