Boundary项目中的Azure动态主机目录配置指南
什么是Boundary的Azure动态主机目录
Boundary是一款现代化的安全远程访问解决方案,它通过动态主机目录功能可以自动发现并管理Azure云环境中的资源。这种机制特别适合云环境中频繁变化的资源管理场景。
动态主机目录的核心优势在于自动化发现和注册Azure资源,无需手动添加或删除主机。Boundary通过Azure Resource Manager (ARM) API与Azure云平台集成,能够识别以下资源类型:
- 标准Azure虚拟机
- Azure虚拟机规模集(支持灵活和统一编排模式)
配置前的准备工作
在开始配置之前,您需要准备以下Azure凭证信息:
- Azure Active Directory应用的租户/目录ID
- 具有读取权限的订阅ID
- 服务主体的客户端/应用ID
- Azure生成的客户端密钥值
这些凭证将用于Boundary与Azure API的安全通信。
创建Azure动态主机目录
通过管理界面创建
- 登录Boundary管理控制台
- 选择目标组织和项目
- 导航至"主机目录"部分
- 点击"新建主机目录"
- 填写以下关键信息:
- 类型选择"动态"
- 提供商选择"Azure"
- 输入Azure认证所需的四个关键凭证
- 注意:当前版本中,Azure主机目录不支持凭证轮换功能
通过命令行创建
使用Boundary CLI工具可以更高效地创建主机目录,特别适合自动化部署场景:
boundary host-catalogs create plugin \
-scope-id $PROJECT_ID \
-plugin-name azure \
-attr disable_credential_rotation=true \
-attr tenant_id=env://ARM_TENANT_ID \
-attr subscription_id=env://ARM_SUBSCRIPTION_ID \
-attr client_id=env://ARM_CLIENT_ID \
-secret secret_value=env://ARM_CLIENT_SECRET
通过Terraform创建
对于基础设施即代码(IaC)实践,可以使用Terraform配置:
resource "boundary_host_catalog_plugin" "azure_host_catalog" {
name = "Azure Catalog"
description = "Azure Host Catalog"
scope_id = boundary_scope.project.id
plugin_name = "azure"
attributes_json = jsonencode({
"tenant_id" = "ARM_TENANT_ID",
"subscription_id" = "ARM_SUBSCRIPTION_ID"
"client_id" = "ARM_CLIENT_ID"
"disable_credential_rotation" = true })
secrets_json = jsonencode({
"secret_value" = "ARM_CLIENT_SECRET"})
}
创建主机集(Host Set)
主机集用于定义哪些Azure资源应该被包含在Boundary的管理范围内,通过ARM过滤器实现精确控制。
通过管理界面创建
- 导航至已创建的动态主机目录
- 选择"主机集"标签页
- 点击"新建"
- 为集合命名并提供描述信息
通过命令行创建
boundary host-sets create plugin \
-name database \
-host-catalog-id $HOST_CATALOG_ID \
-attr filter="tagName eq 'service-type' and tagValue eq 'database'"
通过Terraform创建
resource "boundary_host_set_plugin" "azure_host_set" {
name = "Azure Set"
description = "Azure Host Set"
host_catalog_id = boundary_scope.azure_host_catalog.id
attributes_json = jsonencode({
"filter" = "tagName eq 'service-type' and tagValue eq 'database'" })
}
过滤器语法详解
Boundary使用ARM过滤语法来精确选择Azure资源,当前版本主要支持基于标签的过滤:
- 简单标签名匹配:
tagName eq 'application'
- 组合条件匹配:
tagName eq 'application' and tagValue eq 'app2'
注意当前版本存在以下限制:
- 使用标签过滤时,不能同时使用资源类型等其他过滤条件
- 过滤条件必须严格遵循ARM语法规范
最佳实践建议
- 安全凭证管理:建议将敏感凭证存储在安全的秘密管理系统中,通过环境变量引用
- 命名规范:为主机目录和集合建立清晰的命名规范,便于后期管理
- 标签策略:在Azure中为资源设计一致的标签策略,便于Boundary过滤
- 权限最小化:为Boundary使用的服务主体分配最小必要权限
通过以上配置,Boundary可以自动发现并管理您的Azure资源,实现安全、高效的远程访问控制。动态发现机制特别适合云环境中资源频繁变化的场景,大大减少了管理开销。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考