0

根据AWS 文档,我向我的组管理员附加了一项策略,以强制该组的权限仅适用于启用了 MFA 的用户

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "BlockMostAccessUnlessSignedInWithMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:DeleteVirtualMFADevice",
                "iam:ListVirtualMFADevices",
                "iam:DeactivateMFADevice",
                "iam:EnableMFADevice",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice",
                "iam:GetAccountSummary",
                "sts:GetSessionToken"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}

我的问题是我有一个属于该管理员组的机器人(我们称之为arn:aws:iam::12345678:user/my-bot )并且它没有启用 MFA。到目前为止,我想到了这两个选项

  1. 将我的机器人放在不存在 EnforceMFA 策略的不同组中(重复代码)
  2. 不知何故为机器人启用 MFA(虽然我不喜欢那个选项)

有没有办法可以在我的 EnforceMFA 策略中添加一个例外/条件,上面写着“对于这个特定用户,不要应用这个拒绝”)

提前致谢

4

1 回答 1

1

您可以为您的机器人用户创建一个标签并添加另一个条件,标记您的服务帐户以识别它。

{
   "Condition": {
      "Bool": {
                    "aws:MultiFactorAuthPresent": "false"
                },
      "StringNotEqual": {
            "iam:ResourceTag/type": "bot"
      }
   }
}

另外创建一个拒绝更改用户标签的策略。

如果您只想排除特定用户,则可以使用aws:PrincipalArn您的策略的全局条件对除指定用户之外的所有用户应用拒绝:https ://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-键.html

与 StringNotEqual 结合使用即可!

于 2020-10-25T17:03:37.517 回答