説明
IAM ユーザーのアクセスキーは長期的な認証情報です。不要なキーを有効なまま残すと、漏えいや悪用のリスクが増えます。有効であること自体は漏えいを意味しません。また、アクセスキー ID だけでは要求を認証できず、対応するシークレットアクセスキーも必要です。
人のアクセスにはフェデレーションと一時的な認証情報、ワークロードにはロールを優先してください。長期キーが必要な場合は、所有者、用途、利用履歴、権限を管理する必要があります。ルートユーザーのアクセスキーを代わりに使うべきではありません。
想定される影響
- 有効なキーとそのシークレットが漏れると、ユーザーに許可された操作が悪用される可能性があります。
- 未使用キーは管理を複雑にします。一方、依存する処理を確認せずに無効化すると、サービスが中断するおそれがあります。
対処方法
- キーの実際の所有者と利用履歴を確認し、必要な自動処理をロールや一時的な認証情報に移行してください。
- 代替認証を試験してから不要なキーを無効化し、正常動作を確認した後に削除してください。漏えいが疑われる認証情報は交換・失効させ、利用履歴を調査してください。
- 残す必要があるキーは最小権限に制限し、シークレットをリポジトリ、ログ、ソースコードに露出させないでください。
例
現在の 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
同じキーを削除せずに無効化します。依存する処理の正常動作とキーの実際の状態を確認してください。