我想让我的 IAM 用户通过控制台设置他们自己的 MFA 设备,是否有一个单一的策略可以用来实现这一点?
到目前为止,我可以通过许多 IAM 策略实现这一点,让它们列出所有 mfa 设备并列出用户(以便他们可以在 IAM 控制台中找到自己并...
我基本上正在寻找一种更直接的方法来控制它。
我应该补充一点,我的 IAM 用户是受信任的用户,因此我不必(尽管这样做会很好)将他们锁定到可能的最低限度,因此如果他们可以看到所有用户的列表,那就没问题了。
答案1
AWS 文档在“允许用户仅管理自己的虚拟 MFA 设备”下提供了如何执行此操作的示例:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUsersToCreateEnableResyncTheirOwnVirtualMFADevice",
"Effect": "Allow",
"Action": [
"iam:CreateVirtualMFADevice",
"iam:EnableMFADevice",
"iam:ResyncMFADevice"
],
"Resource": [
"arn:aws:iam::account-id-without-hyphens:mfa/${aws:username}",
"arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
]
},
{
"Sid": "AllowUsersToDeactivateDeleteTheirOwnVirtualMFADevice",
"Effect": "Allow",
"Action": [
"iam:DeactivateMFADevice",
"iam:DeleteVirtualMFADevice"
],
"Resource": [
"arn:aws:iam::account-id-without-hyphens:mfa/${aws:username}",
"arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
],
"Condition": {
"Bool": {
"aws:MultiFactorAuthPresent": true
}
}
},
{
"Sid": "AllowUsersToListMFADevicesandUsersForConsole",
"Effect": "Allow",
"Action": [
"iam:ListMFADevices",
"iam:ListVirtualMFADevices",
"iam:ListUsers"
],
"Resource": "*"
}
]
}
要在 AWS 管理控制台中插入 AWS 账户 ID 号,请单击右上角导航栏中的“支持”,然后单击“支持中心”。您当前登录的账户 ID 将显示在“支持”菜单下方。
也可以看看https://blogs.aws.amazon.com/security/post/Tx2SJJYE082KBUK/如何将多因素身份验证管理委托给 AWS-IAM-Users
答案2
[...] 是否存在一个可以用来实现这一目标的单一策略?...
到目前为止,我可以通过一系列 IAM 策略实现这一点,[...]
我基本上正在寻找一种更直接的方法来控制它。
恐怕你现在的方法目前是唯一可行的,请参阅我对更通用的问题的相关回答如何授予 AWS IAM 用户权限来管理他自己的安全凭证?,指的是另一个关于IAM 可以访问 EC2 REST API 吗?反过来,我会总体探索“IAM 凭证自我管理”。