[Kubernetes] Rancher와 Active Directory 인증
Active Directory를 이용한 인증
Rancher로 구성한 클러스터에 Workload를 배포해보자
준비물
- Rancher v2.4.9
- Rancher에서 구성한 Kubernetes Cluster
- Active Directory
- 관리자가 아닌 read-only 권한을 가진 유저
- Rancher Container 외부 통신 확인
- 공식 문서 : 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에 추가하여 해결할 수 있을 것 같다.
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
참조
여기저기 잘 참조하자