OPS

DevOps 스터디 - 보안을 위한 인증과 인가 - ServiceAccount와 RBAC #3 (심화)

찻잔속청개구리 2025. 5. 11. 15:11
반응형

OS 계정별 Role 분리

역할(Role) 구성

  • Bastion Role
    • 기본 EC2 Role.
    • Assume Role 정책 추가:
      • k8sread-role
      • wasadm-role
  • Admin Role
    • EKS 전체 권한.
    • Assume Role 설정:
      • Bastion Role로부터 신뢰 관계 구성.
  • Read Only Role
    • EKS 조회 전용 권한.
    • Bastion Role로부터 신뢰 관계 구성.

정책 및 역할 세부 설정

  1. IAM Role 정책
    • Admin Role 정책:
      • eks:*, ecr:*, sts:* 등 전체 관리 권한 포함.
    • Read Only Role 정책:
      • eks:DescribeCluster, eks:ListClusters 등 읽기 전용 권한만 포함.
  2. EKS RBAC 설정
    • Admin Role: Kubernetes 내 모든 권한 부여 (system:masters).
    • Read Only Role:
      • view-only ClusterRole 생성 및 ClusterRoleBinding 추가.
      • 읽기 전용 권한만 부여 (get, list, watch).
  3. aws-auth ConfigMap 수정
    • IAM Role과 Kubernetes Group을 매핑:
      • Admin Role → system:masters
      • Read Only Role → k8sread

Bastion 서버 계정별 Role 설정

  1. OS 계정과 Role 매핑
    • wasadm → wasadm-role
    • k8sread → k8sread-role
  2. .bashrc 구성
    • Assume Role 명령어를 통해 임시 자격 증명 생성 및 환경 변수 설정.
    • 토큰 만료 시간 관리 포함.

테스트 결과

  1. wasadm 계정
    • 모든 Kubernetes 리소스 호출, 수정 가능.
    • Ex) kubectl edit cm aws-auth 성공.
  2. k8sread 계정
    • 호출은 가능하지만 수정 권한은 제한됨.
    • Ex) kubectl edit cm aws-auth 시 권한 에러 발생.

 

상세내용: 노션 참고

반응형