[小ネタ] 権限があるのに IAM ユーザーのパスワード変更で権限エラーになる
はじめに
こんにちは、パオの人ことさすけです!
今回は、IAM ユーザーのログインパスワードを設定する際に、パスワードポリシー非準拠のものを設定するとどうなるのかという話です!
さっそく結論
小ネタ的内容なので、早速結論です!
パスワードポリシーに非準拠の場合、AccessDenied のエラーが出力されます、、!許可が足りないぞって怒られるんですねぇ。
はじめて知った時は「権限あるのに何でだ!」って思った覚えがあります(笑)
検証手順
さて、早速検証です。
今回は、以下の流れで検証を行なっていきます。
- テスト用 IAM ユーザーを作成(
pao_test_password
) pao_test_password
にポリシーを付与- マネジメントコンソールにサインイン後、パスワードを変更
- パスワードポリシー非準拠のパスワードを入力し、エラーを確認
テスト用 IAM ユーザーを作成(pao_test_password) & ポリシー付与
まずは、検証手順の 1 ~ 2(テスト用ユーザーの作成および権限付与)まで行います。
画像の通り、自信のパスワードを変更する権限である IAMUserChangePassword
と、エラーログ確認のために CloudTrail の読み取り権限である AWSCloudTrail_FullAccess
を付与しています。
それぞれの詳細については、公式ドキュメント [1] [2] をご確認ください。
パスワードポリシー非準拠のパスワードに変更
次にパスワードポリシー非準拠のパスワードに変更を試してみましょう。[3]
前提としてパスワードポリシーは以下のようになっております。
変更後のパスワードとしては、「pk10pao」に変更します。
このパスワードは、「英数字以外の文字が必要」「アルファベットの大文字が必要」というポリシーに反しています。
すると、以下のようになりました。
CloudTrail にて確認
次に、CloudTrail にてエラーメッセージを確認してみましょう。
IAM ユーザーのパスワード変更は、リージョンをバージニア北部(us-east-1)にしてから検索してください。
以下のように、「ChangePassword」が AccessDenied
となっておりました。
エラーメッセージを見てみると以下のようになっていました。
CloudTrail のエラーメッセージ「権限がない」ことによるエラーだと記されていますね。
"errorMessage": "User: arn:aws:iam::xxxxxxxxxxxx:user/pao_test_password is not authorized to perform: iam:ChangePassword on resource: user pao_test_password with an explicit deny in an identity-based policy"
まとめ
さて、検証にお付き合いいただきありがとうございました!
「パスワードポリシー非準拠のエラー = 権限不足」ということを覚えておくと、たまーに役に立つかもしれないので、頭の片隅にでも入れておくと良いかもしれません!
参考文献
[1] IAMUserChangePassword - AWS 管理ポリシー
[2] AWSCloudTrail_ReadOnlyAccess - AWS 管理ポリシー
[3] IAM ユーザーが自分のパスワードを変更する方法 - AWS Identity and Access Management
アノテーション株式会社
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。