사용자에 직접 연결된 IAM 정책 리소스

IAM 정책 리소스의 사용자 직접 연결을 검토하고 공통 권한을 일관되게 관리하세요.

설명

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

같은 권한을 그룹에 연결합니다. 정책의 작업과 리소스 범위는 그대로입니다.

참조