설명
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
같은 권한을 그룹에 연결합니다. 정책의 작업과 리소스 범위는 그대로입니다.