コンソールパスワードとアクセスキーを両方持つ IAM ユーザーに対して AWS Config ルール「iam-user-unused-credentials」と SSM オートメーション「AWSConfigRemediation-RevokeUnusedIAMUserCredentials」を試してみた

コンソールパスワードとアクセスキーを両方持つ IAM ユーザーに対して AWS Config ルール「iam-user-unused-credentials」と SSM オートメーション「AWSConfigRemediation-RevokeUnusedIAMUserCredentials」を試してみた

Clock Icon2024.07.14

以前に、AWS Config ルールと Systems Manager オートメーションを組み合わせて、指定した日数利用されていない IAM ユーザーのコンソールパスワードとアクセスキーを無効化する仕組みを試してみました。

その際に、コンソールパスワードとアクセスキーを両方持つ IAM ユーザーに対して AWS Config マネージドルール「iam-user-unused-credentials」と SSM オートメーション「AWSConfigRemediation-RevokeUnusedIAMUserCredentials」がどのような動作になるのか気になったため試してみました。

https://dev.classmethod.jp/articles/automation-revoke-unused-iam-user-credentials/

確認結果まとめ

コンソールパスワードとアクセスキーを両方持つ IAM ユーザーに対して AWS 管理のマネージドルール「iam-user-unused-credentials」と AWS 管理の SSM オートメーション「AWSConfigRemediation-RevokeUnusedIAMUserCredentials」を実行した結果は次の通りでした。

マネージドルール「iam-user-unused-credentials」の評価結果は、コンソールパスワードとアクセスキーのどちら一方が指定した日数を超えていた場合に非準拠となる。つまり、コンソールパスワードとアクセスキーが両方とも指定した日数以内に利用していた場合に準拠となる。

SSM オートメーション「AWSConfigRemediation-RevokeUnusedIAMUserCredentials」の実行結果は、コンソールパスワードとアクセスキーはそれぞれ独立して指定した日数未利用の場合に無効化される。つまり、コンソールパスワードだけ指定した日数未利用であり、アクセスキーが指定した日数内に利用していた場合は、コンソールパスワードだけ無効化される。

Config ルールと自動修復の実行

今回の検証では次の IAM ユーザー一覧に対して、以前に執筆下記ブログと同じ設定をして確認してみました。

https://dev.classmethod.jp/articles/automation-revoke-unused-iam-user-credentials/

テスト用の IAM ユーザー一覧です。

ユーザー名 最後にマネジメントコンソールにサインインした時刻 最後にアクセスキーを利用した時刻
test-user-01 24 時間以内 24 時間以内
test-user-02 24 時間以内 6 日前
test-user-03 6 日前 24 時間以内
test-user-04 6 日前 6 日前

マネジメントコンソール上のテスト用 IAM ユーザー一覧です。

automation-revoke-unused-iam-user-credentials-with-console-password-and-access-key-1

AWS Config ルールのマネージドルール名「iam-user-unused-credentials」を適用した結果です。パラメータ「maxCredentialUsageAge」は 5 を指定しています。コンソールパスワードとアクセスキーのいずれかが 5 日を超えて未利用の場合に非準拠となることが分かりました。

ユーザー名 最後にマネジメントコンソールにサインインした時刻 最後にアクセスキーを利用した時刻 AWS Config ルールの評価結果
test-user-01 24 時間以内 24 時間以内 準拠
test-user-02 24 時間以内 6 日前 非準拠
test-user-03 6 日前 24 時間以内 非準拠
test-user-04 6 日前 6 日前 非準拠

AWS Config ルールの評価結果の画面です。

automation-revoke-unused-iam-user-credentials-with-console-password-and-access-key-2

次に、オートメーション「AWSConfigRemediation-RevokeUnusedIAMUserCredentials」の実行結果です。コンソールパスワードとアクセスキーはそれぞれ独立して 5 日を超えて未利用の場合に削除されていることが分かりました。

ユーザー名 最後にマネジメントコンソールにサインインした時刻 最後にアクセスキーを利用した時刻 オートメーションの実行結果 - コンソールパスワード オートメーションの実行結果 - アクセスキー
test-user-01 24 時間以内 24 時間以内 有効のまま 有効のまま
test-user-02 24 時間以内 6 日前 有効のまま 無効化
test-user-03 6 日前 24 時間以内 無効化 有効のまま
test-user-04 6 日前 6 日前 無効化 無効化

IAM ユーザー一覧の画像です。次の結果が分かります。

  • test-user-03, test-uesr-04 からはコンソールパスワードが無効化
  • test-user-02, test-uesr-04 からはアクセスキーが無効化

automation-revoke-unused-iam-user-credentials-with-console-password-and-access-key-4

なお、アクセスキーは削除ではなく、無効化状態となります。

下記画像はコンソールパスワードとアクセスーの両方が無効化された test-user-04 のセキュリティ認証情報の設定画面です。アクセスキーは削除されていないことが分かります。

automation-revoke-unused-iam-user-credentials-with-console-password-and-access-key-5

以上で、確認は終わりです。

さいごに

コンソールパスワードとアクセスキーを両方持つ IAM ユーザーに対して、AWS Config マネージドルール「iam-user-unused-credentials」と SSM オートメーション「AWSConfigRemediation-RevokeUnusedIAMUserCredentials」を試してみました。コンソールパスワードとアクセスキーがそれぞれ指定した日数以内に利用していた場合と利用していなかった場合の組み合わせ 4 パターンで試しました。コンソールパスワードだけ未利用のときに、アクセスキーも一緒に無効化されないか気になっていたため、そのような動作にならないことが分かりました。

以上、このブログがどなたかのご参考になれば幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.