Secure Hadoop 구성 (옵션)
  • PDF

Secure Hadoop 구성 (옵션)

  • PDF

VPC 환경에서 이용 가능합니다.

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

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

구성

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

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)

인증 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(Key Distribution Center)로 동기화됩니다. 사용자 principal 하나가 실제 사용자 한 명을 나타냅니다. 서비스 principal은 서버마다 서비스별로 다르므로 각 서버의 서비스마다 해당 서비스를 나타내는 고유의 principal이 하나씩 존재합니다.

Keytab 파일

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

Kerberize 사전 작업

  • ambari-sever를 포함해서 클러스터 내 실행 중인 모든 노드에 ambari-agent를 확인해 주십시오.

  • Ambari로 관리되는 모든 노드 (마스터 서버 2대 제외)에 krb5-workstation 패키지가 설치되어 있습니다. 아래 2. Configure KerberosAdvanced kerberos-env 설정 단계에서 반드시 **"Install OS-specific Kerberos client package"**를 체크 해제한 후 Kerberize를 진행해 주십시오.

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

  • Kerberize 작업 시 클러스터 전체 셧다운(shutdown) 작업이 필요합니다. 되도록 Cluster 운영 전에 진행해 주십시오.(권장)

Ambari Kerberize 설정

Kerberos 설정 시작

  1. Ambari UI에 접속한 후 우측 상단에 있는 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가 설치되어 있는 마스터 노드 호스트명(FQDN)을 각각 입력해 주십시오. 다수의 KDC 가 있을 경우 콤마(,) 구분자로 나열합니다.
  • Realm name : Cloud Hadoop 설치 시 콘솔에 설정했던 REALM을 입력해 주십시오.
  • Test KDC Connection : 버튼을 클릭해 접속 여부를 테스트해 주십시오.

Kadmin

  • Kadmin host : KDC 호스트와 동일하게 입력해 주십시오. 두 마스터 중에 한 노드의 호스트명만 입력하면 됩니다. 입력해야 할 마스터 노드의 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 항목을 체크 해제한 후 Kerberize를 진행해 주십시오.

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

  • Encrytion Types 항목을 aes256-cts aes128-cts des3-hmac-sha1 des-cbc-crc로 변경해 주십시오.
  • 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 Client와 Test Kerberos Client가 자동으로 시작됩니다.
화면에 Kerberos service has been installed and tested successfully 메시지가 표시되면 설치가 완료됩니다. 설치가 완료되면 [Next] 버튼을 클릭해 주십시오.

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

4. Configure Identities

서비스 사용자 및 hadoop 서비스들의 principal, keytab 위치를 구성하는 단계입니다.

Ambari wizard에서 자동으로 추가되는 설정 목록을 확인한 후 [Next] 버튼을 클릭해 주십시오.

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

5. Confirm Configuration

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

6. Stop Services

설정 정보 확인이 완료되면 Cluster 전체 셧다운(shutdown) 작업이 자동으로 시작됩니다. 셧 다운 작업이 완료되면 [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 상태 확인

Ambari 우측 상단의 Admin > Kerberos Enabled를 클릭해 상태를 확인해 주십시오.
화면에 Kerberos security is enabled 문구가 표시되어 있으면, Kerberize 작업이 모두 완료된 클러스터입니다.
chadoop-3-7-04_ko.jpg

Kerberize 적용 확인

Kerberize가 적용되어 있는지 확인하기 위해 hadoop service principal을 확인하고, hadoop fs 명령어 실행하여 테스트해 볼 수 습니다.
아래 예시는 Cloud Hadoop 생성 시에 Kerberos 정보를 사용함으로 설정한 것을 전제로 합니다. (ex. REALM : SECURE.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" 명령어를 실행하면 경우 아래와 같이 표시됩니다.
    ncloud 기본 계정으로 hadoop fs 명령어 실행하면 권한 체크 과정 없이 결과값을 확인할 수 있습니다.

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

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

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

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


이 글이 도움이 되었나요?

What's Next