Secure Hadoop 구성 (옵션)
  • PDF

Secure Hadoop 구성 (옵션)

  • PDF

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

이 가이드에서는 Secure Hadoop 구성을 위해 Cloud Hadoop에 설치된 인증 시스템을 구성하는 방법에 대해 설명합니다.

구성

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

Multi-Master 구성

  • 서비스의 연속성을 유지하기 위해 LDAP과 Kerberos 서비스 이중화 구성이 기본값으로 Cloud Hadoop 마스터 노드 2대에 설치되어 제공됩니다.
  • 마스터 노드에는 인증 서비스를 위해 slapd, krb5kdc, kadmin 데몬이 구동됩니다.
Master 1 Master 2
LDAP (slapd) LDAP (slapd)
Kerberos (krb5kdc / kadmin) Kerberos (krb5kdc / kadmin)

인증 Workflow

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

chadoop-3-7-00_ko.png

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

Kerberos의 principal

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

키탭 파일

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

Kerberize 사전 작업

  • ambari-server를 포함해서 클러스터 내 실행 중인 모든 노드에 ambari-agent를 확인해 주십시오.
  • Ambari로 관리되는 모든 노드 (마스터 서버 2대 제외)에 krb5-workstation 패키지가 설치되어 있습니다. 아래 2. Configure KerberosAdvanced kerberos-env 설정 단계에서 반드시 "Install OS-specific Kerberos client package(s)" 를 체크 해제한 후 Kerberize를 진행해 주십시오.
    chadoop-3-7-03-02-0_ko.png
  • Kerberize 작업 시 클러스터 전체 셧다운(shutdown) 작업이 필요합니다. 되도록 클러스터 운영 전에 진행해 주십시오.(권장)

Ambari Kerberize 설정

Kerberos 설정 시작

  1. Ambari UI에 접속한 후 우측 상단에 있는 Cluster Admin > Kerberos를 차례대로 클릭해 주십시오.

  2. [ENABLE KERBEROS] 버튼을 클릭해 주십시오.
    chadoop-3-7-02-01_ko.png

  3. 경고 팝업창에서 내용을 확인한 후 [PROCEED ANYWAY] 버튼을 클릭해 주십시오.
    chadoop-3-7-02-02_ko.png

Kerberos 설정 마법사

1. Get Started

What type of KDC do you plan on using? 항목에서 Existing MIT KDC를 선택해 주십시오. 다음과 같이 하단의 체크박스 3개를 모두 선택한 후 [Next] 버튼을 클릭해 주십시오.
chadoop-3-7-03-01_ko.png

2. Configure Kerberos

  1. 다음의 각 항목을 설정한 후 [Next] 버튼을 클릭해 주십시오.

KDC

  • KDC hosts : KDC가 설치되어 있는 2대의 마스터 노드 호스트명(FQDN)을 쉼표(,) 구분자를 사용하여 작성해 주십시오.
  • Realm name: Cloud Hadoop 설치 시 콘솔에 설정했던 Realm을 입력해 주십시오.
  • Test KDC Connection: 버튼을 클릭해 접속 여부를 테스트해 주십시오.

Kadmin

  • Kadmin host : 1개의 마스터 노드 호스트명(FQDN) 만 입력하면 됩니다. 입력해야 할 마스터 노드의 FQDN이 헷갈린다면 마스터 노드에서 kadmin -p admin/admin -q "listprincs"을 입력 후, kadmin/FQDN@REALM의 FQDN을 입력해 주십시오.

chadoop-3-7-03-02_ko.png

Advanced kerberos-env

  • Install OS-specific Kerberos client package(s) 항목을 체크 해제한 후 Kerberize를 진행해 주십시오.
    chadoop-3-7-03-02-0_ko.png
  • Encrytion Types 항목을 aes256-cts aes128-cts로 변경해 주십시오.
  • Principal Attributes 항목에 +requires_preauth를 추가해 주십시오.
    chadoop-3-7-03-02-1_ko.png

Advanced krb5.conf

  • Cloud Hadoop 생성 시에 Kerberos 정보를 사용하도록 설정한 경우에는 꼭 Manage Kerberos client krb5.conf 체크박스를 해제해 주십시오.
    chadoop-3-7-03-02-2_ko.png

3. Install and Test Kerberos Client

위 Kerberos 구성 작업이 완료되면 Install Kerberos ClientTest Kerberos Client가 자동으로 시작됩니다.
화면에 Kerberos service has been installed and tested successfully 메시지가 표시되면 설치가 완료됩니다. 설치가 완료되면 [Next] 버튼을 클릭해 주십시오.
chadoop-3-7-03-03_ko.png

4. Configure Identities

서비스 사용자 및 Hadoop 서비스들의 principal, 키탭 위치를 구성하는 단계입니다.
Ambari Wizard에서 자동으로 추가되는 설정 목록을 확인한 후 [Next] 버튼을 클릭해 주십시오.
chadoop-3-7-03-04_ko.png

5. Confirm Configuration

설정 정보를 확인 후 [Next] 버튼을 클릭해 주십시오.
chadoop-3-7-03-05_ko.png

6. Stop Services

설정 정보 확인이 완료되면 클러스터 셧다운 작업이 자동으로 시작됩니다. 셧다운 작업이 완료되면 [Next] 버튼을 클릭해 주십시오.
chadoop-3-7-03-06_ko.png

7. Kerberize Cluster

총 7단계가 순차적으로 진행됩니다. 완료 시 [Next] 버튼을 클릭해 주십시오.
chadoop-3-7-03-07_ko.png

8. Start and Test Services

Hadoop 서비스 구동 및 확인 단계입니다. 완료 시 [Complete] 버튼을 클릭해 주십시오.
chadoop-3-7-03-08_ko.png

9. Admin - Kerberos Enabled 상태 확인

화면에 Kerberos security is enabled 문구가 표시되어 있으면, Kerberize 작업이 모두 완료된 클러스터입니다.
chadoop-3-7-04-1_ko.png

Kerberize 적용 확인

Kerberize가 적용되어 있는지 확인하기 위해 Hadoop service principal을 확인하고, hadoop fs 명령어 실행하여 테스트해 볼 수 있습니다.
아래 예시는 Cloud Hadoop 생성 시에 Kerberos 정보를 사용함으로 설정한 것을 전제로 합니다. (ex. Realm : NAVERCORP.COM)

  1. Ambari Kerberize 설정 작업을 완료한 후 kadmin -p admin/admin -q "listprincs" 명령어를 사용하여 실행해 주십시오.

    • Hadoop service principal이 생성된 것을 확인할 수 있고, hadoop fs 명령어 실행 시 오류가 발생합니다.
      chadoop-3-7-05-02_ko.png
    참고

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

    chadoop-3-7-05-01_ko.png

  2. kinit 명령어를 사용하여 admin 계정 티켓을 획득한 후 다시 hadoop fs 명령어 실행해 주십시오.

    • 결괏값이 정상적으로 표시됩니다.
    • kdestroy 명령어로 티켓을 삭제한 후 다시 hadoop fs 명령어 실행 시 오류가 발생함을 확인할 수 있습니다.

    chadoop-3-7-05-03_ko.png


이 글이 도움이 되었나요?