如何允许 IAM 用户设置自己的虚拟 MFA 设备

如何允许 IAM 用户设置自己的虚拟 MFA 设备

我想让我的 IAM 用户通过控制台设置他们自己的 MFA 设备,是否有一个单一的策略可以用来实现这一点?

到目前为止,我可以通过许多 IAM 策略实现这一点,让它们列出所有 mfa 设备并列出用户(以便他们可以在 IAM 控制台中找到自己并...

我基本上正在寻找一种更直接的方法来控制它。

我应该补充一点,我的 IAM 用户是受信任的用户,因此我不必(尽管这样做会很好)将他们锁定到可能的最低限度,因此如果他们可以看到所有用户的列表,那就没问题了。

答案1

AWS 文档在“允许用户仅管理自己的虚拟 MFA 设备”下提供了如何执行此操作的示例:

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_delegate-permissions_examples.html#creds-policies-mfa-console

{
  "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 凭证自我管理”。

相关内容