AWS Configルール access-keys-rotatedとiam-user-unused-credentials-checkは、無効化されているアクセスキーもチェック対象です
はじめに
AWS Configのマネージドルールには、以下の2つのルールがあります。
- access-keys-rotated
- iam-user-unused-credentials-check
access-keys-rotated
AWSドキュメントでは以下のように説明されています。
アクティブな IAM アクセスキーが、maxAccessKeyAge で指定された日数内にローテーション (変更) されるかどうかを確認します。アクセスキーが指定した期間内にローテーションされていない場合、ルールは NON_COMPLIANT です。デフォルト値は 90 日です。
Checks if active IAM access keys are rotated (changed) within the number of days specified in maxAccessKeyAge. The rule is NON_COMPLIANT if access keys are not rotated within the specified time period. The default value is 90 days.
iam-user-unused-credentials-check
AWSドキュメントでは以下のように説明されています。
AWS Identity and Access Management (IAM) ユーザーに、指定した日数内に使用されていないパスワードまたはアクティブなアクセスキーがあるかどうかを確認します。最近使用されていない非アクティブアカウントがある場合、ルールは NON_COMPLIANT です。
Checks if your AWS Identity and Access Management (IAM) users have passwords or active access keys that have not been used within the specified number of days you provided. The rule is NON_COMPLIANT if there are inactive accounts not recently used.
ドキュメントには、どちらのルールも「アクティブなアクセスキー(active IAM access keys)」がチェック対象と記載されています。そのため、有効化されているアクセスキーを持つIAMユーザーのみがチェック対象と想定していました。
しかし、実際には無効化されたアクセスキーもチェック対象になります。
つまり、ドキュメントに記載されている「アクティブなアクセスキー」とは、有効化/無効化の状態ではなく、「アクセスキーを持っているかどうか」を指していると考えられます。
実際に検証してみます。
事前に無効化されているアクセスキーを持つIAMユーザー「test1」を用意します。
Configルール作成
以下のAWSマネージドルールを選択し、それぞれConfigルールを作成します。
access-keys-rotated
iam-user-unused-credentials-check
検証結果
作成後、数分すると無効化されているアクセスキーを持つIAMユーザー「test1」が非準拠となりました。
この結果から、無効化されているアクセスキーしか持たないIAMユーザーもチェック対象であることが確認できました。
さいごに
AWSドキュメントでは「アクティブなアクセスキー(active IAM access keys)」と記載されていますが、AWS Configルールのaccess-keys-rotated
とiam-user-unused-credentials-check
は、無効化されているアクセスキーもチェック対象となります。
利用検討する際にはこの点にご注意ください。