问题描述
在AWS documentation之后,我在组 admin 上附加了一项策略,以强制该组的权限仅对启用了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 ),该机器人属于该 admin 组,并且未启用MFA。到目前为止,我想到了这两种选择
有没有办法在我的EnforceMFA策略中添加一个例外/条件,说明“对于此特定用户,请不要应用此拒绝”)
预先感谢
解决方法
您可以为您的机器人用户创建标签,并添加另一个条件,为您的服务帐户添加标签以进行识别。
{
"Condition": {
"Bool": {
"aws:MultiFactorAuthPresent": "false"
},"StringNotEqual": {
"iam:ResourceTag/type": "bot"
}
}
}
另外创建一个拒绝更改用户标签的策略。
如果您只想排除特定用户,则可以使用aws:PrincipalArn
全局条件,将策略应用于所有用户,但指定的用户除外:https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html
与StringNotEqual结合使用将有效!