AWS IAMパスワードポリシーでパスワードの有効期間を設定した際のログイン動作を確認してみた

AWS IAMパスワードポリシーでパスワードの有効期間を設定した際のログイン動作を確認してみた

Clock Icon2025.07.04

はじめに

AWSのIAMパスワードポリシーを使用することで、全IAMユーザーに対して一律でパスワードの定期変更を義務付けることができます。

パスワードの有効期間を設定し、期限切れ時にユーザー自身でパスワードを変更する際のログイン動作について、意外にも記事が見当たらなかったため、実際の動作を検証しました。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html

ユーザーの権限設定

IAMユーザーには、「IAMUserChangePassword」マネージドポリシーの適用が必要です。

cm-hirai-screenshot 2025-07-04 8.23.22

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:ChangePassword"
            ],
            "Resource": [
                "arn:aws:iam::*:user/${aws:username}",
                "arn:aws:iam::*:user/*/${aws:username}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountPasswordPolicy"
            ],
            "Resource": "*"
        }
    ]
}

https://docs.aws.amazon.com/ja_jp/aws-managed-policy/latest/reference/IAMUserChangePassword.html

IAMパスワードポリシーの設定

IAMページの[アカウント設定]に遷移します。

cm-hirai-screenshot 2025-07-04 8.08.10

IAMパスワードポリシーで以下の設定を行います。

  • 「ユーザーにパスワードの変更を許可」 → 有効
  • 「パスワードの有効期限には管理者のリセットが必要です」 → 無効
  • 「パスワードの有効期間をオンにする」 → 有効(例:110日)

cm-hirai-screenshot 2025-07-04 8.07.32

cm-hirai-screenshot 2025-07-03 15.08.31

これにより、ユーザーは次回サインイン時に自身で新しいパスワードを設定できるようになります。

期限切れユーザーでのログイン検証

パスワードを設定して110日以上経過したユーザーでログインを試してみます。

cm-hirai-screenshot 2025-07-03 15.08.51

ユーザー名とパスワードを入力し、[Sign in]をクリックします。

cm-hirai-screenshot 2025-07-03 15.09.29

すると、パスワードをリセットするように画面が表示されました。古いパスワードと新規パスワードを入力します。

cm-hirai-screenshot 2025-07-03 15.09.50

Confirm Password Change

Your account (アカウントID) password has expired or requires a reset.
To continue, please verify your old and set a new password for test2 (not you?).

パスワードリセットに成功したと表示されました。[Continue to sign in]をクリックします。

cm-hirai-screenshot 2025-07-03 16.22.11

ログインが成功し、マネージドコンソールのトップページに遷移できました。

cm-hirai-screenshot 2025-07-03 16.22.23

なお、「パスワードの再利用を禁止する」を無効化している場合でも、同じパスワードは使用できません。異なるパスワードを設定することで、ログインが可能になります。

cm-hirai-screenshot 2025-07-03 16.21.17

CloudTrailでのイベント確認

CloudTrailを確認すると、イベント名は「ChangePassword」であり、IAMUserChangePasswordのマネージドポリシーが必要であったことが分かります。

{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "XXXXX",
        "arn": "arn:aws:iam::アカウントID:user/test2",
        "accountId": "アカウントID",
        "accessKeyId": "XXXXX",
        "userName": "test2",
        "sessionContext": {
            "attributes": {
                "creationDate": "2025-07-03T07:14:43Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2025-07-03T07:22:06Z",
    "eventSource": "iam.amazonaws.com",
    "eventName": "ChangePassword",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": null,
    "requestID": "d3868beb-ee5a-4fc9-9bbe-24906318f645",
    "eventID": "3555cf9b-a570-4be9-9e5e-a290ba0cc201",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "アカウントID",
    "eventCategory": "Management"
}

認証情報レポートでの変更内容確認

パスワード変更前後でIAM ユーザーの認証情報レポートの各項目がどのように変更されるか確認しました。

cm-hirai-screenshot 2025-07-04 8.59.43

  • password_last_used:最後にAWSウェブサイトにサインインした日時
    • ユーザー名とパスワード入力後の日付(パスワード更新前)に更新される
  • password_last_changed:ユーザーのパスワードが最後に設定された日時
    • パスワード更新後の日付に更新される
  • password_next_rotation:パスワードポリシーに基づき、新しいパスワードの設定をユーザーに求める日時
    • password_last_changedから設定した有効期間(110日)後の日付が設定される
認証情報レポートの一部
password_last_used,password_last_changed,password_next_rotation
2025-07-03T07:14:43Z,2025-10-25T07:23:02Z,2025-07-04T07:23:02Z

重要な点として、password_last_usedはログイン時点(パスワード更新前)で更新されるため、password_last_changedよりも前の日時となります。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_getting-report.html

管理者によるパスワードリセットが必要な場合

ユーザー自身ではなく、管理者側でパスワード変更を必須にしたい場合は、以下のパスワードポリシーに設定します。

  • 「パスワードの有効期限には管理者のリセットが必要です」 → 有効
  • 「パスワードの有効期間をオンにする」 → 有効(例:110日)

この設定で、期限切れのIAMユーザーがログインしようとすると、以下のエラーが表示されます。

Authentication failed
Your password has expired. Contact your administrator to reset the password.

cm-hirai-screenshot 2025-07-03 16.05.59

この場合、適切な権限を持つ管理者が、対象のIAMユーザーのパスワードをリセットしてあげる必要があります。
cm-hirai-screenshot 2025-07-03 16.23.00

cm-hirai-screenshot 2025-07-03 16.23.08

最後に

IAMパスワードポリシーでパスワードの有効期間を設定した際の、実際のログイン動作を検証しました。

ユーザー自身でのパスワード変更と管理者によるリセットの2つのパターンを理解することで、組織のセキュリティポリシーに応じた適切な設定が可能になります。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.