为无法使用 IAM 角色的工作负载创建 IAM 用户
如果您的使用案例需要具有编程访问权限和长期凭证的 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
-
-
按照《AWS 登录用户指南》中的如何登录 AWS 所述,根据用户类型选择相应的登录过程。
-
在控制台主页页面,选择 IAM 服务。
-
在导航窗格中,选择用户,然后选择创建用户。
-
在指定用户详细信息页面中,执行以下操作:
-
对于 User name,键入 WorkloadName
。将 WorkloadName
替换为要使用该账户的工作负载的名称。
-
选择下一步。
-
(可选)在设置权限页面上,执行以下操作:
-
选择 Add user to group。
-
选择创建组。
-
在创建用户组对话框中,对于用户组名称,键入代表组中工作负载使用情况的名称。在本示例中,使用名称 Automation
。
-
在权限策略下,选中 PowerUserAccess 托管策略对应的复选框。
在权限策略搜索框中输入 Power 以快速找到此托管策略。
-
选择创建用户组。
-
返回到带有 IAM 组列表的页面,选中新用户组所对应的复选框。如果列表中未显示新组,请选择 Refresh(刷新)。
-
选择下一步。
-
(可选)在标签部分中,通过以键值对的形式附加标签来向用户添加元数据。有关更多信息,请参阅 AWS Identity and Access Management 资源的标签。
-
验证新用户的用户组成员资格。如果您已准备好继续,请选择 Create user(创建用户)。
-
此时将显示一条状态通知,告知您已成功创建用户。选择查看用户,进入用户详细信息页面
-
选择安全凭证选项卡。然后,创建工作负载所需的凭证。
-
访问密钥 - 选择创建访问密钥,为用户生成和下载访问密钥。
这是您查看或下载秘密访问密钥的唯一机会,您必须向用户提供此信息,他们才能使用 AWS API。将用户的新访问密钥 ID 和秘密访问密钥保存在安全的地方。完成此步骤后,您再也无法访问这些秘密访问密钥。
-
用于 AWS CodeCommit 的 SSH 公有密钥 – 选择上传 SSH 公有密钥上传 SSH 公有密钥,这样用户就可以通过 SSH 与 CodeCommit 存储库进行通信。
-
用于 AWS CodeCommit 的 HTTPS Git 凭证 – 选择生成凭证以生成一组与 Git 存储库配合使用的唯一用户凭证。选择下载凭证,将用户名和密码保存到 .csv 文件中。这是该信息可用的唯一时间。如果您忘记或丢失密码,则需要重置密码。
-
用于 Amazon Keyspaces(Apache Cassandra 兼容)的凭证 - 选择生成凭证以生成用于 Amazon Keyspaces 的特定服务用户凭证。选择下载凭证,将用户名和密码保存到 .csv 文件中。这是该信息可用的唯一时间。如果您忘记或丢失密码,则需要重置密码。
-
X.509 签名证书 - 如果您需要发出安全的 SOAP 协议请求且位于 AWS Certificate Manager 不支持的区域,请选择创建 X.509 证书。ACM 是预置、管理和部署您的服务器证书的首选工具。有关使用 ACM 的更多信息,请参阅 AWS Certificate Manager 用户指南。
您已经创建具有编程访问权限的用户,并且使用 PowerUserAccess 任务函数对其进行配置。该用户的权限策略授予对除 IAM 和 AWS Organizations 之外的所有服务的完全访问权限。
如果工作负载无法担任 IAM 角色,则可以使用此相同的流程向其他工作负载授予对您 AWS 账户 资源的编程访问权限。此过程使用 PowerUserAccess 托管策略来分配权限。要遵循最低权限的最佳实践,可以考虑使用限制性更强的策略或创建自定义策略,将访问权限限制为仅访问该计划所需的资源。要了解有关使用限制用户对特定 AWS 资源的权限的策略的信息,请参阅适用于 AWS 资源的 Access Management和IAM 基于身份的策略示例。要在创建用户组之后向其中添加其他用户,请参阅 编辑 IAM 组中的用户。
- AWS CLI
-
-
创建一个名为 Automation
的用户。
aws iam create-user \
--user-name Automation
-
创建一个名为 AutomationGroup
的 IAM 用户组,将 AWS 托管策略 PowerUserAccess
附加到该组,然后将 Automation
用户添加到该组。
AWS 托管策略 是由 AWS 创建和管理的独立策略。每个策略都有自己的 Amazon 资源名称(ARN),其中包含策略名称。例如,arn:aws:iam::aws:policy/IAMReadOnlyAccess
是一个 AWS 托管策略。有关 ARN 的更多信息,请参阅 IAM ARN。有关适用于 AWS 服务 的 AWS 托管式策略的列表,请参阅 AWS 托管式策略。
-
创建工作负载所需的安全凭证。
-
创建用于测试的访问密钥: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 Management和IAM 基于身份的策略示例。要在创建用户组之后向其中添加其他用户,请参阅 编辑 IAM 组中的用户。