AWS Cloud Development Kit (AWS CDK) 的身份和访问管理 - AWS Cloud Development Kit (AWS CDK) v2

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

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

AWS Cloud Development Kit (AWS CDK) 的身份和访问管理

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

受众

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

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

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

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

使用身份进行身份验证

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

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

根据您的用户类型,您可以登录 AWS 管理控制台或 AWS 访问门户。有关登录的更多信息 AWS,请参阅《登录用户指南》中的如何 AWS 登录您的 AWS 账户

要 AWS 以编程方式访问,请 AWS 提供 AWS CDK、软件开发套件 (SDKs) 和命令行接口 (CLI),以便使用您的凭据对请求进行加密签名。如果您不使用 AWS 工具,则必须自己签署请求。有关使用推荐的方法自行签署请求的更多信息,请参阅《 AWS 一般参考》中的 “签名版本 4 签名流程”。

无论使用何种身份验证方法,您都可能需要提供其他安全信息。例如, AWS 建议您使用多重身份验证 (MFA) 来提高账户的安全性。要了解更多信息,请参阅 AWS IAM Identity Center 用户指南中的多重身份验证和 IAM 用户指南 AWS中的使用多重身份验证 (MFA)

AWS 账户 root 用户

创建 AWS 账户时,您首先需要一个登录身份,该身份可以完全访问该账户中的所有 AWS 服务和资源。此身份称为 AWS 账户 root 用户,使用您创建账户时使用的电子邮件地址和密码登录即可访问该身份。强烈建议您不要使用根用户执行日常任务。保护好根用户凭证,并使用这些凭证来执行仅根用户可以执行的任务。有关要求您以根用户身份登录的任务的完整列表,请参阅 IAM 用户指南中的需要根用户凭证的任务

联合身份

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

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

要进行集中访问管理,我们建议您使用 AWS IAM 身份中心。您可以在 IAM Identity Center 中创建用户和群组,也可以连接并同步到您自己的身份源中的一组用户和群组,以便在您的所有 AWS 账户和应用程序中使用。有关 IAM 身份中心的信息,请参阅什么是 IAM 身份中心? AWS IAM 身份中心用户指南中。

IAM 用户和群组

I AM 用户是您 AWS 账户中对个人或应用程序具有特定权限的身份。在可能的情况下,我们建议使用临时凭证,而不是创建具有长期凭证(如密码和访问密钥)的 IAM 用户。但是,如果您有一些特定的使用场景需要长期凭证以及 IAM 用户,建议您轮换访问密钥。有关更多信息,请参阅《IAM 用户指南》中的对于需要长期凭证的用例,应在需要时更新访问密钥

IAM 组是一个指定一组 IAM 用户的身份。您不能使用组的身份登录。您可以使用组来一次性为多个用户指定权限。如果有大量用户,使用组可以更轻松地管理用户权限。例如,您可以拥有一个名为的群组,IAMAdmins并向该群组授予管理 IAM 资源的权限。

用户与角色不同。用户唯一地与某个人员或应用程序关联,而角色旨在让需要它的任何人代入。用户具有永久的长期凭证,而角色提供临时凭证。要了解更多信息,请参阅《IAM 用户指南》中的 IAM 用户的使用案例

IAM 角色

I AM 角色是您的 AWS 账户中具有特定权限的身份。它与 IAM 用户类似,但与特定人员无关。您可以通过切换角色在 AWS 管理控制台中临时担任 IAM 角色。您可以通过调用 AWS CLI 或 AWS API 操作或使用自定义 URL 来代入角色。有关使用角色的方法的更多信息,请参阅《IAM 用户指南》中的使用 IAM 角色

具有临时凭证的 IAM 角色在以下情况下很有用:

  • 联合用户访问:要向联合身份分配权限,请创建角色并为角色定义权限。当联合身份进行身份验证时,该身份将与角色相关联并被授予由此角色定义的权限。有关用于联合身份验证的角色的信息,请参阅《IAM 用户指南》中的针对第三方身份提供商创建角色(联合身份验证)。如果您使用 IAM Identity Center,则需要配置权限集。为控制您的身份在进行身份验证后可以访问的内容,IAM Identity Center 将权限集与 IAM 中的角色相关联。有关权限集的信息,请参阅 AWS IAM Identity Center 用户指南中的权限集

  • 临时 IAM 用户权限:IAM 用户可代入 IAM 用户或角色,以暂时获得针对特定任务的不同权限。

  • 跨账户存取:您可以使用 IAM 角色以允许不同账户中的某个人(可信主体)访问您的账户中的资源。角色是授予跨账户访问权限的主要方式。但是,对于某些 AWS 服务,您可以将策略直接附加到资源(而不是使用角色作为代理)。要了解用于跨账户访问的角色和基于资源的策略之间的差别,请参阅《IAM 用户指南》中的 IAM 角色与基于资源的策略有何不同

  • 跨服务访问-某些 AWS 服务使用其他 AWS 服务中的功能。例如,当您在服务中拨打电话时,该服务通常会在 Amazon 中运行应用程序 EC2 或在 Amazon S3 中存储对象。服务可能会使用发出调用的主体的权限、使用服务角色或使用服务相关角色来执行此操作。

    • 服务角色——服务角色是服务代表您在账户中执行操作而代入的 IAM 角色。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息,请参阅 IAM 用户指南中的创建角色以向 AWS 服务委派权限

    • 服务相关角色-服务相关角色是一种与服务关联的服务角色。 AWS 服务可以代入代表您执行操作的角色。服务相关角色显示在您的 AWS 账户中,并归服务所有。IAM 管理员可以查看但不能编辑服务相关角色的权限。

  • 在 A@@ mazon 上运行的应用程序 EC2 — 您可以使用 IAM 角色管理在 EC2 实例上运行并发出 AWS CLI 或 AWS API 请求的应用程序的临时证书。这比在 EC2 实例中存储访问密钥更可取。要为 EC2 实例分配 AWS 角色并使其可供其所有应用程序使用,您需要创建一个附加到该实例的实例配置文件。实例配置文件包含该角色,并允许在 EC2 实例上运行的程序获得临时证书。有关更多信息,请参阅 IAM 用户指南中的使用 IAM 角色向在 A mazon EC2 实例上运行的应用程序授予权限

要了解是使用 IAM 角色还是 IAM 用户,请参阅IAM 用户指南中的何时创建 IAM 角色(而不是用户)