amazon-web-services - 無効 - ユーザーに iam:changepassword を実行する権限がないか、入力されたパスワードが管理者によって設定されたアカウントパスワードポリシーに準拠していません




IAMへのアクセスをブロックしながらユーザーが自分のパスワードを変更できるようにするAWS IAMポリシー (2)

私はすべてのawsリソースを管理することができるはずですが、ユーザー/ルートのプロパティを管理できないようにすべき開発者の管理アカウントをいくつか持っています。 したがって、私はIAMへのアクセスを次の方針で制限しました。

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

ただし、これにより、ユーザーは自分のパスワードを変更することができなくなります。 どのようにIAMからブロックすることができますが、パスワードを変更することができますか?


割り当てられたポリシーは、AWS Identity and Access Management(IAM)のアクションを除くすべてのアクションにアクセス権を付与します。

したがって、ユーザーがパスワードを変更できるようにするには、パスワードを変更する権限を与えるユーザー/グループに別の(追加の)ポリシーを添付します。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "SomeSID",
      "Effect": "Allow",
      "Action": [
        "iam:ChangePassword"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

「拒否」は通常「許可」を無効にしますが、元のポリシーでは拒否は使用されませんでした。 したがって、追加の「許可」によって必要な権限が与えられます。


Amazon は、すべてのユーザーに対してユーザーの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権限が必要になります。

もっと良いオプションは、パスワードポリシーを有効にして、「ユーザーが自分のパスワードを変更できるようにする」ボックスをチェックすることです。 これはまったくのように、スズの上に述べた通りです。