生成针对 AWS Landing Zone 的定制合规应用 IaC 脚本,使用 Amazon Bed

利用 Amazon Bedrock 生成定制合规的 AWS Landing Zone 应用 IaC 脚本

关键要点

云迁移对现代组织至关重要,而基础设施即代码IaC工具如 Terraform 和 AWS CloudFormation 是这一转型的核心。Amazon Bedrock 通过生成符合组织安全与合规标准的 Terraform 和 CloudFormation 脚本,帮助解决 IaC 学习曲线和合规性问题。AWS Landing Zone 提供标准化的方法来部署 AWS 资源,确保云基础设施从头开始符合 AWS 最佳实践。

迁移到云端是现代组织利用云资源灵活性和规模的必要步骤。工具如 Terraform 和 AWS CloudFormation 在此过程中至关重要,提供了以代码方式定义和管理复杂云环境的能力。然而,尽管基础设施即代码IaC有其好处,但学习成本和遵循组织及行业特定合规与安全标准的复杂性,可能会拖慢云采纳进程。组织通常通过投资广泛的培训项目或雇佣专业人员来应对这些挑战,而这往往会导致成本增加和迁移时间延长。

生成性人工智能AI与 Amazon Bedrock 直接应对这些挑战。Amazon Bedrock 是一项完全托管的服务,提供来自诸如 AI21 Labs、Anthropic、Cohere、Meta、Stability AI 和 Amazon 的顶尖 AI 公司的一系列高性能基础模型FMs,并通过单一 API 提供一整套功能,旨在安全、隐私和负责任的 AI 条件下构建生成性 AI 应用。Amazon Bedrock 使团队能够生成定制的 Terraform 和 CloudFormation 脚本,符合组织需求并无缝集成合规和安全最佳实践。传统上,学习 IaC 的云工程师需要手动查阅文档和最佳实践以编写合规的 IaC 脚本。而利用 Amazon Bedrock,团队可以输入高层次的架构描述,并利用生成性 AI 生成 Terraform 脚本的基本配置。这些生成的脚本专为满足组织独特需求而设计,同时符合行业安全和合规标准。这些脚本作为基础起点,需要进一步的细化和验证,以确保它们满足生产级标准。

这个解决方案不仅加速了迁移过程,还提供了标准化和安全的云基础设施。此外,它为初学的云工程师提供初步脚本草稿作为标准模板,以便他们进一步构建,促进其 IaC 学习旅程。

在您应对云迁移复杂性的过程中,建立一个结构化、安全和合规的环境是至关重要的。AWS Landing Zone 通过为 AWS 资源提供标准化的方法来解决这一需求,确保云基础设施从一开始就按照 AWS 最佳实践建立。通过 AWS Landing Zone,您消除了在安全配置、资源提供与账户管理方面的猜测工作。它特别适合那些希望在不妥协于治理或控制的情况下进行扩展的组织,提供了通向更强大且高效的云设置的清晰路径。

在本文中,我们将展示如何利用 Amazon Bedrock 生成适用于 AWS Landing Zone 的定制合规 IaC 脚本。

AWS Landing Zone 在云迁移背景下的架构

AWS Landing Zone 可以帮助您根据 AWS 最佳实践设置一个安全的多账户 AWS 环境。它提供了一个基础环境,帮助您开始多账户架构、自动化新账户的设置,并集中管理合规、安全及身份。以下是基于 Terraform 的定制 AWS Landing Zone 解决方案示例,其中每个应用程序都位于自己的 AWS 账户中。

高层次的工作流包括以下组件:

模块提供 不同的平台团队在数据库、容器、数据管理、网络和安全等多个领域开发和发布认证或定制模块。这些模块通过管道交付到组织为保持一致性和规范性而维护的 Terraform 私有模块注册表中。账户 vending machine 层 账户 vending machineAVM层使用 AWS Control Tower、AWS Account Factory for TerraformAFT或定制的登陆区解决方案来提供账户。在本文中,我们统称这些解决方案为 AVM 层。当应用所有者向 AVM 层提交请求时,它处理请求中的输入参数以提供目标 AWS 账户。此账户随后通过 AVM 定制化配备量身定制的基础设施组件,包括 AWS Control Tower 定制 或 AFT 定制。应用基础设施层 在这一层,应用团队将其基础设施组件部署到已提供的 AWS 账户中。这是通过在特定于应用程序的代码库中编写 Terraform 代码来完成的。Terraform 代码调用了平台团队之前发布到 Terraform 私有注册表中的模块。

