如何使用Terraform在Azure AD中配置紧急访问账户?
使用Terraform配置Azure AD紧急访问账户
步骤1:配置Azure AD Terraform提供商
首先要引入Azure AD的Terraform提供商,指定版本并配置认证方式(本地开发用az login即可,生产建议用服务主体):
terraform { required_providers { azuread = { source = "hashicorp/azuread" version = "~> 2.41.0" } } } provider "azuread" { # 本地开发可直接用az login完成认证 # 生产环境推荐配置服务主体参数: # client_id = var.azuread_client_id # client_secret = var.azuread_client_secret # tenant_id = var.azuread_tenant_id }
步骤2:创建紧急访问用户账户
通过azuread_user资源创建专用的紧急访问账户,注意设置强密码且禁用首次登录改密码的强制要求:
resource "azuread_user" "emergency_access" { display_name = "Emergency Global Admin" user_principal_name = "emergency@yourdomain.com" password = var.emergency_account_password account_enabled = true password_profile { force_change_password_next_login = false } }
步骤3:分配全局管理员角色
先通过数据源获取全局管理员角色的ID,再将紧急账户绑定到该角色:
data "azuread_directory_role" "global_admin" { display_name = "Global Administrator" } resource "azuread_directory_role_assignment" "emergency_global_admin" { role_id = data.azuread_directory_role.global_admin.id principal_object_id = azuread_user.emergency_access.object_id }
步骤4:变量配置(必做,避免硬编码敏感信息)
定义敏感变量存储密码,不要直接写在代码里:
variable "emergency_account_password" { type = string sensitive = true description = "强密码(至少12位,包含大小写、数字、特殊字符)" }
关键注意事项
- 密码必须符合Azure AD强密码标准,建议通过Terraform环境变量、密钥管理工具动态传入,绝对禁止硬编码
- 紧急访问账户要使用独立的邮箱地址,不要关联到普通员工的个人邮箱
- 执行Terraform的账户必须拥有特权角色管理员或全局管理员权限
- 部署完成后务必测试:用该账户登录Azure门户,验证全局管理员权限是否生效
内容的提问来源于stack exchange,提问作者One Developer
相关产品推荐
相关产品推荐

