【问题标题】:AWS IAM force MFA but allows change password the first timeAWS IAM 强制 MFA,但允许第一次更改密码
【发布时间】:2020-02-13 13:49:47
【问题描述】:

如何强制 AWS IAM 用户使用 MFA,但允许他们在首次登录时更改密码?

如果您关注AWS Docs,并强制进行MFA,新用户在首次获得帐户时无法更改密码。

我知道您可以使用force MFAnot 并允许用户管理自己的密码和凭据。此外,AWS 有办法解决此问题,但不建议这样做:

此示例策略不允许用户在 登录。新用户和密码过期的用户可能会尝试 这样做。您可以通过将 iam:ChangePassword 添加到 声明 DenyAllExceptListedIfNoMFA。但是,IAM 不推荐 这。允许用户在没有 MFA 的情况下更改其密码可能是 安全风险。

那么“推荐”的方式是什么?

这个问题也是asked in AWS forum,没有真正的答案。

【问题讨论】:

    标签: amazon-web-services amazon-iam multi-factor-authentication


    【解决方案1】:

    这里推荐的路径是使用SSO / identity federation,但我提出了一种手动的单策略解决方案,如果您还没有 SSO,则可以更轻松地进行管理。我的解决方案仍然存在风险,但仅限于初始帐户设置过程。它涉及使用 NewUser 标记手动标记新 IAM 用户,然后在他们重置密码并配置 MFA 后手动取消标记。

    以下指南假设您使用的是the recommended policy from AWS to allow MFA-authenticated IAM users to manage their own credentials on the My Security Credentials page

    编辑您的 "Sid": "DenyAllExceptListedIfNoMFA" 块所在的 MFA 策略,并将其替换为以下内容:

    {
        "Sid": "DenyAllExceptListedIfNoMFAAndNewUser",
        "Effect": "Deny",
        "NotAction": [
            "iam:CreateVirtualMFADevice",
            "iam:EnableMFADevice",
            "iam:GetUser",
            "iam:ListMFADevices",
            "iam:ListVirtualMFADevices",
            "iam:ResyncMFADevice",
            "sts:GetSessionToken",
            "iam:ChangePassword"
        ],
        "Resource": "*",
        "Condition": {
            "BoolIfExists": {
                "aws:MultiFactorAuthPresent": "false"
            }
        }
    },
    {
        "Sid": "DenyAllExceptListedIfNoMFA",
        "Effect": "Deny",
        "NotAction": [
            "iam:CreateVirtualMFADevice",
            "iam:EnableMFADevice",
            "iam:GetUser",
            "iam:ListMFADevices",
            "iam:ListVirtualMFADevices",
            "iam:ResyncMFADevice",
            "sts:GetSessionToken"
        ],
        "Resource": "*",
        "Condition": {
            "BoolIfExists": {
                "aws:MultiFactorAuthPresent": "false"
            },
            "StringNotEqualsIfExists": {
                "iam:ResourceTag/NewUser": "true"
            }
        }
    }
    

    创建一个新用户并添加一个NewUser 标记,并将值设置为true

    将凭据发送给新用户。首次登录后,从他们的 IAM 用户资源中删除 NewUser 标签。

    你可以看到an example of my full policy here

    【讨论】:

      猜你喜欢
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-29
      • 1970-01-01
      • 2019-11-13
      • 2015-02-01
      • 2019-10-30
      相关资源
      最近更新 更多