사용자 없는 IAM 그룹

비어 있는 IAM 그룹의 필요성과 권한을 확인하고 불필요한 그룹을 정리하세요.

설명

사용자가 없는 IAM 그룹은 그 자체로 사용자에게 권한을 부여하지 않습니다. 다만 사용하지 않는 그룹과 정책이 남으면 권한 구조가 복잡해지고, 나중에 사용자를 잘못 추가할 때 불필요한 권한을 부여할 수 있습니다.

잠재적 영향

사용하지 않는 권한 구성이 감사와 운영을 어렵게 만들 수 있습니다. 오래된 정책을 확인하지 않고 그룹을 재사용하면 새 구성원에게 과도한 권한이 생길 수 있습니다.

해결 방법

그룹의 소유자와 사용 목적, 연결된 정책을 확인하세요. 필요한 그룹에는 승인된 사용자만 추가하고, 더 이상 필요하지 않은 그룹은 정책과 의존 관계를 검토한 뒤 삭제하세요. 빈 그룹을 채우기 위해 임의로 사용자를 추가하지 마세요.

예시

큐 myqueue와 IsSampleIamUser 조건 선언은 생략했습니다. 큐 정책의 실제 권한도 별도로 검토하세요.

변경 전

yaml
AWSTemplateFormatVersion: "2010-09-09"
Description: A sample template 2
Resources:
  myuseeer:
    Type: AWS::IAM::Group
    Properties:
      Path: "/"
      Policies:
        - PolicyName: giveaccesstoqueueonly
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              - Effect: Allow
                Action:
                  - sqs:*
                Resource:
                  - !GetAtt myqueue.Arn
              - Effect: Deny
                Action:
                  - sqs:*
                NotResource:
                  - !GetAtt myqueue.Arn
  IamUserAdminSample22:
    Type: AWS::IAM::User
    Condition: IsSampleIamUser
    Properties:
      UserName: sample-iam-user-admin

사용자에 그룹 연결이 없어 이 예시의 그룹은 비어 있습니다.

변경 후

yaml
AWSTemplateFormatVersion: "2010-09-09"
Description: A sample template
Resources:
  myuseeer:
    Type: AWS::IAM::Group
    Properties:
      Path: "/"
      Policies:
        - PolicyName: giveaccesstoqueueonly
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              - Effect: Allow
                Action:
                  - sqs:*
                Resource:
                  - !GetAtt myqueue.Arn
              - Effect: Deny
                Action:
                  - sqs:*
                NotResource:
                  - !GetAtt myqueue.Arn
  IamUserAdminSample22:
    Type: AWS::IAM::User
    Condition: IsSampleIamUser
    Properties:
      UserName: sample-iam-user-admin
      Groups:
        - !Ref "myuseeer"

조건이 참이면 사용자를 해당 그룹에 연결합니다. 연결 전에 사용자가 그룹 권한을 필요로 하는지 확인하세요.

참조