IAM 用户 - AWS Identity and Access Management

IAM 用户

重要

IAM 最佳实践建议您您要求人类用户使用与身份提供商的联合身份验证才能使用临时凭证访问 AWS,而不是使用具有长期凭证的 IAM 用户。

AWS Identity and Access Management(IAM)用户是您在 AWS 中创建的实体。IAM 用户表示使用 IAM 用户与 AWS 互动的人类用户或工作负载。AWS 中的用户包括名称和凭证。

具备管理员权限的 IAM 用户与 AWS 账户根用户 并不是一回事。有关根用户的更多信息,请参阅 AWS 账户根用户

AWS 如何标识 IAM 用户

当您创建 IAM 用户时,IAM 提供以下这些方法来识别该用户:

  • 该 IAM 用户的“易记名称”,这是您在创建 IAM 用户时指定的名称,如 RichardAnaya。您将在 AWS Management Console中看到这些名称。

  • IAM 用户的 Amazon 资源名称(ARN)。当您需要跨所有 AWS 唯一标识 IAM 用户时,可以使用 ARN。例如,您可以使用 ARN 在 Amazon S3 存储桶的 IAM policy 中将 IAM 用户指定为 Principal。IAM 用户的 ARN 可能类似于以下内容:

    arn:aws:iam::account-ID-without-hyphens:user/Richard

  • IAM 用户的唯一标识符。仅在您使用 API、Tools for Windows PowerShell 或 AWS CLI 创建 IAM 用户时返回此 ID;控制台中不会显示此 ID。

有关这些标识符的更多信息,请参阅IAM 标识符

IAM 用户和凭证

您可以通过不同方式访问 AWS,具体取决于 IAM 用户凭证:

  • 控制台密码:IAM 用户可键入该密码以登录交互式会话,例如 AWS Management Console。禁用 IAM 用户的密码(控制台访问)可防止用户使用其登录凭证登录 AWS Management Console。这不会更改他们的权限,也不会阻止他们使用担任的角色访问控制台。

  • 访问密钥:用于以编程方式调用 AWS。但是,在为 IAM 用户创建访问密钥之前,还需要考虑更安全的替代方法。有关更多信息,请参阅《AWS 一般参考》中的 长期访问密钥的注意事项和替代方案。如果该 IAM 用户具有有效的访问密钥,它们将继续保持有效并允许通过 AWS CLI、Tools for Windows PowerShell、AWS API,或 AWS Console Mobile Application 进行访问。

  • 与 CodeCommit 结合使用的 SSH 密钥:可用于向 CodeCommit 进行身份验证的采用 OpenSSH 格式的 SSH 公有密钥。

  • 服务器证书:您可用于向某些 AWS 服务进行身份验证的 SSL/TLS 证书。我们建议您使用 AWS Certificate Manager (ACM) 来预置、管理和部署您的服务器证书。只有当您必须在 ACM 不支持的区域中支持 HTTPS 连接时,才应使用 IAM。要了解 ACM 支持的具体区域,请参阅《AWS 一般参考》中的 AWS Certificate Manager 端点和限额

您可以选择最适合您的 IAM 用户的凭证。当您使用 AWS Management Console 来创建 IAM 用户时,必须选择至少包含一个控制台密码或访问密钥。默认情况下,使用 AWS CLI 或 AWS API 创建的全新 IAM 用户没有任何类型的凭证。您必须根据使用案例为 IAM 用户创建凭证类型。

您可以使用以下选项来管理密码、访问密钥和多重身份验证(MFA)设备:

  • 管理 IAM 用户的密码创建和更改允许访问 AWS Management Console的密码。设置密码策略以强制实施最小密码复杂性。允许用户更改其密码。

  • 管理 IAM 用户的访问密钥创建和更新用于通过编程方式访问账户中的资源的访问密钥。

  • 为 IAM 用户启用多重身份验证(MFA)作为最佳实践,我们建议您要求账户中的所有 IAM 用户进行多重身份验证(MFA)。使用 MFA,用户必须提供两种形式的身份证明:首先,他们提供属于用户身份一部分的凭证(密码或访问密钥)。此外,他们还提供在硬件设备上或由智能手机或平板电脑上的应用程序生成的临时数字代码。

  • 查找未使用的密码和访问密钥拥有您账户或您账户中的 IAM 用户的密码或访问密钥的任何人都可以访问您的 AWS 资源。安全最佳实践是,在用户不再需要密码和访问密钥时将其删除。

  • 下载您账户的凭证报告您可以生成和下载列出您账户中所有 IAM 用户及其各个凭证状态(包括密码、访问密钥和 MFA 设备)的凭证报告。对于密码和访问密钥,凭证报告将显示多久前使用了密码或访问密钥。

IAM 用户和权限

默认情况下,全新的 IAM 用户没有执行任何操作的权限。他们无权执行任何 AWS 操作或访问任何 AWS 资源。采用单独 IAM 用户的优势在于可单独向每个用户分配权限。您可以向几个用户分配管理权限,而这些用户随后可管理您的 AWS 资源,甚至创建和管理其他 IAM 用户。但在大多数情况下,您希望限制用户的权限,使其只能访问工作所需的任务(AWS 操作)和资源。

设想一个名为 Diego 的用户。当您创建 IAM 用户 Diego 时,您可以为其创建密码并附加权限,以使其能够启动特定 Amazon EC2 实例以及从 Amazon RDS 数据库中的表读取 (GET) 信息。有关如何创建用户并授予用户初始凭证和权限的过程,请参阅在您的 AWS 账户 中创建 IAM 用户。有关如何更改现有用户的权限的过程,请参阅更改 IAM 用户的权限。有关如何更改用户的密码或访问密钥的过程,请参阅在 AWS 中管理用户密码管理 IAM 用户的访问密钥

您还可以向您的 IAM 用户添加权限边界。权限边界是一项高级功能,可让您使用 AWS 托管策略来限制基于身份的策略可向 IAM 用户或角色授予的最大权限。有关策略类型和用法的更多信息,请参阅IAM 中的策略和权限。

IAM 用户和账户

每个 IAM 用户均与一个 AWS 账户(且仅一个)关联。由于 IAM 用户是在您的 AWS 账户 中定义的,因此不需要向 AWS 报备付款方式。IAM 用户在您的账户中执行的任何 AWS 活动产生的费用均计入您的账户。

AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息,请参阅IAM 和 AWS STS 配额

作为服务账户的 IAM 用户

IAM 用户是 IAM 中具有相关凭证和权限的资源。IAM 用户可以表示一个人或使用此人的凭证向 AWS 提出请求的应用程序。这通常被称为服务账户。如果您选择在应用程序中使用 IAM 用户的长期凭证,请勿直接将访问密钥嵌入您的应用程序代码。使用 AWS 开发工具包和 AWS Command Line Interface,可以在已知位置放置访问密钥,这样就不必将其保留在代码中。有关更多信息,请参阅《AWS 一般参考》中的 正确管理 IAM 用户访问密钥。另外,作为最佳实践,您可以使用临时安全凭证(IAM 角色)代替长期访问密钥