IAM策略允许用户仅使用API​​ / CLI禁用自己的MFA设备

时间:2017-11-14 17:02:08

标签: amazon-web-services aws-cli multi-factor

我想在AWS组织中启用MFA,并允许用户仅管理自己的MFA设备。但我希望用户能够通过API / CLI管理设备(而不是使用AWS控制台)。

我在AWS文档中找到了this policy,这几乎是好的,因为它允许创建/启用/删除自己的MFA设备:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowUsersToCreateEnableResyncDeleteTheirOwnVirtualMFADevice",
      "Effect": "Allow",
      "Action": [
        "iam:CreateVirtualMFADevice",
        "iam:EnableMFADevice",
        "iam:ResyncMFADevice",
        "iam:DeleteVirtualMFADevice"
      ],
      "Resource": [
        "arn:aws:iam::account-id-without-hyphens:mfa/${aws:username}",
        "arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
      ]
    },
    {
      "Sid": "AllowUsersToDeactivateTheirOwnVirtualMFADevice",
      "Effect": "Allow",
      "Action": [
        "iam:DeactivateMFADevice"
      ],
      "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
        }
      }
    }
  ]
}

但是,对于设备停用(iam:DeactivateMFADevice),它要求条件aws:MultiFactorAuthPresenttrue。这是一种健全的安全措施,用户无法在不使用MFA的情况下禁用MFA。但是在此策略中,当使用STS通过API / CLI记录MFA并承担角色时,资源"arn:aws:iam::account-id-without-hyphens:mfa/${aws:username}"并不代表实际资源,${aws:username} is not present。我想当使用AWS控制台作为用户时,布尔值aws:MultiFactorAuthPresent可以为真。但据我所知,使用API​​ / CLI时,不可能同时存在aws:MultiFactorAuthPresent==true${aws:username}

那么,我可以编写什么策略来授权用户在使用MFA时禁用他们的设备,但是当他们担任角色时?

[免责声明,这将与awless CLI]

一起使用

0 个答案:

没有答案