

这是 AWS CDK v2 开发者指南。旧版 CDK v1 于 2022 年 6 月 1 日进入维护阶段，并于 2023 年 6 月 1 日终止支持。

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

# AWS Cloud Development Kit (AWS CDK) 的安全性
<a name="security"></a>

云安全性一直是 Amazon Web Services（AWS）的重中之重。作为 AWS 客户，您可以受益于专为满足大多数安全敏感型组织的要求而构建的数据中心和网络架构。安全是双方共同承担 AWS 的责任。[责任共担模式](https://aws.amazon.com/compliance/shared-responsibility-model/)将其描述为云的安全性和云中的安全性。

 **云安全** — AWS 负责保护运行 AWS 云中提供的所有服务的基础架构，并为您提供可以安全使用的服务。我们的安全责任是重中之重 AWS，作为[AWS 合规计划](https://aws.amazon.com/compliance/programs/)的一部分，第三方审计师定期测试和验证我们安全的有效性。

 **云端安全** — 您的责任由您使用的 AWS 服务以及其他因素决定，包括数据的敏感性、组织的要求以及适用的法律和法规。

 AWS CDK 通过其支持的特定亚马逊 Web Services (AWS) 服务遵循[分担责任模式](https://aws.amazon.com/compliance/shared-responsibility-model/)。有关 AWS 服务安全信息，请参阅[AWS 服务安全文档页面](https://docs.aws.amazon.com/security/?id=docs_gateway#aws-security)和合规[计划合 AWS 规工作范围内的AWS 服务](https://aws.amazon.com/compliance/services-in-scope/)。

# AWS Cloud Development Kit (AWS CDK) 的身份和访问管理
<a name="security-iam"></a>

 AWS 身份和访问管理 (IAM) Access Managemen AWS t 是一项可帮助管理员安全地控制对资源的访问 AWS 的服务。IAM 管理员控制谁可以*进行身份验证*（登录）和*授权*（拥有权限）使用 AWS 资源。IAM 是一项无需额外付费即可使用的 AWS 服务。

## 受众
<a name="security-iam-audience"></a>

您使用 AWS 身份和访问管理 (IAM) 的方式会有所不同，具体取决于您所做的工作。 AWS

 **服务用户**-如果您使用 AWS 服务完成工作，则管理员会为您提供所需的凭证和权限。当你使用更多 AWS 功能来完成工作时，你可能需要额外的权限。了解如何管理访问权限有助于您向管理员请求适合的权限。

 **服务管理员**-如果您负责公司的 AWS 资源，则可能拥有对 AWS 资源的完全访问权限。你的工作是确定你的 AWS 服务用户应该访问哪些服务和资源。然后，您必须向 IAM 管理员提交请求以更改服务用户的权限。请查看该页面上的信息以了解 IAM 的基本概念。

 **IAM 管理员** — 如果您是 IAM 管理员，则可能需要详细了解如何编写策略来管理对 AWS 服务的访问权限。

## 使用身份进行身份验证
<a name="security-iam-authentication"></a>

身份验证是您 AWS 使用身份凭证登录的方式。您必须以 AWS 账户根用户身份、IAM 用户*身份或通过担任 IAM 角色进行身份验证*（登录 AWS）。

您可以使用通过身份源提供的凭据以 AWS 联合身份登录。 AWS IAM 身份中心（IAM 身份中心）用户、贵公司的单点登录身份验证以及您的 Google 或 Facebook 凭证就是联合身份的示例。当您以联合身份登录时，您的管理员以前使用 IAM 角色设置了身份联合验证。当你使用联合访问 AWS 时，你就是在间接扮演一个角色。

根据您的用户类型，您可以登录 AWS 管理控制台或 AWS 访问门户。有关登录的更多信息 AWS，请参阅《[登录*用户指南》中的如何 AWS 登录*您的 AWS 账户](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)。

要 AWS 以编程方式访问，请 AWS 提供 AWS CDK、软件开发套件 (SDKs) 和命令行接口 (CLI)，以便使用您的凭据对请求进行加密签名。如果您不使用 AWS 工具，则必须自己签署请求。有关使用推荐的方法自行签署请求的更多信息，请参阅《* AWS 一般参考*》中的 “[签名版本 4 签名流程](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)”。

无论使用何种身份验证方法，您都可能需要提供其他安全信息。例如， AWS 建议您使用多重身份验证 (MFA) 来提高账户的安全性。[https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-mfa.html](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-mfa.html)[验证和 IAM 用户指南 AWS*中的使用多重身份验证 (MFA)*](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)。

### AWS 账户 root 用户
<a name="security-iam-authentication-rootuser"></a>

创建 AWS 账户时，您首先需要一个登录身份，该身份可以完全访问该账户中的所有 AWS 服务和资源。此身份称为 AWS 账户 *root 用户*，使用您创建账户时使用的电子邮件地址和密码登录即可访问该身份。强烈建议您不要使用根用户执行日常任务。保护好根用户凭证，并使用这些凭证来执行仅根用户可以执行的任务。有关要求您以根用户身份登录的任务的完整列表，请参阅 *IAM 用户指南*中的[需要根用户凭证的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

### 联合身份
<a name="security-iam-authentication-federated"></a>

作为最佳实践，要求人类用户（包括需要管理员访问权限的用户）使用与身份提供商的联合身份验证通过临时证书访问 AWS 服务。

*联合身份是指*来自您的企业用户目录、Web 身份提供商、Direc AWS tory Service、Identity Center 目录的用户，或者任何使用通过身份源提供的凭据访问 AWS 服务的用户。当联合身份访问 AWS 账户时，他们扮演角色，角色提供临时证书。

对于集中访问管理，我们建议您使用 AWS IAM 身份中心。您可以在 IAM Identity Center 中创建用户和群组，也可以连接并同步到您自己的身份源中的一组用户和群组，以便在您的所有 AWS 账户和应用程序中使用。有关 IAM 身份中心的信息，请参阅[什么是 IAM 身份中心？](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) 在 * AWS IAM 身份中心用户指南*中。

### IAM 用户和群组
<a name="security-iam-authentication-iamuser"></a>

I *[AM 用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*是您 AWS 账户中对个人或应用程序具有特定权限的身份。在可能的情况下，我们建议使用临时凭证，而不是创建具有长期凭证（如密码和访问密钥）的 IAM 用户。但是，如果您有一些特定的使用案例需要长期凭证以及 IAM 用户，建议您轮换访问密钥。有关更多信息，请参阅《IAM 用户指南》**中的[对于需要长期凭证的使用案例，应在需要时更新访问密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#rotate-credentials)。

[IAM 组](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)是一个指定一组 IAM 用户的身份。您不能使用组的身份登录。您可以使用组来一次性为多个用户指定权限。如果有大量用户，使用组可以更轻松地管理用户权限。例如，您可以拥有一个名为的群组，*IAMAdmins*并向该群组授予管理 IAM 资源的权限。

用户与角色不同。用户唯一地与某个人员或应用程序关联，而角色旨在让需要它的任何人代入。用户具有永久的长期凭证，而角色提供临时凭证。要了解更多信息，请参阅《IAM 用户指南》**中的 [IAM 用户的使用案例](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)。

### IAM 角色
<a name="security-iam-authentication-iamrole"></a>

I *[AM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*是您的 AWS 账户中具有特定权限的身份。它类似于 IAM 用户，但与特定人员没有关联。您可以通过[切换角色在 AWS 管理控制台中临时担任 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)。您可以通过调用 AWS CLI 或 AWS API 操作或使用自定义 URL 来代入角色。有关使用角色的方法的更多信息，请参阅《IAM 用户指南》中的[使用 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)**。

具有临时凭证的 IAM 角色在以下情况下很有用：
+  **联合用户访问**：要向联合身份分配权限，请创建角色并为角色定义权限。当联合身份进行身份验证时，该身份将与角色相关联并被授予由此角色定义的权限。有关用于联合身份验证的角色的信息，请参阅《IAM 用户指南》**中的[针对第三方身份提供者创建角色（联合身份验证）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html)。如果您使用 IAM Identity Center，则需要配置权限集。为控制您的身份在进行身份验证后可以访问的内容，IAM Identity Center 将权限集与 IAM 中的角色相关联。有关权限集的信息，请参阅 * AWS IAM Identity Center 用户指南*中的[权限集](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html)。
+  **临时 IAM 用户权限**：IAM 用户可代入 IAM 用户或角色，以暂时获得针对特定任务的不同权限。
+  **跨账户访问**：您可以使用 IAM 角色以允许不同账户中的某个人（可信主体）访问您的账户中的资源。角色是授予跨账户访问权限的主要方式。但是，对于某些 AWS 服务，您可以将策略直接附加到资源（而不是使用角色作为代理）。要了解用于跨账户访问的角色和基于资源的策略之间的差别，请参阅*《IAM 用户指南》*中的 [IAM 角色与基于资源的策略有何不同](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html)。
+  **跨服务访问**-某些 AWS 服务使用其他 AWS 服务中的功能。例如，当您在某个服务中进行调用时，该服务通常会在 Amazon EC2 中运行应用程序或在 Simple Storage Service（Amazon S3）中存储对象。服务可能会使用发出调用的主体的权限、使用服务角色或使用服务相关角色来执行此操作。
  +  **服务角色**：服务角色是服务代表您在账户中执行操作而代入的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息，请参阅 *IAM 用户指南*中的[创建角色以向 AWS 服务委派权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。
  +  **服务相关角色**-服务相关角色是一种与服务关联的服务角色。 AWS 服务可以代入代表您执行操作的角色。服务相关角色显示在您的 AWS 账户中，并归服务所有。IAM 管理员可以查看但不能编辑服务关联角色的权限。
+  在 A@@ **mazon EC2 上运行的应用程序** — 您可以使用 IAM 角色管理在 EC2 实例上运行并发出 AWS CLI 或 AWS API 请求的应用程序的临时证书。这优先于在 EC2 实例中存储访问密钥。要向 EC2 实例分配 AWS 角色并使其可供其所有应用程序使用，您需要创建附加到该实例的实例配置文件。实例配置文件包含角色，并使 EC2 实例上运行的程序能够获得临时凭证。有关更多信息，请参阅《IAM 用户指南》**中的[使用 IAM 角色向在 Amazon EC2 实例上运行的应用程序授予权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)。

要了解是使用 IAM 角色还是 IAM 用户，请参阅《IAM 用户指南》**中的[何时创建 IAM 角色（而不是用户）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_which-to-choose_role)。

# AWS Cloud Development Kit (AWS CDK) 的合规性验证
<a name="compliance-validation"></a>

 AWS CDK 通过其支持的特定亚马逊 Web Services (AWS) 服务遵循[分担责任模式](https://aws.amazon.com/compliance/shared-responsibility-model/)。有关 AWS 服务安全信息，请参阅[AWS 服务安全文档页面](https://docs.aws.amazon.com/security/?id=docs_gateway#aws-security)和合规[计划合 AWS 规工作范围内的AWS 服务](https://aws.amazon.com/compliance/services-in-scope/)。

 AWS 服务的安全性与合规性由第三方审计机构作为多项 AWS 合规计划的一部分进行评估。其中包括 SOC、PCI、FedRAMP、HIPAA 等。 AWS 在 “[按合规计划划分的范围内的 AWS 服务” 中提供了经常更新的特定合规计划范围内的AWS 服务](https://aws.amazon.com/compliance/services-in-scope/)列表。

您可以使用 Artif AWS act 下载第三方审计报告。有关更多信息，请参阅在 Artifac [t 中 AWS 下载报告](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)。

有关 AWS 合规计划的更多信息，请参阅[AWS 合规计划](https://aws.amazon.com/compliance/programs/)。

您在使用 AWS CDK 访问 AWS 服务时的合规责任取决于数据的敏感性、组织的合规目标以及适用的法律和法规。如果您在使用 AWS 服务时必须符合 HIPAA、PCI 或 FedRAMP 等标准，请提供资源来帮助： AWS 
+  [安全与合规性快速入门指南](https://aws.amazon.com/quickstart/?quickstart-all.sort-by=item.additionalFields.updateDate&quickstart-all.sort-order=desc&awsf.quickstart-homepage-filter=categories%23security-identity-compliance) — 部署指南，讨论架构注意事项，并提供在上部署以安全为重点和以合规为重点的基准环境的步骤。 AWS
+  [AWS 合规资源](https://aws.amazon.com/compliance/resources/) — 可能适用于您所在行业和所在地区的工作手册和指南的集合。
+  [AWS Config](https://aws.amazon.com/config/) — 一项评估您的资源配置在多大程度上符合内部实践、行业准则和法规的服务。
+ AWS Sec@@ [urity Hub](https://aws.amazon.com/security-hub/) — 全面了解您的安全状态 AWS ，可帮助您检查自己是否符合安全行业标准和最佳实践。

# AWS Cloud Development Kit (AWS CDK) 的弹性
<a name="disaster-recovery-resiliency"></a>

Amazon Web Services (AWS) 全球基础设施是围绕 AWS 区域和可用区构建的。

 AWS 区域提供多个物理隔离和隔离的可用区，这些可用区通过低延迟、高吞吐量和高度冗余的网络相连。

利用可用区，您可以设计和操作在可用区之间无中断地自动实现失效转移的应用程序和数据库。与传统的单个或多个数据中心基础架构相比，可用区具有更高的可用性、容错性和可扩展性。

有关 AWS 区域和可用区的更多信息，请参阅[AWS 全球基础设施](https://aws.amazon.com/about-aws/global-infrastructure/)。

 AWS CDK 通过其支持的特定亚马逊 Web Services (AWS) 服务遵循[分担责任模式](https://aws.amazon.com/compliance/shared-responsibility-model/)。有关 AWS 服务安全信息，请参阅[AWS 服务安全文档页面](https://docs.aws.amazon.com/security/?id=docs_gateway#aws-security)和合规[计划合 AWS 规工作范围内的AWS 服务](https://aws.amazon.com/compliance/services-in-scope/)。

# AWS Cloud Development Kit (AWS CDK) 的基础架构安全
<a name="infrastructure-security"></a>

 AWS CDK 通过其支持的特定亚马逊 Web Services (AWS) 服务遵循[分担责任模式](https://aws.amazon.com/compliance/shared-responsibility-model/)。有关 AWS 服务安全信息，请参阅[AWS 服务安全文档页面](https://docs.aws.amazon.com/security/?id=docs_gateway#aws-security)和合规[计划合 AWS 规工作范围内的AWS 服务](https://aws.amazon.com/compliance/services-in-scope/)。