我希望属于特定组的 AWS IAM 用户能够管理他们自己的凭证,包括创建他们的第一个访问 key 。要求他们不得获得其他权限,例如列出帐户的用户。
控制台访问似乎不是一个选项,因为它需要我不想授予的权限(例如 ListUsers)。
因此,我尝试了 AWS CLI 选项并按照 AWS 文档中的建议添加了以下策略。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": [
"iam:*LoginProfile",
"iam:*AccessKey*",
"iam:*SSHPublicKey*"
],
"Resource": "arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
}
}
这很好用,除了 AWS CLI 似乎需要访问 key 才能登录(我的用户还没有访问 key ,我希望他们自己创建访问 key )。
作为变通方法,我为他们创建了访问 key ,然后要求他们更改它,但这非常麻烦。
有没有办法使用用户名和密码登录 AWS CLI?还有其他方法可以实现我的用例吗?
最佳答案
我遇到了类似的问题。我希望我的非 root 用户能够更改他们的密码并更改(创建/禁用/删除)他们用于 CLI 访问的访问 key 。但是,这些用户必须不能列出用户或显示/与其他用户做任何事情。
我尝试实现最小策略是这个 JSON:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"iam:DeleteAccessKey",
"iam:ChangePassword",
"iam:CreateAccessKey",
"iam:ListAccessKeys"
],
"Resource": "arn:aws:iam::*:user/${aws:username}"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "iam:GetAccountPasswordPolicy",
"Resource": "*"
}
]
}
对像我这样的 AWS 菜鸟的一些解释:
我在
IAM > Policies > Create policy
中创建了自定义策略。我获取了相关权限,添加资源范围,然后将此权限分配给我的用户组。iam:ChangePassword
显然是密码更改权限,它只限于当前用户 resource ="arn:aws:iam::*:user/$ {aws:用户名}”
。如果您需要限制到特定帐户,请将*
替换为帐户 ID(不带连字符)。 如 AWS 文档中所述,iam:GetAccountPasswordPolicy
是必需的来源:
iam:*AccessKey
同时管理当前用户的访问 key :create
允许创建新 key ,这样管理员就不知道 key 了update
允许make inactive Actiondelete
允许删除访问 key ,因为每个帐户有两个 key 的配额
关于amazon-web-services - 允许 AWS 用户创建自己的第一个访问 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44408485/