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

如何使用Terraform创建Azure应用注册与客户端密钥并集成Azuresafe

完整Terraform代码示例:创建带订阅只读权限的Azure应用注册与服务主体

1. 变量定义(variables.tf)

variable "azuread_app_display_name" {
  type        = string
  description = Azure AD应用注册和服务主体的显示名称
}

variable "azure_subscription_id" {
  type        = string
  description = 要授予只读权限的Azure订阅ID
}

variable "client_secret_validity_days" {
  type        = number
  description = 客户端密钥的有效天数
  default     = 365
}

2. 核心资源配置(main.tf)

# 创建Azure AD应用注册
resource "azuread_application" "app" {
  display_name = var.azuread_app_display_name
}

# 创建对应服务主体
resource "azuread_service_principal" "app" {
  application_id = azuread_application.app.application_id
}

# 创建服务主体客户端密钥(客户端密码)
resource "azuread_service_principal_password" "app" {
  application_object_id = azuread_application.app.object_id
  end_date_relative    = "${var.client_secret_validity_days}d"
}

# 为服务主体分配订阅级Reader(只读)角色
resource "azurerm_role_assignment" "app_subscription_reader" {
  scope                = "/subscriptions/${var.azure_subscription_id}"
  role_definition_name = "Reader"
  principal_id         = azuread_service_principal.app.object_id
}

3. 输出配置(outputs.tf)

output "application_id" {
  description = "Azure AD应用注册的应用ID"
  value       = azuread_application.app.application_id
}

output "client_secret" {
  description = "服务主体的客户端密钥(敏感信息)"
  value       = azuread_service_principal_password.app.value
  sensitive   = true
}

output "service_principal_object_id" {
  description = "服务主体的对象ID"
  value       = azuread_service_principal.app.object_id
}

关键说明

  • 权限控制:通过azurerm_role_assignment绑定订阅级Reader角色,实现服务主体对订阅资源的只读访问;若需更细粒度权限,可替换role_definition_name为内置或自定义角色。
  • 密钥安全:通过end_date_relative设置密钥有效期,降低长期有效密钥的安全风险;输出时标记为sensitive,避免明文泄露。
  • 依赖关系:Terraform会自动处理资源间的依赖(如服务主体需等待应用注册创建完成),无需手动配置依赖项。

Azuresafe集成要点

将Terraform生成的服务主体凭据(应用ID、客户端密钥、租户ID)配置到Azuresafe中,确保该服务主体具备Azuresafe扫描所需的权限集合,可根据Azuresafe要求补充角色分配或API权限配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 10:42:45