VPC 환경에서 이용 가능합니다.
Secure Hadoop은 Kerberos와 LDAP 기반의 계정 시스템을 사용합니다. 이 두 인증 시스템은 마스터 노드 2대에 이중화되어 있으며, 엣지 노드를 통해 접근이 가능합니다.
사용자 계정의 추가/변경/삭제 작업은 Kerberos와 LDAP 각각에 대해 별도로 명령어를 실행해야 합니다. 또한, 두 시스템에서 사용자 ID는 반드시 일치해야 하며, keytab 파일은 사용자 인증을 위해 필수입니다.
주의
- Kerberos와 LDAP의 사용자 정보는 Secure Hadoop를 구성하는 중요한 요소입니다.
- 클러스터에 의해 만들어지고 사용되어지는 principal, keytab, ldap 정보의 수정/삭제 시 클러스터가 오동작할 수 있습니다.
- 단, 사용자가 직접 생성한 principal, ldap 정보는 제외입니다.
Kerberos
Kerberos는 마스터 노드에서 접속이 가능합니다.
관리자 쉘에서 principal을 제어하는 방법은 다음과 같습니다.
-
관리자 쉘에 접속해 주십시오.
kadmin.local -
principal을 신규 생성해 주십시오.
# 랜덤 키로 principal 생성 addprinc -randkey user1@USER.GUIDE # 직접 패스워드를 입력하여 principal 생성 addprinc user1@USER.GUIDE -
principal 패스워드를 변경해 주십시오.
change_password user1@USER.GUIDE -
principal keytab 파일을 다운로드해 주십시오.
ktadd -k /tmp/user1.keytab user1@USER.GUIDE -
keytab 파일을 사용해 principal로 로그인해 주십시오.
kinit -kt /tmp/user1.keytab user1@USER.GUIDE -
principal 로그인 상태를 확인해 주십시오.
# 현재 vm에 로그인한 사용자의 principal 정보 klist # 내려받은 keytab의 principal 정보 klist -kt /tmp/user1.keytab -
principal 삭제해 주십시오.
delprinc user1@USER.GUIDE
LDAP
LDAP은 사용자 정보를 저장하고 관리하는 디렉터리 서비스로, Secure Hadoop에서는 Kerberos와 연동하여 인증 및 권한 관리를 수행합니다.
-
사용자를 등록해 주십시오.
# uidNumber`는 중복되지 않는 고유 숫자를 사용하세요. ldif=/tmp/add-account.ldif HASH_USER_PW=$(slappasswd -h "{SSHA}" -s "신규_패스워드") cat <<EOF | tee $ldif dn: uid=계정명,ou=users,dc=USER,dc=GUIDE objectClass: inetOrgPerson objectClass: posixAccount objectClass: top cn: 사용자명 sn: 사용자명 uid: 사용자명 uidNumber: 30001 gidNumber: 30001 homeDirectory: /home/사용자명 loginShell: /bin/bash userPassword: ${HASH_USER_PW} EOF ldapadd \ -H ldap://localhost:389 \ -D "cn=root,dc=USER,dc=GUIDE" \ -w "커버로스_패스워드" \ -f "$ldif" -
사용자를 그룹에 추가해 주십시오.
ldif=/tmp/modify-group.ldif cat <<EOF | tee $ldif dn: cn=그룹명,ou=groups,dc=USER,dc=GUIDE changetype: modify add: memberUid memberUid: 사용자명 EOF ldapmodify \ -H ldap://localhost:389 \ -D "cn=root,dc=USER,dc=GUIDE" \ -w "커버로스_패스워드" \ -f "$ldif" -
사용자를 확인해 주십시오.
ldapsearch \ -H ldap://localhost:389 \ -D "cn=root,dc=USER,dc=GUIDE" \ -w "커버로스_패스워드" \ -b "dc=USER,dc=GUIDE" \ "(uid=사용자명)" -
사용자의 패스워드를 변경해 주십시오.
ldif=/tmp/modify-account.ldif HASH_USER_PW=$(slappasswd -h "{SSHA}" -s "신규_패스워드") cat <<EOF | tee $ldif dn: uid=계정명,ou=users,dc=USER,dc=GUIDE changetype: modify replace: userPassword userPassword: ${HASH_USER_PW} EOF ldapmodify \ -H ldap://localhost:389 \ -D "cn=root,dc=USER,dc=GUIDE" \ -w "커버로스_패스워드" \ -f "$ldif" -
사용자를 삭제해 주십시오.
ldapdelete \ -H ldap://localhost:389 \ -D "cn=root,dc=USER,dc=GUIDE" \ -w "커버로스_패스워드" \ "uid=계정명,ou=users,dc=USER,dc=GUIDE"