为无法使用 IAM 角色的工作负载创建 IAM 用户 - AWS Identity and Access Management

为无法使用 IAM 角色的工作负载创建 IAM 用户

重要

作为最佳实践,我们建议您要求您的人类用户在访问 AWS 时使用临时凭证。您可以使用身份提供程序来以代入角色的方式,为人类用户提供对 AWS 账户 的联合访问权限,这样将提供临时凭证。对于集中式访问权限管理,我们建议使用 AWS IAM Identity Center(IAM Identity Center)来管理对您账户的访问权限以及这些账户中的其他权限。您可以使用 IAM Identity Center 创建和管理自己的用户身份,包括您的管理用户。如果您使用的是外部身份提供商,则还可以在 IAM Identity Center 中配置用户身份的访问权限。有关更多信息,请参阅《AWS IAM Identity Center 用户指南》中的什么是 AWS IAM Identity Center

如果您的使用案例需要具有编程访问权限和长期凭证的 IAM 用户,我们建议您确立程序以在需要时更新访问密钥。有关更多信息,请参阅 更新访问密钥

要执行一些账户和服务管理任务,您必须使用根用户凭证登录。要查看需要您以根用户身份登录的任务,请参阅需要根用户凭证的任务

为无法使用 IAM 角色的工作负载创建 IAM 用户

选择您要遵循以为工作负载创建 IAM 用户的方法的选项卡:

最小权限

要执行下列步骤,您必须至少具有以下 IAM 权限:

  • iam:AddUserToGroup

  • iam:AttachGroupPolicy

  • iam:CreateAccessKey

  • iam:CreateGroup

  • iam:CreateServiceSpecificCredential

  • iam:CreateUser

  • iam:GetAccessKeyLastUsed

  • iam:GetAccountPasswordPolicy

  • iam:GetAccountSummary

  • iam:GetGroup

  • iam:GetLoginProfile

  • iam:GetPolicy

  • iam:GetRole

  • iam:GetUser

  • iam:ListAccessKeys

  • iam:ListAttachedGroupPolicies

  • iam:ListAttachedUserPolicies

  • iam:ListGroupPolicies

  • iam:ListGroups

  • iam:ListGroupsForUser

  • iam:ListInstanceProfilesForRole

  • iam:ListMFADevices

  • iam:ListPolicies

  • iam:ListRoles

  • iam:ListRoleTags

  • iam:ListSSHPublicKeys

  • iam:ListServiceSpecificCredentials

  • iam:ListSigningCertificates

  • iam:ListUserPolicies

  • iam:ListUserTags

  • iam:ListUsers

  • iam:UploadSSHPublicKey

  • iam:UploadSigningCertificate

IAM console
  1. 按照《AWS 登录用户指南》中的如何登录 AWS 所述,根据用户类型选择相应的登录过程。

  2. 控制台主页页面,选择 IAM 服务。

  3. 在导航窗格中,选择用户,然后选择创建用户

  4. 指定用户详细信息页面中,执行以下操作:

    1. 对于 User name,键入 WorkloadName。将 WorkloadName 替换为要使用该账户的工作负载的名称。

    2. 选择下一步

  5. (可选)在设置权限页面上,执行以下操作:

    1. 选择 Add user to group

    2. 选择创建组

    3. 创建用户组对话框中,对于用户组名称,键入代表组中工作负载使用情况的名称。在本示例中,使用名称 Automation

    4. 权限策略下,选中 PowerUserAccess 托管策略对应的复选框。

      提示

      权限策略搜索框中输入 Power 以快速找到此托管策略。

    5. 选择创建用户组

    6. 返回到带有 IAM 组列表的页面,选中新用户组所对应的复选框。如果列表中未显示新组,请选择 Refresh(刷新)。

    7. 选择下一步

  6. (可选)在标签部分中,通过以键值对的形式附加标签来向用户添加元数据。有关更多信息,请参阅 AWS Identity and Access Management 资源的标签

  7. 验证新用户的用户组成员资格。如果您已准备好继续,请选择 Create user(创建用户)。

  8. 此时将显示一条状态通知,告知您已成功创建用户。选择查看用户,进入用户详细信息页面

  9. 选择安全凭证选项卡。然后,创建工作负载所需的凭证。

    • 访问密钥 - 选择创建访问密钥,为用户生成和下载访问密钥。

      重要

      这是您查看或下载秘密访问密钥的唯一机会,您必须向用户提供此信息,他们才能使用 AWS API。将用户的新访问密钥 ID 和秘密访问密钥保存在安全的地方。完成此步骤后,您再也无法访问这些秘密访问密钥。

    • 用于 AWS CodeCommit 的 SSH 公有密钥 – 选择上传 SSH 公有密钥上传 SSH 公有密钥,这样用户就可以通过 SSH 与 CodeCommit 存储库进行通信。

    • 用于 AWS CodeCommit 的 HTTPS Git 凭证 – 选择生成凭证以生成一组与 Git 存储库配合使用的唯一用户凭证。选择下载凭证,将用户名和密码保存到 .csv 文件中。这是该信息可用的唯一时间。如果您忘记或丢失密码,则需要重置密码。

    • 用于 Amazon Keyspaces(Apache Cassandra 兼容)的凭证 - 选择生成凭证以生成用于 Amazon Keyspaces 的特定服务用户凭证。选择下载凭证,将用户名和密码保存到 .csv 文件中。这是该信息可用的唯一时间。如果您忘记或丢失密码,则需要重置密码。

      重要

      服务特定凭证是与特定 IAM 用户相关联的长期凭证,只能用于所针对的服务。要向 IAM 角色或联合身份授予使用临时凭证访问所有 AWS 资源的权限,应将 AWS 身份验证与适用于 Amazon Keyspaces 的 SigV4 身份验证插件搭配使用。有关更多信息,请参阅 Amazon Keyspaces(Apache Cassandra 兼容)开发人员指南中的使用临时凭证连接到使用 IAM 角色和 SigV4 插件的 Amazon Keyspaces(Apache Cassandra 兼容)

    • X.509 签名证书 - 如果您需要发出安全的 SOAP 协议请求且位于 AWS Certificate Manager 不支持的区域,请选择创建 X.509 证书。ACM 是预置、管理和部署您的服务器证书的首选工具。有关使用 ACM 的更多信息,请参阅 AWS Certificate Manager 用户指南