利用生成性 AI 克服本地 IaC 迁移挑战

维护本地应用程序的团队通常在 Terraform 学习上存在曲线,这是一种在 AWS 环境中进行 IaC 的关键工具。这一技能差距可能成为云迁移努力中的一大障碍。而 Amazon Bedrock 的生成性 AI 能力在减轻这一挑战中发挥着重要作用。它能够自动生成应用基础设施层的 Terraform 代码,使得经验有限的团队能够有效迁移到 AWS。

Amazon Bedrock 从架构描述中生成 Terraform 代码。生成的代码基于组织最佳实践、安全和合规指南,进行定制和标准化。这一标准化的实现得益于使用高级提示与 Amazon Bedrock Knowledge Bases 结合,后者存储有关组织特定 Terraform 模块的信息。该解决方案使用检索增强生成RAG技术,丰富传递给 Amazon Bedrock 的输入提示,确保生成的 Terraform 配置和说明文档符合组织的 Terraform 最佳实践和指南。

以下图示说明了这一架构。

工作流程包括以下步骤:

过程以账户 vending 开始,应用所有者提交新 AWS 账户的请求。这唤起 AVM,后者处理请求参数以提供目标 AWS 账户。针对计划迁移的应用程序提供架构描述,并将其作为输入之一传递给 AVM 层。在账户被提供后,应用 AVM 定制化。这可能包括 AWS Control Tower 定制 或 AFT 定制,以便根据组织政策设置必要的基础设施组件和配置。与此同时,AVM 层调用一个 Lambda 函数来生成 Terraform 代码。该函数通过定制化提示丰富架构描述,并利用 RAG 进一步增强提示,以提供组织特定的编码指南。该知识库包括量身定制的最佳实践、安全防护措施和特定于组织的指南。可以参考示例 组织特定 Terraform 模块规范和指南,并上传到知识库。在部署之前,云工程师或自动代码审查系统将对初始的 Terraform 代码草稿进行详细审查,以确认其符合所有技术和合规标准。审查和更新后的 Terraform 脚本随后被用于在新提供的 AWS 账户中部署基础设施组件,设置应用所需的计算、存储和网络资源。

解决方案概览

AWS Landing Zone 部署使用 Lambda 函数根据架构输入生成 Terraform 脚本。此功能作为操作的核心,将这些输入转化为合规代码,使用 Amazon Bedrock 和 Amazon Bedrock Knowledge Bases。生成的结果随后储存到 GitHub 仓库中,对应移植的特定应用。以下部分详细介绍实施该解决方案的前提条件和具体步骤。

前提条件

您需要具备以下条件:

飞鸟加速器免费下载一个具有适当 AWS 身份和访问管理IAM权限的 AWS 账户,以便创建 Lambda 函数、Amazon 简单存储服务Amazon S3桶、IAM 角色和其他资源。一个 GitHub 账号,并拥有一个用于存储生成 Terraform 脚本的仓库。访问 Amazon Bedrock 模型的权限。有关更多信息,请参考 模型访问。

配置 Lambda 函数以生成自定义代码

此 Lambda 函数是自动化创建 AWS 服务的定制合规 Terraform 配置的重要组成部分。它将生成的配置直接提交到指定的 GitHub 仓库,以符合组织最佳实践。有关函数代码,请参阅以下 GitHub 仓库。有关创建 Lambda 函数的说明,请遵循 指导。

下图说明了该函数的工作流程。

工作流程包括以下步骤:

