

# IAM 用户
<a name="id_users"></a>

**重要**  
 IAM [最佳实践](best-practices.md)建议您您要求人类用户使用与身份提供商的联合身份验证才能使用临时凭证访问 Amazon，而不是使用具有长期凭证的 IAM 用户。建议您仅在联合用户不支持的[特定用例](gs-identities-iam-users.md)中使用 IAM 用户。

*IAM 用户*是您在 Amazon Web Services 账户 中创建的实体。IAM 用户表示使用 IAM 用户与 Amazon 互动的人类用户或工作负载。IAM 用户包括名称和凭证。

具备管理员权限的 IAM 用户与 Amazon Web Services 账户根用户 并不是一回事。有关根用户的更多信息，请参阅 [Amazon Web Services 账户根用户](id_root-user.md)。

## Amazon 如何标识 IAM 用户
<a name="id_users_create_aws-identifiers"></a>

当您创建 IAM 用户时，IAM 提供以下这些方法来识别该用户：
+ 该 IAM 用户的“易记名称”，这是您在创建 IAM 用户时指定的名称，如 `Richard` 或 `Anaya`。您将在 Amazon Web Services 管理控制台中看到这些名称。由于 IAM 用户名出现在 Amazon 资源名称 (ARN) 中，因此不建议在 IAM 名称中包含个人识别信息。有关 IAM 名称的要求和限制，请参阅 [IAM 名称要求](reference_iam-quotas.md#reference_iam-quotas-names)。
+ IAM 用户的 Amazon 资源名称（ARN）。当您需要跨所有 Amazon 唯一标识 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 或 Amazon CLI 创建 IAM 用户时返回此 ID；控制台中不会显示此 ID。

有关这些标识符的更多信息，请参阅[IAM 标识符](reference_identifiers.md)。

## IAM 用户和凭证
<a name="id_users_creds"></a>

您可以通过不同方式访问 Amazon，具体取决于 IAM 用户凭证：
+ [**控制台密码**](id_credentials_passwords.md)：IAM 用户可键入该密码以登录交互式会话，例如 Amazon Web Services 管理控制台。禁用 IAM 用户的密码（控制台访问）可防止用户使用其登录凭证登录 Amazon Web Services 管理控制台。这不会更改他们的权限，也不会阻止他们使用担任的角色访问控制台。启用控制台访问权限的 IAM 用户也可以使用这些相同的凭证，通过 `aws login` Amazon CLI 命令对 Amazon CLI 和 SDK 访问进行身份验证。这些用户需要具有 [SignInLocalDevelopmentAccess](https://docs.amazonaws.cn/aws-managed-policy/latest/reference/SignInLocalDevelopmentAccess.html) 权限。有关更多详细信息，请参阅《Amazon Command Line Interface 用户指南》**中的 [Amazon CLI 身份验证和访问凭证](https://docs.amazonaws.cn/cli/latest/userguide/cli-chap-authentication.html)。
+ [访问密钥****](id_credentials_access-keys.md)：用于以编程方式调用 Amazon。但是，在为 IAM 用户创建访问密钥之前，还需要考虑更安全的替代方法。有关更多信息，请参阅《Amazon Web Services 一般参考》中的 [长期访问密钥的注意事项和替代方案](https://docs.amazonaws.cn/general/latest/gr/aws-sec-cred-types.html#alternatives-to-long-term-access-keys)**。如果该 IAM 用户具有有效的访问密钥，它们将继续保持有效并允许通过 Amazon CLI、Tools for Windows PowerShell、Amazon API，或 Amazon Console Mobile Application 进行访问。
+ [**与 CodeCommit 结合使用的 SSH 密钥**](id_credentials_ssh-keys.md)：可用于向 CodeCommit 进行身份验证的采用 OpenSSH 格式的 SSH 公有密钥。
+ [**服务器证书**](id_credentials_server-certs.md)：您可用于向某些 Amazon 服务进行身份验证的 SSL/TLS 证书。我们建议您使用 Amazon Certificate Manager (ACM) 来预置、管理和部署您的服务器证书。只有当您必须在 ACM 不支持的区域中支持 HTTPS 连接时，才应使用 IAM。要了解 ACM 支持的具体区域，请参阅《Amazon Web Services 一般参考》中的 [Amazon Certificate Manager 端点和限额](https://docs.amazonaws.cn/general/latest/gr/acm.html)**。

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

您可以使用以下选项来管理密码、访问密钥和多重身份验证（MFA）设备：
+ **[管理 IAM 用户的密码](id_credentials_passwords.md)。**创建和更改允许访问 Amazon Web Services 管理控制台的密码。设置密码策略以强制实施最小密码复杂性。允许 IAM 用户更改其密码。
+ **[管理 IAM 用户的访问密钥](id_credentials_access-keys.md)。**创建和更新用于通过编程方式访问账户中的资源的访问密钥。
+ **[为 IAM 用户启用多重身份验证（MFA）](id_credentials_mfa.md)。**作为[最佳实践](best-practices.md)，我们建议您要求账户中的所有 IAM 用户进行多重身份验证（MFA）。使用 MFA，IAM 用户必须提供两种形式的身份证明：首先，他们提供属于用户身份一部分的凭证（密码或访问密钥）。此外，他们还提供在硬件设备上或由智能手机或平板电脑上的应用程序生成的临时数字代码。
+ **[查找未使用的密码和访问密钥](id_credentials_finding-unused.md)。**拥有您账户或您账户中的 IAM 用户的密码或访问密钥的任何人都可以访问您的 Amazon 资源。为保障安全，[最佳实践](https://docs.amazonaws.cn/general/latest/gr/aws-access-keys-best-practices.html)是在 IAM 用户不再需要密码和访问密钥时将其删除。
+ **[下载您账户的凭证报告](id_credentials_getting-report.md)。**您可以生成和下载列出您账户中所有 IAM 用户及其各个凭证状态（包括密码、访问密钥和 MFA 设备）的凭证报告。对于密码和访问密钥，凭证报告将显示多久前使用了密码或访问密钥。

## IAM 用户和权限
<a name="id_users_perms"></a>

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

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

您还可以向您的 IAM 用户添加权限边界。权限边界是一项高级功能，可让您使用 Amazon 托管策略来限制基于身份的策略可向 IAM 用户或角色授予的最大权限。有关策略类型和用法的更多信息，请参阅[Amazon Identity and Access Management 中的策略和权限](access_policies.md)。

## IAM 用户和账户
<a name="id_users_accounts"></a>

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

Amazon 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 Amazon STS 配额](reference_iam-quotas.md)。

## 作为服务账户的 IAM 用户
<a name="id_users_service_accounts"></a>

IAM 用户是 IAM 中具有相关凭证和权限的资源。IAM 用户可以表示一个人或使用此人的凭证向 Amazon 提出请求的应用程序。这通常被称为*服务账户*。如果您选择在应用程序中使用 IAM 用户的长期凭证，**请勿直接将访问密钥嵌入您的应用程序代码。**使用 Amazon 开发工具包和 Amazon Command Line Interface，可以在已知位置放置访问密钥，这样就不必将其保留在代码中。有关更多信息，请参阅《Amazon Web Services 一般参考》中的 [正确管理 IAM 用户访问密钥](https://docs.amazonaws.cn/general/latest/gr/aws-access-keys-best-practices.html#iam-user-access-keys)**。另外，作为最佳实践，您可以[使用临时安全凭证（IAM 角色）代替长期访问密钥](https://docs.amazonaws.cn/general/latest/gr/aws-access-keys-best-practices.html#use-roles)。