[Kubernetes] Rancher와 Active Directory 인증

Active Directory를 이용한 인증

Rancher로 구성한 클러스터에 Workload를 배포해보자

준비물

  1. Rancher v2.4.9
  2. Rancher에서 구성한 Kubernetes Cluster
  3. Active Directory
  4. 관리자가 아닌 read-only 권한을 가진 유저
  5. Rancher Container 외부 통신 확인
  6. 공식 문서 : https://ranchermanager.docs.rancher.com/v2.5/how-to-guides/advanced-user-guides/authentication-permissions-and-global-configuration/about-authentication/authentication-config/configure-active-directory#prerequisites

요약

  • Active Directory에서 Rancher용 그룹과 리드권한을 가진 유저를 생성하고,
  • Rancher 내부의 인증 쪽에서 연결하려는 Active Directory 설정을 걸자

1. Rancher Container 외부 통신 확인

rancher와 active directory 통신이 이루어져야 한다. rancher 설치 후 다음과 같은 로그가 뜨고 있으면 컨테이너 내부 통신은 이루어지고 있지만 호스트 밖으로 통신은 이루어지지 않고 있을 확률이 높다

...
dial tcp: lookup git.rancher.io on [DNSIP]:53: read udp 172.172.0.2:52077->[DNSIP]:53: i/o timeout
...

내 문제 : firewalld 꺼둠

기본 인터페이스인 docker0에 대한 trust를 firewalld가 해주는데(정책에 대한 공부 필요) 다른 세팅을 하며 firwalld를 내려뒀더니 호스트 밖으로 통신이 되지 않았다.

내 경우는 firewalld를 시작하여 해결하였으며, 종종 docker0가 trusted-zone에 포함되어 있지 않은 경우에는 trusted-zone에 추가하여 해결할 수 있을 것 같다.

https://mkblog.co.kr/linux-docker-docker-image-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%9D%B8%ED%84%B0%EB%84%B7-%EC%A0%91%EC%86%8D-%EB%AC%B8%EC%A0%9C/

2. AD 그룹과 유저 생성

잘하자

3. Rancher에서 연결

위치

  • Rancher의 Global > Security > Authentication에서 Active Directory를 선택

설정

설정은 크게 세 부분으로 구성된다.

  • General : Active Directory 서버 설정
  • Users : 인증하려는 유저에 대한 설정
  • Group : 인증하려는 그룹에 대한 설정

연결용 아이디

  • 관리자만 아니면 크게 상관없는 것 같다.
  • Read-only user를 생성하자.

General

보고 잘 치면 됨.

Users

rancher에 접근하려는 유저 정보. 보고 잘 치면 됨.

Groups

  • rancher에 접근 가능한 유저군을 그룹으로 묶기 위하여 그룹을 생성하고 해당 그룹에 유저들을 추가하자
  • 생성한 그룹에 대한 정보를 rancher 내부에 작성한다

연결

주요 용어?

cn - canonical name ou - organization unit dc - domain controller

참조

여기저기 잘 참조하자