该函数由来自 AVM 层的事件触发,并包含架构描述。函数检索并使用来自知识库的 Terraform 模块定义。函数调用 Amazon Bedrock 模型两次,遵循推荐的 提示工程指导。函数应用 RAG 来丰富输入提示,以确保生成的代码符合组织最佳实践。首先,生成符合组织编码指南的 Terraform 配置,并包括来自知识库的 Terraform 模块详情。比如,提示可以是:“为 AWS 服务生成 Terraform 配置。通过使用 IAM 角色和最小权限遵循安全最佳实践。包括所有必要的参数,附带默认值。添加注释以说明整体架构及每个资源的目的。”其次,创建详细的 README 文件。例如:“根据 AWS 服务为 Terraform 配置生成详细的 README。包括有关安全改善、成本优化建议的节,并遵循 AWS 优良架构框架。此外,还需包括每个 AWS 服务的详细成本细分,包括每小时费率和总每日及月度成本。”它将生成的 Terraform 配置和 README 提交到 GitHub 仓库,以提供可追溯性和透明性。最后,它响应成功,包括提交的 GitHub 文件的 URL,或返回详细错误信息以便于故障排除。

配置 Amazon Bedrock Knowledge Bases

请按照以下步骤在 Amazon Bedrock 中设置知识库:

生成针对 AWS Landing Zone 的定制合规应用 IaC 脚本,使用 Amazon Bed在 Amazon Bedrock 控制台中,在导航窗格中选择 知识库。选择 创建知识库。输入一个清晰且描述性的名称,能反映知识库的目的,例如 AWS 帐户设置用于 Amazon Bedrock 知识库。分配一个预配置的 IAM 角色,具备所需权限。通常最好让 Amazon Bedrock 为您创建此角色,以确保其具备正确的权限。上传一个启用加密的 JSON 文件到 S3 存储桶,以确保安全。该文件应包含 AWS 服务和 Terraform 模块的结构化列表。有关 JSON 结构,请参阅来自 GitHub 仓库的以下 示例。选择默认的嵌入模型。允许 Amazon Bedrock 在 Amazon OpenSearch Service 中为您创建和管理向量存储。审查信息是否准确。特别注意 S3 存储桶 URI 和 IAM 角色详细信息。创建您的知识库。

完成这些组件的部署和配置后,当您的 AWS Landing Zone 解决方案调用 Lambda 函数时,将会生成以下文件:

Terraform 配置文件 该文件指定了基础设施的设置。全面的 README 文件 该文件记录了代码中嵌入的安全标准,确保这些标准与初始部分概述的安全实践一致。此外,此 README 还包括架构摘要、成本优化建议以及 Terraform 配置中所述资源的详细成本细分。

以下截图展示了 Terraform 配置文件的示例。

以下截图展示了 README 文件的示例。

清理

完成以下步骤以清理您的资源:

如果 Lambda 函数不再需要,请删除该函数。清空并删除用于 Terraform 状态存储的 S3 存储桶。从 GitHub 仓库中删除生成的 Terraform 脚本和 README 文件。如果知识库不再需要,删除知识库。

结论

Amazon Bedrock 的生成性 AI 能力不仅简化了生成 AWS 部署合规 Terraform 脚本的过程,还为初学者云工程师转型本地应用到 AWS 提供了关键学习帮助。这种方法加快了云迁移过程,有助于您遵循最佳实践。您还可以使用该解决方案在迁移后为日常运营增值,如持续基础设施和成本优化。尽管本文主要关注 Terraform,但这些原则同样可以增强您的 AWS CloudFormation 部署,为您的基础设施需求提供多功能的解决方案。

准备通过 Amazon Bedrock 的生成性 AI 简化您的云迁移过程吗?首先,请浏览 Amazon Bedrock 用户指南,了解它如何简化您组织的云旅程。如需进一步协助和专业建议,请考虑使用 AWS 专业服务,帮助您精简云迁移流程,并最大限度发挥 Amazon Bedrock 的优势。

解锁快速、安全和高效云采纳的潜力,立即开始并发现它如何增强您组织的云转型工作。

关于作者

Ebbey Thomas 专注于战略规划和开发定制的 AWS Landing Zone 资源,致力于通过生成性 AI 增强云基础设施自动化。作为 AWS 专业服务的一部分,Ebbey 的专业知识在架构解决方案方面至关重要,旨在简化云采纳,为 AWS 用户提供安全有效的操作框架。他因其创新的云挑战解决方案和推动云服务能力的发展而闻名。