説明
Effect: Allow、Action: "*"、Resource: "*"の組み合わせは、非常に広い権限を与える可能性があります。実際の権限には関連付け先、条件、アクセス許可の境界、明示的な拒否なども影響します。必要な操作とリソースを確認し、不要な権限を削除してください。
想定される影響
関連付けられたユーザーやロールが侵害されると、広い権限でリソースを読み取り、変更、削除される可能性があります。影響は実際に有効な権限全体によって異なります。
対処方法
- 必要なAPIと対応するリソースARNに限定してください。リソース単位の制限に対応しない必要な操作は分け、使用できる条件を検討してください。
- 関連付けたポリシーと利用履歴を確認し、変更後に必要な操作が成功し、不要な操作が拒否されることをテストしてください。
例
同じ既存ロールに関連付けるポリシーの構成案です。ApplicationRoleNameには実際のロール名を、変更後のQueueArnには処理が必要なキューのARNを指定してください。
変更前
yaml
Parameters:
ApplicationRoleName:
Type: String
Resources:
mypolicy:
Type: AWS::IAM::Policy
Properties:
PolicyName: mygrouppolicy
Roles:
- !Ref ApplicationRoleName
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action: ["*"]
Resource: "*"
すべての操作とリソースを許可します。ロールに必要な範囲を超えていないか確認してください。
変更後
yaml
Parameters:
ApplicationRoleName:
Type: String
QueueArn:
Type: String
Resources:
mypolicy:
Type: AWS::IAM::Policy
Properties:
PolicyName: mygrouppolicy
Roles:
- !Ref ApplicationRoleName
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- sqs:ReceiveMessage
- sqs:DeleteMessage
Resource: !Ref QueueArn
このステートメントは、指定したキューのメッセージ受信・削除だけを許可します。クライアントにほかのAPIが必要なら個別に確認し、ほかのポリシーによる権限も確認してください。