首页
/ Terraform AWS Provider 中 Workspaces Directory 对 Active Directory 配置的支持

Terraform AWS Provider 中 Workspaces Directory 对 Active Directory 配置的支持

2025-05-22 14:50:12作者:尤辰城Agatha

在 AWS 工作空间(WorkSpaces)服务中,当使用 POOLS 类型的工作空间目录时,管理员需要配置 Active Directory 相关的参数以便工作空间实例能够正确加入域。最近,Terraform AWS Provider 在 v5.98.0 版本中新增了对这一功能的支持,使得用户可以通过 IaC 方式完整管理工作空间目录的 AD 配置。

背景与需求

AWS WorkSpaces 服务允许企业创建基于云的虚拟桌面环境。对于 POOLS 类型的工作空间,系统需要将虚拟机实例自动加入到指定的 Active Directory 域中。这一过程需要提供域名称(DomainName)和服务账户密钥(ServiceAccountSecretArn)等关键信息。

在之前的 Terraform AWS Provider 版本中,虽然 AWS API 和 CLI 已经支持通过 active-directory-config 参数来配置这些信息,但 Terraform 资源 aws_workspaces_directory 却缺乏相应的配置选项。这导致用户在使用 Terraform 管理 POOLS 类型工作空间时,不得不通过 CLI 或其他方式手动完成 AD 配置,破坏了基础设施即代码的完整性和自动化流程。

技术实现细节

新版本中,aws_workspaces_directory 资源新增了 active_directory_config 配置块,专门用于 POOLS 类型工作空间目录的 AD 配置。该配置块包含两个关键参数:

  1. domain_name:指定工作空间实例需要加入的 Active Directory 域的全限定域名(FQDN)
  2. service_account_secret_arn:指向 AWS Secrets Manager 中存储的域加入服务账户凭据的 ARN

配置示例

以下是一个完整的 Terraform 配置示例,展示了如何创建 POOLS 类型的工作空间目录并配置 AD 参数:

resource "aws_workspaces_directory" "pool_directory" {
  directory_id = "d-9EXAMPLE"
  subnet_ids   = ["subnet-EXAMPLE1", "subnet-EXAMPLE2"]

  active_directory_config {
    domain_name                = "corp.example.com"
    service_account_secret_arn = "arn:aws:secretsmanager:region:account-id:secret:secret-name"
  }

  workspace_creation_properties {
    default_ou = "OU=WorkSpacesPools,DC=corp,DC=example,DC=com"
  }
}

最佳实践建议

  1. 密钥管理:确保服务账户密钥已预先存储在 Secrets Manager 中,并且具有适当的权限策略
  2. 组织单元规划:提前规划好工作空间实例在 AD 中的组织单元结构
  3. 网络配置:确认子网配置允许工作空间实例与域控制器通信
  4. 测试验证:首次部署后,验证实例是否成功加入指定域

版本升级注意事项

对于从旧版本升级的用户,需要注意:

  1. 升级到 v5.98.0 或更高版本后才能使用此功能
  2. 现有资源可能需要重新应用配置以添加 AD 参数
  3. 建议在非生产环境先行测试

这一功能的加入完善了 Terraform 对 AWS WorkSpaces 服务的支持,使得企业能够更完整地通过代码定义和管理其虚拟桌面基础设施,进一步提升了自动化水平和配置一致性。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
178
263
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
868
514
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
130
183
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
288
323
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
373
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
600
58
GitNextGitNext
基于可以运行在OpenHarmony的git,提供git客户端操作能力
ArkTS
10
3