
AWS Terraform MCP Server 镜像提供基于AWS的Terraform最佳实践、基础设施即代码(IaC)模式及安全合规检查能力,集成Checkov工具实现自动化安全扫描。该镜像旨在简化AWS环境下的Terraform工作流管理,支持Terraform/Terragrunt命令执行、安全合规扫描、AWS Provider文档查询及Terraform模块搜索等核心功能,适用于IaC开发、部署与安全审计场景。
MCP Server定义:基于模型上下文协议(Model Context Protocol)的服务端组件,提供标准化工具接口以支持AI应用与基础设施工具链的集成。了解更多
| 属性 | 详情 |
|---|---|
| Docker镜像 | mcp/aws-terraform |
| 作者 | awslabs |
| 代码仓库 | [***] |
| Dockerfile | [***] |
| 镜像构建方 | Docker Inc. |
| Docker Scout健康评分 | !Docker Scout Health Score |
| 签名验证命令 | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/aws-terraform --key [***] |
| 许可证 | Apache License 2.0 |
镜像内置7个核心工具,覆盖Terraform工作流、安全扫描、文档查询及模块搜索场景:
| 工具名称 | 功能描述 |
|---|---|
ExecuteTerraformCommand | 针对AWS账户执行Terraform工作流命令(init/plan/apply等)。 |
ExecuteTerragruntCommand | 针对AWS账户执行Terragrunt工作流命令,支持多模块管理与远程状态。 |
RunCheckovScan | 对Terraform代码执行Checkov安全扫描,检测合规风险与配置缺陷。 |
SearchAwsProviderDocs | 搜索AWS Provider文档,获取资源/数据源的属性与使用说明。 |
SearchAwsccProviderDocs | 搜索AWSCC Provider文档,获取基于Cloud Control API的资源信息。 |
SearchSpecificAwsIaModules | 搜索特定AWS-IA Terraform模块(如Bedrock、SageMaker等)的详情。 |
SearchUserProvidedModule | 分析用户提供的Terraform Registry模块,获取输入输出参数与使用方法。 |
ExecuteTerraformCommand和ExecuteTerragruntCommand执行初始化、计划、部署等操作,管理AWS资源的基础设施即代码生命周期。RunCheckovScan对Terraform代码进行静态安全扫描,确保符合AWS安全最佳实践,规避配置风险。SearchAwsProviderDocs或SearchAwsccProviderDocs快速检索AWS资源属性与使用示例,提升开发效率。SearchSpecificAwsIaModules和SearchUserProvidedModule查找***或第三方Terraform模块,评估其输入输出与适用场景。ExecuteTerraformCommand功能:针对AWS账户执行Terraform工作流命令(init、plan、validate、apply、destroy等)。
描述:在指定工作目录中运行Terraform命令,支持自定义变量与AWS区域配置,适用于单模块或独立Terraform项目的生命周期管理。
| 参数 | 类型 | 描述 |
|---|---|---|
command | string | 必选,待执行的Terraform命令(如init、plan、apply) |
working_directory | string | 必选,包含Terraform文件的工作目录路径 |
aws_region | string | 可选,AWS区域(如us-east-1),默认使用环境变量配置 |
strip_ansi | boolean | 可选,是否剥离输出中的ANSI颜色代码,默认false |
variables | string | 可选,传递给Terraform的变量(格式:key=value,key2=value2) |
返回值:包含命令输出与执行状态的TerraformExecutionResult对象。
ExecuteTerragruntCommand功能:针对AWS账户执行Terragrunt工作流命令,支持多模块管理与远程状态。
描述:扩展Terraform功能,支持远程状态管理、模块依赖解析及多模块批量操作(如run-all),适用于复杂项目的模块化IaC管理。
| 参数 | 类型 | 描述 |
|---|---|---|
command | string | 必选,待执行的Terragrunt命令(如init、plan、run-all apply) |
working_directory | string | 必选,包含Terragrunt文件的工作目录路径 |
aws_region | string | 可选,AWS区域,默认使用环境变量配置 |
exclude_dirs | string | 可选,多模块运行时排除的目录(格式:dir1,dir2) |
include_dirs | string | 可选,多模块运行时包含的目录(格式:dir1,dir2) |
run_all | boolean | 可选,是否对所有子目录模块执行命令,默认false |
strip_ansi | boolean | 可选,是否剥离ANSI颜色代码,默认false |
terragrunt_config | string | 可选,自定义Terragrunt配置文件路径(与run-all不兼容) |
variables | string | 可选,传递给Terraform的变量(格式:key=value) |
返回值:包含命令输出与执行状态的TerragruntExecutionResult对象。
RunCheckovScan功能:对Terraform代码执行Checkov安全扫描,检测合规风险。
描述:基于开源工具Checkov([***]
| 参数 | 类型 | 描述 |
|---|---|---|
working_directory | string | 必选,包含Terraform文件的扫描目录路径 |
check_ids | string | 可选,指定执行的检查ID(格式:CKV_AWS_1,CKV_AWS_2) |
framework | string | 可选,扫描框架(如terraform、cloudformation),默认terraform |
output_format | string | 可选,输出格式(json、cli、sarif等),默认json |
skip_check_ids | string | 可选,跳过的检查ID(格式:CKV_AWS_3,CKV_AWS_4) |
返回值:包含扫描结果与风险详情的CheckovScanResult对象。
SearchAwsProviderDocs功能:搜索AWS Provider文档,获取资源与数据源的详细说明。
描述:检索Terraform AWS Provider***文档,支持资源(如aws_s3_bucket)和数据源(如aws_ami)的查询,返回描述、示例代码、参数说明及属性列表。支持自动处理前缀(如搜索s3_bucket等效于aws_s3_bucket)。
| 参数 | 类型 | 描述 |
|---|---|---|
asset_name | string | 必选,资源/数据源名称(如aws_s3_bucket或s3_bucket) |
asset_type | string | 可选,文档类型:resource(资源)、data_source(数据源)或both(两者),默认resource |
返回值:匹配的文档条目列表,包含资源描述、***文档URL、示例代码、参数与属性说明。
SearchAwsccProviderDocs功能:搜索AWSCC Provider文档,获取基于Cloud Control API的资源信息。
描述:检索Terraform AWSCC Provider文档(基于AWS Cloud Control API),提供资源/数据源的标准化接口信息,支持自动处理前缀(如ec2_instance等效于awscc_ec2_instance)。
| 参数 | 类型 | 描述 |
|---|---|---|
asset_name | string | 必选,AWSCC资源/数据源名称(如awscc_s3_bucket或s3_bucket) |
asset_type | string | 可选,文档类型:resource、data_source或both,默认resource |
返回值:匹配的文档条目列表,包含资源描述、***文档URL、示例代码及 schema 信息(必填/可选属性、嵌套结构等)。
SearchSpecificAwsIaModules功能:搜索特定AWS-IA Terraform模块的详细信息。
描述:查询4个预定义的AWS-IA模块(Bedrock、OpenSearch Serverless、SageMaker Endpoint、Serverless Streamlit App),返回模块文档、变量定义、子模块及版本信息,支持基于功能或配置的关键词搜索。
aws-ia/bedrock/aws:Amazon Bedrock生成式AI应用模块aws-ia/opensearch-serverless/aws:OpenSearch Serverless向量搜索模块aws-ia/sagemaker-endpoint/aws:SageMaker端点部署模块aws-ia/serverless-streamlit-app/aws:无服务器Streamlit应用部署模块| 参数 | 类型 | 描述 |
|---|---|---|
query | string | 可选,搜索关键词(如bedrock、vector search),空值返回所有模块 |
返回值:匹配模块列表,包含名称、版本、README内容、变量说明、子模块信息及发布详情。
SearchUserProvidedModule功能:分析用户提供的Terraform Registry模块,获取输入输出与使用方法。
描述:通过模块URL(格式:namespace/name/provider,如hashicorp/consul/aws)解析Terraform Registry模块,返回输入变量、输出变量、README文档及版本信息,支持指定模块版本与变量分析。
| 参数 | 类型 | 描述 |
|---|---|---|
module_url | string | 必选,模块URL或标识符(如hashicorp/consul/aws) |
variables | string | 可选,分析时使用的变量(格式:key=value) |
version | string | 可选,模块版本(如3.14.0),默认最新版 |
返回值:包含模块详情的SearchUserProvidedModuleResult对象,包含输入输出参数、文档内容及版本信息。
通过Docker命令直接运行镜像,执行工具命令(以下为基础示例,具体参数需根据工具需求调整):
bashdocker run -i --rm \ -v $(pwd):/workdir \ # 挂载本地工作目录(含Terraform代码) -e AWS_REGION=us-east-1 \ # 配置AWS区域 -e AWS_ACCESS_KEY_ID=your-access-key \ # 配置AWS凭证(生产环境建议使用IAM角色) -e AWS_SECRET_ACCESS_KEY=your-secret-key \ mcp/aws-terraform \ ExecuteTerraformCommand \ --command "plan" \ --working_directory "/workdir" \ --variables "instance_type=t3.micro,environment=dev"
在支持Model Context Protocol的环境中,通过以下配置集成该镜像(JSON格式):
json{ "mcpServers": { "aws-terraform": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "${workdir}:/workdir", # 动态挂载工作目录 "mcp/aws-terraform" ] } } }
bash# 在当前目录执行Terraform Plan,指定变量与区域 docker run -i --rm -v $(pwd):/tf mcp/aws-terraform ExecuteTerraformCommand \ --command "plan" \ --working_directory "/tf" \ --aws_region "us-west-2" \ --variables "vpc_id=vpc-***,subnet_ids=subnet-67890"
bash# 扫描当前目录的Terraform代码,输出JSON格式结果 docker run -i --rm -v $(pwd):/tf mcp/aws-terraform RunCheckovScan \ --working_directory "/tf" \ --output_format "json" \ --skip_check_ids "CKV_AWS_21,CKV_AWS_53" # 跳过特定检查
bash# 搜索AWS S3 Bucket资源文档 docker run -i --rm mcp/aws-terraform SearchAwsProviderDocs \ --asset_name "aws_s3_bucket" \ --asset_type "resource"
本镜像基于Apache License 2.0许可协议开源,详见LICENSE。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429