
mcp/aws-terraformAWS 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。




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务