Boundary项目中的Azure动态主机目录配置指南

Boundary项目中的Azure动态主机目录配置指南

boundary Boundary enables identity-based access management for dynamic infrastructure. boundary 项目地址: https://gitcode.com/gh_mirrors/bo/boundary

什么是Boundary的Azure动态主机目录

Boundary是一款现代化的安全远程访问解决方案,它通过动态主机目录功能可以自动发现并管理Azure云环境中的资源。这种机制特别适合云环境中频繁变化的资源管理场景。

动态主机目录的核心优势在于自动化发现和注册Azure资源,无需手动添加或删除主机。Boundary通过Azure Resource Manager (ARM) API与Azure云平台集成,能够识别以下资源类型:

  • 标准Azure虚拟机
  • Azure虚拟机规模集(支持灵活和统一编排模式)

配置前的准备工作

在开始配置之前,您需要准备以下Azure凭证信息:

  1. Azure Active Directory应用的租户/目录ID
  2. 具有读取权限的订阅ID
  3. 服务主体的客户端/应用ID
  4. Azure生成的客户端密钥值

这些凭证将用于Boundary与Azure API的安全通信。

创建Azure动态主机目录

通过管理界面创建

  1. 登录Boundary管理控制台
  2. 选择目标组织和项目
  3. 导航至"主机目录"部分
  4. 点击"新建主机目录"
  5. 填写以下关键信息:
    • 类型选择"动态"
    • 提供商选择"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过滤器实现精确控制。

通过管理界面创建

  1. 导航至已创建的动态主机目录
  2. 选择"主机集"标签页
  3. 点击"新建"
  4. 为集合命名并提供描述信息

通过命令行创建

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'

注意当前版本存在以下限制:

  1. 使用标签过滤时,不能同时使用资源类型等其他过滤条件
  2. 过滤条件必须严格遵循ARM语法规范

最佳实践建议

  1. 安全凭证管理:建议将敏感凭证存储在安全的秘密管理系统中,通过环境变量引用
  2. 命名规范:为主机目录和集合建立清晰的命名规范,便于后期管理
  3. 标签策略:在Azure中为资源设计一致的标签策略,便于Boundary过滤
  4. 权限最小化:为Boundary使用的服务主体分配最小必要权限

通过以上配置,Boundary可以自动发现并管理您的Azure资源,实现安全、高效的远程访问控制。动态发现机制特别适合云环境中资源频繁变化的场景,大大减少了管理开销。

boundary Boundary enables identity-based access management for dynamic infrastructure. boundary 项目地址: https://gitcode.com/gh_mirrors/bo/boundary

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高崴功Victorious

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值