説明
IAM の Allow ステートメントに Action: "*" と Resource: "*" を指定すると、全操作と全リソースを対象とする広範な権限を表します。実際の権限は、ポリシーの関連付け、デフォルトバージョン、条件、明示的な拒否、アクセス許可の境界などによって変わります。
業務に不要な権限を削除してください。ポリシーを複数のステートメントに分けるだけでは、権限範囲は縮小されません。
想定される影響
- 広い権限が実際に適用されると、認証情報の窃取や悪用によるデータ変更・削除、リソース管理への影響が大きくなるおそれがあります。
- デフォルト以外のバージョンだけを変更すると、既存の権限が残ります。デフォルトの変更は関連付けたすべての主体に影響します。
対処方法
- 関連付けたユーザー、グループ、ロールとデフォルトバージョンを確認してください。必要な操作だけを指定し、対応する場合はリソース ARN と条件で範囲を制限してください。
- 権限の利用履歴と他のポリシーを確認し、不要な読み取り、書き込み、管理操作を削除してください。
- 確認済みのバージョンを意図したデフォルトとして適用し、必要な操作が成功し、不要な操作が拒否されることを試験してください。
例
ポリシーの関連付けは省略しています。Version: "2012-10-17" はポリシー言語のバージョンです。既存ポリシーで make_default: false により作成したバージョンは自動でデフォルトになりませんが、新規ポリシーの最初のバージョンはデフォルトになります。
変更前
yaml
- name: IAM Managed Policy 생성
community.aws.iam_managed_policy:
policy_name: ManagedPolicy
policy:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- "*"
Resource: "*"
make_default: false
state: present
全リソースへの全操作を許可するステートメントです。実際に適用されるポリシーと権限制限も確認してください。
変更後
yaml
- name: IAM Managed Policy 생성
community.aws.iam_managed_policy:
policy_name: ManagedPolicy
policy:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action: logs:CreateLogGroup
Resource: "*"
make_default: false
state: present
このステートメントの操作はロググループ作成に絞られていますが、リソース範囲は依然として広い状態です。必要なロググループ ARN に制限し、確認済みのポリシーバージョンを適用してください。