Secure Hadoop (on VPC)

목차

Kerberos는 Hadoop 클러스터와 함께 연동되어 사용자 및 서비스에 대한 강력한 인증을 제공하고 있습니다.

이번 페이지에서는 Secure Hadoop 구성을 위해 설치된 인증 시스템 구성에 대해 설명합니다.

클러스터 관리자는 사용자 및 그룹 통합 관리 뿐만 아니라 Kerberos 를 통해 사용자 인증 및 권한 관리까지, Cloud Hadoop 의 세분화된 인증 구성을 할 수 있습니다.

구성

1. Multi-Master 구성

  • 서비스의 연속성을 유지하기 위해 LDAP 과 Kerberos 서비스 이중화 구성이 default 로 기존 Cloud Hadoop 마스터 노드 2대에 설치되어 제공됩니다.

  • 마스터 노드에는 인증 서비스를 위해 slapd, krb5kdc, kadmin 데몬이 구동됩니다.

Master 1 Master 2
LDAP (slapd) LDAP (slapd)
Kerberos (krb5kdc / kadmin) Kerberos (krb5kdc / kadmin)

2. 인증 Workflow

  • Cloud Hadoop은 Kerberos를 통해 인증하도록 설계되어 있습니다. Kerberos와 LDAP 시스템 인증 시스템으로 구성되어있으며, 사용자와 서비스가 시스템에 자신을 증명해야 합니다.

  • 모든 노드의 Hadoop 서비스는 인증에 사용하는 Kerberos principal을 가집니다. 서비스에는 보통 서버에 저장된 keytab 파일이 있으며 여기에 임의의 비밀번호가 포함되어 있습니다. 서비스와 상호작용하기 위해서는 일반적으로 사용자가 kinit 명령어로 Kerberos 티켓을 얻어야 합니다.

  • Kerberos의 principal

    • Kerberos에서는 사용자를 principal이라고 합니다. Hadoop 배포 환경에는 사용자 principal 및 서비스 principal이 존재합니다. 사용자 principal은 일반적으로 KDC(Key Distribution Center)로 동기화됩니다. 사용자 principal 하나가 실제 사용자 한 명을 나타냅니다. 서비스 principal은 서버마다 서비스별로 다르므로 각 서버의 서비스마다 해당 서비스를 나타내는 고유의 principal이 하나씩 존재합니다.
  • Keytab 파일

    • keytab 파일에는 Kerberos principal과 키가 포함되어 있습니다. 대화형 도구를 사용하거나 비밀번호를 입력할 필요 없이 사용자 및 서비스가 keytab을 사용해 Hadoop 서비스를 인증할 수 있습니다. Hadoop에서는 각 노드의 서비스마다 서비스 principal이 생성됩니다. 이러한 principal은 Hadoop 노드의 keytab 파일에 저장됩니다.

Kerberize 사전준비작업

1. krb5-workstation 설치 여부

Ambari 로 관리되는 모든 노드 (마스터 서버 2대 제외) 에 krb5-workstation 패키지가 설치되어 있습니다.
반드시 "Install OS-specific Kerberos client package" 체크 해제 후 Kerberize 진행해주셔야 합니다. 

2. ambari-agent 확인

ambari-server 포함해서 클러스터 내 실행중인 모든 노드에 ambari-agent 를 확인해주세요.  

3. Cluster 전체 shutdown 가능 여부

Kerberize 작업 시 Cluster 전체 shutdown 작업이 필요합니다. 되도록 Cluster 운영 전에 진행하시길 권장드립니다.

Ambari Kerberize 설정하기

1. Ambari 우측 상단에 Admin - Kerberos 버튼 클릭하신 후, Enable Kerberos 초록버튼을 클릭하세요.

2. 경고창이 나오면 PROCEED ANYWAY 버튼 클릭하세요.

3. Enable Kerberos Wizard 단계로 아래 순서를 참고 부탁드립니다.

3-1. Get Started 단계

  • Existing MIT KDC 를 선택 후 하단의 체크박스 3개를 모두 클릭 후 Next 버튼 클릭합니다.

