説明
AWS::IAM::Policy の Users にユーザーを指定すると、そのユーザーにインラインポリシーを関連付けます。共通の業務権限を個別に関連付けると、変更や取り消しの際に管理が漏れやすくなります。
想定される影響
業務変更後も、個別のユーザーに不要な権限が残るおそれがあります。ポリシーをグループに移しても、許可する操作やリソースは自動的には狭まりません。
対処方法
共通権限を Groups に関連付け、承認済みのメンバーを管理してください。ワークロードには必要な権限を持つロールを優先してください。代わりのアクセスを確認してから直接の関連付けを削除し、例外は定期的に見直してください。
例
TestUser の宣言は省略しており、user_group は既存グループの名前です。オブジェクト ARN を実際の許可範囲に置き換えてください。グループのメンバーは別途管理する必要があります。
変更前
yaml
Resources:
BadPolicy:
Type: AWS::IAM::Policy
Properties:
PolicyName: example-access
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action: s3:GetObject
Resource: arn:aws:s3:::example-bucket/*
Users:
- Ref: TestUser
オブジェクト読み取り権限をユーザーに直接関連付けています。
変更後
yaml
Resources:
BadPolicy:
Type: AWS::IAM::Policy
Properties:
PolicyName: example-access
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action: s3:GetObject
Resource: arn:aws:s3:::example-bucket/*
Groups:
- user_group
同じ権限をグループに関連付けています。ポリシーの操作とリソース範囲は変わりません。