CDP 7.13.1 에서 AD 그룹 group-a 에 test01 사용자가 들어 있고 Ranger 정책도 group-a 에 부여했는데 test01 의 접근이 거부된다. Ranger UI 에서는 그룹 안에 사용자가 보이고, 사용자 상세에도 그룹이 보인다. 사용자로 직접 정책을 주면 동작한다.
Ranger 플러그인은 정책 평가 시 사용자의 그룹 목록을 Ranger UI 가 아니라 Hadoop 쪽 그룹 매핑(hadoop.security.group.mapping)에서 얻는다. 기본값인 ShellBasedUnixGroupsMapping 은 OS 에 id <user> 를 물어보므로, OS 가 AD 사용자를 인식하지 못하면 그룹이 비어 정책이 매칭되지 않는다. 사용자 단위 정책은 이름만 비교하므로 동작한다.
노드별로 상태가 달랐다.
| 항목 | 정상 노드 | 문제 노드 |
|---|---|---|
id_provider |
ad |
ldap |
| 도메인 조인 | realm join 으로 가입 (realmd_tags 존재) |
미가입, 수동 LDAP 설정 |
| 바인드 인증 | 조인 시 만들어진 keytab 자동 사용 | 바인드 수단 없음 → offline |
id_provider = ad 는 LDAP 조회 · Kerberos 인증 · 바인드를 한 번에 처리하지만, id_provider = ldap 로 수동 구성하면서 바인드 자격증명을 넣지 않아 SSSD 가 offline 으로 떨어져 있었다.
아래 명령은 모두 조회만 하므로 기존 서비스에 영향이 없다.
# 1) OS 가 AD 사용자를 보는가 — "no such user" 면 여기가 원인
id test01
getent passwd test01
getent group group-a
# 2) SSSD 상태와 도메인 연결
systemctl status sssd
sssctl domain-status <domain>
grep -E '^(id_provider|auth_provider|ldap_uri|realmd_tags)' /etc/sssd/sssd.conf
# 3) nsswitch 가 sss 를 보는지
grep -E '^(passwd|group)' /etc/nsswitch.conf # files sss systemd
# 4) Hadoop 이 쓰는 그룹 매핑 구현체
grep -A1 'group.mapping' /etc/hadoop/conf/core-site.xml
# 5) Hadoop 이 실제로 보는 그룹
hdfs groups test01
hdfs groups 결과가 비어 있고 id 도 실패하면 OS 레벨 문제로 확정된다.
문제 노드도 정상 노드와 같이 AD 도메인에 가입시키는 것이 가장 확실하다. realm join 은 AD 가입 권한이 있는 계정이 필요하므로 인프라 · AD 담당자가 수행한다.
realm join --user=<ad-admin> EXAMPLE.COM
realm list
id test01
도메인 가입이 불가능하면 /etc/sssd/sssd.conf 의 ldap provider 에 바인드 DN 과 비밀번호(ldap_default_bind_dn, ldap_default_authtok)를 넣어 online 으로 만들고 sss_cache -E 후 SSSD 를 재시작한다. 대안으로 Hadoop 의 그룹 매핑을 LdapGroupsMapping 으로 바꿔 OS 를 거치지 않고 AD 를 직접 조회하게 할 수도 있으나, CM 에서 해당 설정 항목이 노출되지 않는 버전도 있어 core-site 안전 밸브로 넣어야 한다.