3-2. Configure Kerberos 단계

  • KDC
    • KDC hosts : KDC가 설치되어있는 마스터 노드 호스트명(FQDN)을 각각 기입하세요. 다수의 KDC 가 있을 경우 콤마(,) 구분자로 나열합니다.
  • Realm name : Cloud Hadoop 설치 시 콘솔에 설정했던 REALM 을 기입하세요.
    • Test KDC Connection : 해당 버튼을 클릭해서 접속여부를 테스트합니다.
  • Kadmin
    • Kadmin host : Kadmin 호스트명은 KDC 호스트와 동일합니다. 두 마스터 중에 한 노드의 호스트명만 입력하면 됩니다.
    • 입력해야할 마스터 노드의 FQDN 이 헷갈린다면 마스터 노드에서 kadmin -p admin/admin -q "listprincs" 을 실행해봅니다. kadmin/FQDN@REALM 을 찾고 여기에 기록된 FQDN 을 입력하면 됩니다.
  • Advanced kerberos-env
    • "Install OS-specific Kerberos client package" 체크 해제 후 Kerberize 진행해주셔야 합니다.
    • Encrytion Types 항목에 aes256-cts aes128-cts 로 변경합니다.
    • Principal Attributes 항목에 +requires_preauth 추가합니다.
  • Advanced krb5.conf
    • Cloud Hadoop 생성 시에 커버러스 정보를 사용하도록 설정한 경우에는 꼭 "Manage Kerberos client krb5.conf" 체크박스를 해제해주세요.
    • 위 설정 작업이 모두 완료되면, Next 버튼을 클릭하세요.

3-3. Install and Test Kerberos Client 단계

  • Install Kerberos Client, Test Kerberos Client 가 자동으로 시작됩니다.
  • "Kerberos service has been installed and tested successfully" 나오면 설치가 완료됩니다. Next 버튼을 클릭하세요.

3-4. Configure Identities 단계

  • 서비스 사용자 및 hadoop 서비스들의 principal, keytab 위치를 구성하는 단계입니다.
  • Ambari wizard 에서 자동으로 추가하는 설정 목록으로 Next 버튼을 클릭하세요.

3-5. Confirm Configuration 단계

  • 설정 확인 단계입니다. 설정 정보를 확인 후 Next 버튼을 클릭하세요.

3-6. Stop Services 단계

  • Cluster 전체 shutdown 작업이 자동으로 시작됩니다. 완료 시 Next 버튼을 클릭하세요.

3-7. Kerberize Cluster 단계

  • 총 7단계가 순차적으로 진행됩니다. 완료 시 Next 버튼을 클릭하세요.

3-8. Start and Test Services 단계

  • Hadoop 서비스 구동 및 확인 단계로 완료 후 Complete 버튼을 클릭하세요.

4. Ambari 우측 상단에 Admin - Kerberos Enabled 상태를 확인할 수 있습니다.

"Kerberos security is enabled" 문구가 노출되어 있으면, Kerberize 작업이 모두 완료된 클러스터입니다.

Kerberize 적용 확인하기

Kerberize 적용 유무를 확인하기 위해 hadoop service principal을 확인하고 간단한 hadoop fs 명령어 테스트를 진행하는 단계입니다.

하기 테스트는 Cloud Hadoop 생성 시에 커버러스 정보를 사용한다는 설정을 전제로 진행하였습니다. (ex. REALM : SECURE.COM)

Ambari 에서 Kerberize 작업이 적용되지 않은 경우, 마스터 노드에서 kadmin -p admin/admin -q "listprincs" 을 실행 한 경우 아래와 같습니다. ncloud 기본 계정으로 hadoop fs 명령어 실행 시 권한 체크 과정 없이 결과값을 확인할 수 있습니다.

Ambari Kerberize 설정하기 작업 완료 후 kadmin -p admin/admin -q "listprincs" 을 실행해봅니다.

Hadoop Service principal 이 생성된 것을 확인 할 수 있고, hadoop fs 명령어 실행 시 오류가 발생합니다.

kinit 으로 admin계정 티켓 획득 후 hadoop fs 명령어 실행 시 결과값이 정상적으로 노출되며, kdestroy 로 티켓 삭제 이후에 hadoop fs 명령어 실행 시 오류가 발생함을 확인할 수 있습니다.

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...