【问题标题】:AWS IAM Policy to Allow Users to Change their own Passwords while Blocking Access to IAM允许用户更改自己的密码同时阻止访问 IAM 的 AWS IAM 策略
【发布时间】:2015-01-31 22:12:16
【问题描述】:

我的开发人员有一些管理帐户,他们应该能够管理所有 aws 资源,但不能管理用户/根属性。因此,我通过以下策略限制了对 IAM 的访问:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "NotAction": "iam:*",
      "Resource": "*"
    }
  ]
}

但是,这会阻止用户更改自己的密码。如何阻止他们访问 IAM,但允许他们更改密码?

【问题讨论】:

标签: amazon-web-services passwords amazon-iam


【解决方案1】:

您分配的策略授予对除 AWS Identity and Access Management (IAM) 之外的所有操作的访问权限。

因此,要允许用户更改密码,请向授予更改密码权限的用户/组附加另一个(附加)策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "SomeSID",
            "Effect": "Allow",
            "Action": [
                "iam:ChangePassword"
            ],
            "Resource": "arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
        }
    ]
}

虽然“拒绝”通常会覆盖“允许”,但原始策略并没有使用拒绝 - 它只是授予所有除了 IAM 的权限。因此,额外的“允许”将授予所需的权限。

【讨论】:

    【解决方案2】:

    Amazon provides an example policy 不需要为每个用户手动指定用户 ID:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "iam:*LoginProfile",
            "iam:*AccessKey*",
            "iam:*SSHPublicKey*"
          ],
          "Resource": "arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
        },
        {
          "Effect": "Allow",
          "Action": [
            "iam:ListAccount*",
            "iam:GetAccountSummary",
            "iam:GetAccountPasswordPolicy",
            "iam:ListUsers"
          ],
          "Resource": "*"
        }
      ]
    }
    

    但是,更改密码(至少在初始登录期间,当创建用户时勾选“首次登录时需要更改密码”时)似乎仍然需要iam:ChangePassword 权限。

    更好的选择是启用密码策略并选中“允许用户更改自己的密码”框;这和它在罐头上说的完全一样,没有摸索。

    【讨论】:

      猜你喜欢
      • 2019-10-30
      • 2021-04-19
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 2016-11-08
      • 1970-01-01
      • 2016-12-10
      • 1970-01-01
      相关资源
      最近更新 更多