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 1Master 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을 입력해 주십시오.
    • Admin principal : admin/admin을 입력해 주십시오.
    • Save Admin Credentials 체크박스를 선택해 주십시오.
      chadoop-3-7-03-02-01_ko.png
    주의

    Save Admin Credentials 체크박스를 꼭 체크해 주십시오. 체크하지 않을 경우 Cloud Hadoop 서비스 사용에 제약이 발생할 수 있습니다.

    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

    참고

    Admin session expiration error 발생 시, 아래와 같이 입력한 후 [SAVE] 버튼을 클릭해 주십시오.

    • Admin principal : admin/admin
    • Admin password : 클러스터 생성 시 설정한 KDC 관리자 계정 패스워드
    • Save Admin Credentials 체크박스 선택

    에러가 해결되지 않는 경우 KDC 관리자 계정 패스워드를 변경한 이력이 있는지 확인하십시오.

    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" 명령어를 실행하면 경우 아래와 같이 표시됩니다. 다음과 같이 sshuser 기본 계정으로 hadoop fs 명령어를 실행하면 권한 체크 과정 없이 결괏값을 확인할 수 있습니다.

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

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

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

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

    HDFS Log Level 변경

    Hadoop에서는 log4j를 사용하여 다양한 컴포넌트(예: HDFS, YARN, MapReduce 등)에서 발생하는 로그를 관리하고 제어합니다.
    로그 레벨을 조정함으로써 HDFS 작업에 대한 정보를 더 적게 수집하거나, 더 많이 수집할 수 있습니다. 설정할 수 있는 로그 레벨은 총 7단계로 ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF입니다. 레벨에 따라 불필요한 정보까지 로그에 포함되어 용량을 차지할 수 있으므로, 필요에 맞게 적절히 조정해야 합니다.

    HDFS의 audit.log 로그 레벨을 변경하는 방법은 다음과 같습니다.
    chadoop-3-7-06-02

    1. Ambari Web UI > HDFS > Configs > Advanced > Advanced hadoop-env를 선택합니다.
    2. hadoop-env template에서 SHARED_HDFS_NAMENODE_OPTS-Dhdfs.audit.logger 값을 원하는 로그 레벨로 변경합니다.
    3. [SAVE] 버튼을 클릭 후 서비스를 재시작합니다.

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.