IAM ユーザーの有効なアクセスキーの確認

不要な IAM ユーザーのアクセスキーを整理し、可能な場合は一時的な認証情報に切り替えてください。

説明

IAM ユーザーのアクセスキーは長期的な認証情報です。不要なキーを有効なまま残すと、漏えいや悪用のリスクが増えます。有効であること自体は漏えいを意味しません。また、アクセスキー ID だけでは要求を認証できず、対応するシークレットアクセスキーも必要です。

人のアクセスにはフェデレーションと一時的な認証情報、ワークロードにはロールを優先してください。長期キーが必要な場合は、所有者、用途、利用履歴、権限を管理する必要があります。ルートユーザーのアクセスキーを代わりに使うべきではありません。

想定される影響

  • 有効なキーとそのシークレットが漏れると、ユーザーに許可された操作が悪用される可能性があります。
  • 未使用キーは管理を複雑にします。一方、依存する処理を確認せずに無効化すると、サービスが中断するおそれがあります。

対処方法

  1. キーの実際の所有者と利用履歴を確認し、必要な自動処理をロールや一時的な認証情報に移行してください。
  2. 代替認証を試験してから不要なキーを無効化し、正常動作を確認した後に削除してください。漏えいが疑われる認証情報は交換・失効させ、利用履歴を調査してください。
  3. 残す必要があるキーは最小権限に制限し、シークレットをリポジトリ、ログ、ソースコードに露出させないでください。

例

現在の IAM ユーザーアクセスキーモジュールで、同じキーの状態を変更する例です。変数には実際の IAM ユーザーとそのユーザーに属するキー ID を指定し、モジュール実行用の AWS 認証を別途構成してください。

変更前

yaml
- name: Enable a selected IAM user access key
  amazon.aws.iam_access_key:
    user_name: "{{ iam_user_name }}"
    id: "{{ access_key_id }}"
    state: present
    active: true

指定したキーを有効にします。業務上必要なキーか確認してください。

変更後

yaml
- name: Disable a selected IAM user access key
  amazon.aws.iam_access_key:
    user_name: "{{ iam_user_name }}"
    id: "{{ access_key_id }}"
    state: present
    active: false

同じキーを削除せずに無効化します。依存する処理の正常動作とキーの実際の状態を確認してください。

参考資料