您已经创建具有编程访问权限的用户,并且使用 PowerUserAccess 任务函数对其进行配置。该用户的权限策略授予对除 IAM 和 AWS Organizations 之外的所有服务的完全访问权限。

如果工作负载无法担任 IAM 角色,则可以使用此相同的流程向其他工作负载授予对您 AWS 账户 资源的编程访问权限。此过程使用 PowerUserAccess 托管策略来分配权限。要遵循最低权限的最佳实践,可以考虑使用限制性更强的策略或创建自定义策略,将访问权限限制为仅访问该计划所需的资源。要了解有关使用限制用户对特定 AWS 资源的权限的策略的信息,请参阅适用于 AWS 资源的 Access ManagementIAM 基于身份的策略示例。要在创建用户组之后向其中添加其他用户,请参阅 编辑 IAM 组中的用户

AWS CLI
  1. 创建一个名为 Automation 的用户。

    aws iam create-user \ --user-name Automation
  2. 创建一个名为 AutomationGroup 的 IAM 用户组,将 AWS 托管策略 PowerUserAccess 附加到该组,然后将 Automation 用户添加到该组。

    注意

    AWS 托管策略 是由 AWS 创建和管理的独立策略。每个策略都有自己的 Amazon 资源名称(ARN),其中包含策略名称。例如,arn:aws:iam::aws:policy/IAMReadOnlyAccess 是一个 AWS 托管策略。有关 ARN 的更多信息,请参阅 IAM ARN。有关适用于 AWS 服务 的 AWS 托管式策略的列表,请参阅 AWS 托管式策略

  3. 创建工作负载所需的安全凭证。

    • 创建用于测试的访问密钥aws iam create-access-key

      aws iam create-access-key \ --user-name Automation

      此命令的输出显示秘密访问密钥和访问密钥 ID。将此信息记录并存储在安全的位置。如果这些凭证丢失,将无法恢复,则必须创建一个新的访问密钥。

      重要

      这些 IAM 用户访问密钥是长期凭证,会给您的账户带来安全风险。完成测试后,建议您删除这些访问密钥。如果您有考虑访问密钥的场景,则请调查是否可以为工作负载 IAM 用户启用 MFA,并使用 aws sts get-session-token 获取会话的临时凭证,而不是使用 IAM 访问密钥。

    • 上传 AWS CodeCommit 的 SSH 公有密钥aws iam upload-ssh-public-key

      以下示例假设您的 SSH 公有密钥存储在文件 sshkey.pub 中。

      aws upload-ssh-public-key \ --user-name Automation \ --ssh-public-key-body file://sshkey.pub
    • 上传 X.509 签名证书aws iam upload-signing-certificate

      如果您需要发出安全 SOAP 协议请求且位于 AWS Certificate Manager 不支持的区域,则请上传 X.509 证书。ACM 是预置、管理和部署您的服务器证书的首选工具。有关使用 ACM 的更多信息,请参阅 AWS Certificate Manager 用户指南

      以下示例假设您的 X.509 签名证书存储在文件 certificate.pem 中。

      aws iam upload-signing-certificate \ --user-name Automation \ --certificate-body file://certificate.pem

如果工作负载无法担任 IAM 角色,则可以使用此相同的流程向其他工作负载授予对您 AWS 账户 资源的编程访问权限。此过程使用 PowerUserAccess 托管策略来分配权限。要遵循最低权限的最佳实践,可以考虑使用限制性更强的策略或创建自定义策略,将访问权限限制为仅访问该计划所需的资源。要了解有关使用限制用户对特定 AWS 资源的权限的策略的信息,请参阅适用于 AWS 资源的 Access ManagementIAM 基于身份的策略示例。要在创建用户组之后向其中添加其他用户,请参阅 编辑 IAM 组中的用户