

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用构建企业蓝图工厂 AWS Service Catalog
<a name="introduction"></a>

*Amazon Web Services*（[贡献者](contributors.md)）

*2024 年 10 月*（[文档历史记录](doc-history.md)）

## 业务概述
<a name="business-overview"></a>

许多企业在云端扩展工作负载时都面临挑战。这些组织挑战包括：
+ 创建基础设施即代码 (IaC) 模板，这些模板可以大规模重复用于多个模板 AWS 服务
+ 验证 IaC 模板是否遵循安全最佳实践
+ 减少无差别或重复的任务，这些任务会显著降低开发人员的工作效率并延长上市时间
+ 建立 IaC 模板的一致性
+ 降低资源利用率，尤其是安全团队的资源利用率，以避免可重复的人工审查

创建遵循安全最佳实践的 IaC 模板需要您建立防护栏和安全控制。传统上，云平台团队或安全团队会手动审查每个 IaC 模板中的代码。或者，开发人员可以在非生产环境中部署 IaC 模板，并依靠侦探控制来发现任何安全问题。这两种方法都需要迭代反馈周期，减慢开发过程并增加手动工程工作量。

因此，许多企业希望简化 IaC 模板的创建、验证和发布。他们还想要一种在发布后管理和管理这些模板的方法。适当的管理和治理机制可帮助您更新模板并确保开发人员可以访问最新版本。这些机制还可以帮助您监督和审计整个组织中模板的使用情况。

## 解决方案概述
<a name="solution-overview"></a>

本指南介绍了企业蓝图工厂解决方案，该解决方案可帮助您简化整个组织中基础设施即代码 (IaC) 模板的创建、验证、发布、分发和使用。这些 IaC 模板也称为*蓝图*。此解决方案支持作为 AWS CloudFormation [模板](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-overview.html#cfn-concepts-templates)或 AWS Cloud Development Kit (AWS CDK) [构造](https://docs.aws.amazon.com/cdk/v2/guide/constructs.html)的蓝图文件。

企业蓝图工厂使用配置驱动的方法来自动共享、发布和分发蓝图。开发人员将蓝图添加到产品存储库中，然后将蓝图信息添加到配置文件中。这会自动启动持续集成和持续交付 (CI/CD) 发布管道。此管道验证蓝图是否遵循 AWS 安全最佳实践。这有助于确保贵组织的蓝图在设计上是安全的。*设计安全*是一种系统工程方法，它在整个开发过程中都考虑了安全性。

企业蓝图工厂将蓝图作为*产品*发布。[AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html)通过使用 Service Catalog，最终用户可以快速部署您提供的经批准的蓝图。Service Catalog 还旨在提供管理和治理功能，以便管理员可以定义精细的访问控制并监督蓝图的使用情况。

## 目标受众
<a name="intended-audience"></a>

[企业蓝图工厂架构](architecture.md)部分可帮助架构师、经理和技术主管评估此解决方案，并确定它是否适合他们的组织。本节介绍什么是蓝图、如何使用 Service Catalog 来管理蓝图以及企业蓝图工厂的架构。

“[设置企业蓝图工厂](setup.md)” 部分可帮助 DevOps 工程师在您的 AWS 环境中部署企业蓝图工厂。它包括设置所需存储库和配置管道的详细说明。

[使用企业蓝图工厂](using-factory.md)部分可帮助蓝图开发者在您的环境中创建、更新或删除蓝图。它提供了在蓝图的整个生命周期中对其进行管理的详细说明。要创建蓝图，开发人员必须了解如何创建 IaC 模板，例如 CloudFormation 模板。本指南不包括有关如何定义这些蓝图的信息或说明。

## 目标
<a name="objectives"></a>

企业蓝图工厂可帮助您的组织实现以下好处：
+ 验证蓝图是否遵循 AWS 安全最佳实践
+ 实现蓝图发布和验证流程的自动化和标准化
+ 通过减少开发人员必须执行的手动任务数量来提高他们的工作效率
+ 使用精细的访问控制来确定最终用户可以访问哪些蓝图
+ 使用版本控制来管理蓝图更新并与最终用户共享
+ 帮助最终用户自助发现和发布蓝图
+ 监督和审计整个组织内蓝图的使用情况