自动化服务台概述
自动化服务台(IaC Service)是阿里云基于 Terraform 提供的全托管基础设施即代码(Infrastructure as Code)服务,支持在线完成云资源的自动化编排、已有资源纳管和持续运维,无需搭建和维护本地环境。
核心能力
全托管资源编排
自动化服务台以 Serverless 方式执行 Terraform 模板,执行过程不消耗计算资源。通过控制台或 OpenAPI 提交模板,可完成资源的创建、变更和销毁操作。
平台自动管理 Terraform 状态文件(terraform.tfstate),可避免状态文件丢失和冲突。执行策略支持手动和自动两种执行模式,以及手动、自动、版本发布、参数集变更四种触发方式,以满足不同安全等级和自动化程度的需求。
资源编排工作流
提交模板 → 创建任务 → 发起作业 → 预览变更(Plan) → 确认执行(Apply) → 资源就绪已有资源自动化导出
原生 Terraform 的 import 命令一次只能导入一个资源,且导入后需手动编写模板代码。当已有资源数量较多时,逐个导入的成本高。
自动化服务台提供批量导出能力。通过选择资源类型、地域并设置过滤条件,可将已有资源批量导出为 Terraform 模板和状态文件,用于后续的持续管理。
RAM Policy 自动化生成
执行 Terraform 模板需要特定的 RAM 权限。由于模板调用的底层 API 对用户不可见,手动推算权限策略较为困难且容易出错。权限过大会带来安全风险,权限过小则导致模板执行失败。
自动化服务台支持在线解析模板并自动生成 RAM Policy。通过 GitHub、GitLab 或 OSS 提供模板,可自动生成该模板所需的最小权限策略,以实现最小权限原则并快速完成 RAM 授权。
事前合规审计
自动化服务台与阿里云配置审计服务联动,在执行 Terraform 模板前进行合规预检。在配置审计控制台为规则启用“开启事前拦截”后,每次执行模板前,系统将自动调用配置审计服务评估资源新增或者变更的合规性。不合规的新增或者变更将被阻止,从而在发生前拦截合规风险。
偏差检测
通过控制台或 API 直接修改由 Terraform 管理的资源,可能导致实际状态偏离模板定义(即配置漂移)。偏差检测功能通过持续监控模板(期望状态)、状态文件(记录状态)和云上实际状态三者间的差异,及时发现配置漂移,确保基础设施状态与模板定义一致。
场景化测试
场景化测试通过周期性模拟执行 Terraform 模板,持续验证模板的可用性。该功能支持断言检查、定时触发、Terraform Provider 发布时自动触发等能力,用于在问题影响业务前发现并解决,为 Terraform Provider 回归测试和交付验证提供质量保障。
应用场景
Landing Zone:快速搭建云上初始环境
首次使用阿里云或新账号时,通常需要完成开通云产品、搭建 RAM 权限体系、配置网络环境等准备工作。当账号数量增加时,这些重复性工作的成本也随之增加。
通过自动化服务台的在线执行能力和预定义的 Landing Zone 模板,可快速完成初始化配置,搭建标准化的云上环境。
适用对象:首次使用阿里云或新开账号的用户、管理多账号的企业 IT 管理员。
GitOps 自动化流水线:代码变更驱动基础设施更新
将基础设施代码托管在 GitHub 或 GitLab,并在自动化服务台中进行配置。当代码变更时,系统将自动触发预览、确认和执行流程,实现基础设施变更的持续交付。
适用对象:具备 CI/CD 实践经验的 DevOps 团队。
环境克隆:从生产环境复制测试环境
预发环境与生产环境的不一致可能导致测试结果不可靠,而常驻的预发环境会产生额外资源成本。利用已有资源导出功能,可将生产环境的资源导出为模板,并基于该模板快速克隆出一致的测试环境,测试完成后可自动释放资源。
适用对象:需要管理多套环境的开发和测试团队。
账号迁移:跨账号资源自动化搬迁
将业务和资源从一个账号迁移至另一账号时,主要挑战在于如何在新账号中快速创建资源,并在旧账号中安全地清理资源。通过自动化服务台,可将源账号的资源导出为模板并共享给目标账号。目标账号基于该模板自动创建资源,源账号则可通过销毁功能自动清理资源。
适用对象:适用于企业合并、账号整合等跨账号迁移场景。
基本概念
自动化服务台的核心概念及其层级关系如下:
模板(Template)
└── 模板版本(Template Version)
└── 参数集(ParameterSet) ← 也可绑定到模板或任务
└── 任务(Task)
└── 作业(Job)概念 | 定义 | 类比 |
模板(Template Version) | 管理 Terraform 代码的逻辑单元,通过版本控制机制管理一个或多个 Terraform 模板文件。 | 代码仓库 |
模板版本(Template Version) | 模板在特定时刻的代码快照。当模板的来源地址或版本发生变更时,会自动创建新的模板版本。 | Git Commit |
参数集(ParameterSet) | 一组可复用的模板输入参数集合,可关联至模板、模板版本或任务。 | 环境变量配置文件 |
任务(Task) | 将模板版本、参数集等配置关联起来的执行单元。每个任务绑定一个特定的模板版本。 | CI/CD Pipeline |
作业(Job) | 任务的一次具体执行实例。作业负责实际调用 Terraform 命令(例如 Plan、Apply、Destroy)。 | Pipeline 的一次运行(Run) |
每个模板可以创建多个任务,同一模板的不同任务之间完全隔离,对应的状态文件也是独立的。
安全保障
自动化服务台采用容器级别的安全隔离机制,保障执行环境的安全性。每次 Terraform 模板的执行都在一个独立的、隔离的容器中进行,不同用户和不同任务的执行环境互不影响。
主要安全措施如下:
执行环境隔离:每次作业在独立容器中运行,执行完毕后容器自动销毁,不残留任何数据。
凭证安全:AK/SK 等敏感凭证加密传输和存储,执行过程中通过安全通道注入,不落盘。
网络隔离:执行容器的网络访问受到严格控制,仅允许访问必要的阿里云 API 端点。