islamelkadi/terraform-aws-bedrock
GitHub: islamelkadi/terraform-aws-bedrock
基于实战经验打造的生产级 Terraform 模块,用于在 AWS 上快速构建符合多框架合规要求的 Bedrock AI Agent 基础设施。
Stars: 0 | Forks: 0
# Terraform AWS Bedrock 模块
[](https://github.com/islamelkadi/terraform-aws-bedrock/actions/workflows/terraform-security.yaml)
[](https://github.com/islamelkadi/terraform-aws-bedrock/actions/workflows/terraform-lint.yaml)
[](https://github.com/islamelkadi/terraform-aws-bedrock/actions/workflows/terraform-docs.yaml)
用于 AWS Bedrock AI 服务的可复用 Terraform 模块,包括 agents、runtimes 和 code interpreters。
## 前置条件
本模块专为 macOS 设计。您的机器上必须已安装以下软件:
- Python 3 和 pip
- [Kiro](https://kiro.dev) 和 Kiro CLI
- [Homebrew](https://brew.sh)
要安装其余开发工具,请运行:
```
make bootstrap
```
这将安装/升级:tfenv、Terraform (通过 tfenv)、tflint、terraform-docs、checkov 和 pre-commit。
## 安全
### 安全控制
实施针对 FSBP、CIS、NIST 800-53/171 和 PCI DSS v4.0 的控制措施:
- Agent 角色的 IAM 最小权限原则
- KMS 静态和传输加密
- 用于 agent 调用审计追踪的 CloudWatch Logs
- 内容过滤 guardrails 支持
- 带审计理由的安全控制覆盖
### 基于环境的安全控制
安全控制通过 [terraform-aws-metadata](https://github.com/islamelkadi/terraform-aws-metadata?tab=readme-ov-file#security-profiles) 模块的安全配置文件根据环境自动应用:
| 控制项 | Dev | Staging | Prod |
|---------|-----|---------|------|
| KMS 加密 | 可选 | 必需 | 必需 |
| IAM 最小权限 | 强制执行 | 强制执行 | 强制执行 |
| CloudWatch Logs | 可选 | 必需 | 必需 |
| 内容过滤 guardrails | 可选 | 推荐 | 必需 |
有关安全配置文件以及控制如何随环境变化的完整详细信息,请参阅 [Security Profiles](https://github.com/islamelkadi/terraform-aws-metadata?tab=readme-ov-file#security-profiles) 文档。
### 安全扫描抑制
本模块抑制了某些 Checkov 安全检查,这些检查要么不适用于示例/演示代码,要么代表可选功能。以下检查在 `.checkov.yaml` 中被抑制:
**模块源版本控制 (CKV_TF_1, CKV_TF_2)**
- 被抑制是因为我们使用语义版本标签 (`?ref=v1.0.0`) 而不是提交哈希,以提高可维护性和可读性
- 语义版本控制是稳定版本有效且广泛接受的版本控制策略
**KMS IAM 策略 (CKV_AWS_111, CKV_AWS_356, CKV_AWS_109)**
- 在示例代码中被抑制,其中 KMS 模块出于演示目的使用灵活的 IAM 策略
- 生产部署应根据特定安全要求自定义 KMS 策略并应用最小权限原则
**Bedrock 和 VPC 可选功能**
- **VPC 公有子网 (CKV_AWS_130)**:公有子网旨在为需要互联网访问的资源自动分配公有 IP;这是有意为之
- **Bedrock Agent Guardrails (CKV_AWS_383)**:可选功能,会增加复杂性;根据内容过滤要求启用
- **安全组附加 (CKV2_AWS_5)**:示例代码中的安全组可能不会立即附加;用户会将它们附加到自己的资源上
- **默认安全组 (CKV2_AWS_12)**:默认安全组限制应在 VPC 模块级别管理,而不是在使用模块中
## 子模块
| 子模块 | 描述 |
|-----------|-------------|
| [agentcore](modules/agentcore/) | 带有 knowledge bases、action groups 和 aliases 的 Bedrock Agents |
| [agentcore-runtime](modules/agentcore-runtime/) | 基于 S3 代码部署的 AgentCore Runtime |
| [code-interpreter](modules/code-interpreter/) | SANDBOX 或 VPC 模式下的 Bedrock Code Interpreter |
## 模块结构
```
terraform-aws-bedrock/
├── modules/
│ ├── agentcore/
│ │ ├── example/
│ │ │ ├── main.tf
│ │ │ ├── variables.tf
│ │ │ ├── outputs.tf
│ │ │ └── params/input.tfvars
│ │ └── ...
│ ├── agentcore-runtime/
│ │ ├── example/
│ │ │ ├── main.tf
│ │ │ ├── variables.tf
│ │ │ ├── outputs.tf
│ │ │ └── params/input.tfvars
│ │ └── ...
│ └── code-interpreter/
│ ├── example/
│ │ ├── main.tf
│ │ ├── variables.tf
│ │ ├── outputs.tf
│ │ └── params/input.tfvars
│ └── ...
└── README.md
```
## 要求
| 名称 | 版本 |
|------|---------|
| terraform | >= 1.14.3 |
| aws | >= 6.34 |
## MCP 服务器
本模块包含两个在 `.kiro/settings/mcp.json` 中配置的 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) 服务器,用于 Kiro:
| 服务器 | 包 | 描述 |
|--------|---------|-------------|
| `aws-docs` | `awslabs.aws-documentation-mcp-server@latest` | 提供对 AWS 文档的访问,用于服务功能、API 参考和最佳实践的上下文查找。 |
| `terraform` | `awslabs.terraform-mcp-server@latest` | 支持直接从 IDE 执行 Terraform 操作(init、validate、plan、fmt、tflint),并为常见工作流提供自动批准的命令。 |
两个服务器都通过 `uvx` 运行,除了 [bootstrap](#prerequisites) 步骤外,不需要额外安装。
## 要求
无要求。
## Providers
无 providers。
## 模块
无模块。
## Resources
无 resources。
## Inputs
无 inputs。
## Outputs
无 outputs。
## 许可证
MIT 许可。有关完整详细信息,请参阅 [LICENSE](LICENSE)。
标签:AI 智能体, AWS, Bedrock, CIS, CloudWatch, DLL 劫持, DPI, EC2, ECS, IaC, IAM 最小权限, KMS 加密, NIST, PCI DSS, PE 加载器, Terraform, 人工智能安全, 代码解释器, 企业级, 合规性, 大语言模型, 特权提升, 生成式 AI, 自动化部署, 逆向工具