説明
AWSアカウントのルートアクセスキーは非常に強い権限を持つため、作成・保持しないでください。自動処理には最小権限ロールの一時的な認証情報を優先してください。
CloudFormationのAWS::IAM::AccessKeyにおけるUserNameはIAMユーザー名です。RootというIAMユーザーもアカウントのルートユーザーではなく、名前だけで権限は決まりません。実際の所有者、キーの状態、関連付けたポリシーを確認してください。
想定される影響
- 実際のルートキーが漏えいすると、アカウントのデータ、リソース、セキュリティ設定に広範な被害が及ぶ可能性があります。
- 通常のIAMユーザーのキーも、有効な間はそのユーザーに許可された操作に悪用される可能性があります。
対処方法
- 長期キーに依存する自動処理を確認し、最小権限ロールの一時的な認証情報へ移行してください。
- 不要なキーの利用先を確認して無効化し、正常動作を検証してから削除してください。露出したルートキーは速やかに失効させ、アカウントの操作履歴を調査してください。
- ルートアカウントを保護しMFAを維持してください。ただし、MFAによって漏えいした長期アクセスキーが自動的に無効になるわけではありません。
例
以下はRootという既存IAMユーザーのキーの例です。アカウントのルートキーを作成・管理する例ではありません。実際のユーザーとキーを確認してから変更してください。
変更前
yaml
Resources:
CFNKeys:
Type: AWS::IAM::AccessKey
Properties:
UserName: Root
Statusを省略した新しいキーは既定で有効になります。Rootという名前でも、そのIAMユーザーのポリシーによって権限が決まります。
変更後
yaml
Resources:
CFNKeys:
Type: AWS::IAM::AccessKey
Properties:
UserName: Root
Status: Inactive
同じIAMユーザーのキーを無効にします。ユーザー名を変えるだけの対応と異なり、このキーによるAPI利用を停止します。利用先の移行後は不要なキーを削除してください。