자습서: Enterprise Security Package를 사용하여 HDInsight에서 Apache HBase 정책 구성

ESP(Enterprise Security Package) Apache HBase 클러스터용 Apache Ranger 정책을 구성하는 방법을 알아봅니다. ESP 클러스터는 도메인에 연결되므로 사용자가 도메인 자격 증명을 사용하여 인증할 수 있습니다. 이 자습서에서는 HBase 테이블의 여러 열 패밀리에 대한 액세스를 제한하는 Range 정책 두 개를 만듭니다.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • 도메인 사용자를 만듭니다.
  • Ranger 정책을 만듭니다.
  • HBase 클러스터에서 테이블을 만듭니다.
  • Ranger 정책을 테스트합니다.

시작하기 전에

Apache Ranger 관리 UI에 연결

  1. 브라우저에서 URL https://<ClusterName>.azurehdinsight.net/Ranger/을 사용하여 Ranger Admin UI(사용자 인터페이스)에 연결합니다. <ClusterName>은 HBase 클러스터 이름으로 변경해야 합니다.

    참고 항목

    Ranger 자격 증명은 Hadoop 클러스터 자격 증명과 동일하지 않습니다. 브라우저가 캐시된 Hadoop 자격 증명을 사용하지 않도록 하려면 새 InPrivate 브라우저 창을 사용하여 Ranger 관리 UI에 연결합니다.

  2. Microsoft Entra 관리자 자격 증명을 사용하여 로그인합니다. Microsoft Entra 관리자 자격 증명은 HDInsight 클러스터 자격 증명 또는 Linux HDInsight 노드 SSH(Secure Shell) 자격 증명과 동일하지 않습니다.

도메인 사용자 만들기

sales_user1 만들고 도메인 사용자를 marketing_user1 방법을 알아보려면 Enterprise Security Package를 사용하여 HDInsight 클러스터 만들기를 참조하세요. 프로덕션 시나리오에서는 Active Directory 테 넌트에서 도메인 사용자가 제공됩니다.

HBase 테이블을 만들고 샘플 데이터 가져오기

SSH를 사용하여 HBase 클러스터를 연결하고 Apache HBase 셸을 사용하여 HBase 테이블을 만들고 데이터 및 쿼리 데이터를 삽입할 수 있습니다. 자세한 내용은 HDInsight와 함께 SSH 사용을 참조하세요.

HBase 셸 사용

  1. SSH에서 다음 HBase 명령을 실행합니다.

    hbase shell
    
  2. 두 개의 열 패밀리를 사용하여 HBase 테이블을 Customers 만듭니다. Name Contact

    create 'Customers', 'Name', 'Contact'
    list
    
  3. 일부 데이터 삽입:

    put 'Customers','1001','Name:First','Alice'
    put 'Customers','1001','Name:Last','Johnson'
    put 'Customers','1001','Contact:Phone','333-333-3333'
    put 'Customers','1001','Contact:Address','313 133rd Place'
    put 'Customers','1001','Contact:City','Redmond'
    put 'Customers','1001','Contact:State','WA'
    put 'Customers','1001','Contact:ZipCode','98052'
    put 'Customers','1002','Name:First','Robert'
    put 'Customers','1002','Name:Last','Stevens'
    put 'Customers','1002','Contact:Phone','777-777-7777'
    put 'Customers','1002','Contact:Address','717 177th Ave'
    put 'Customers','1002','Contact:City','Bellevue'
    put 'Customers','1002','Contact:State','WA'
    put 'Customers','1002','Contact:ZipCode','98008'
    
  4. 테이블의 콘텐츠를 봅니다.

    scan 'Customers'
    

    HDInsight Hadoop HBase 셸 출력을 보여 주는 스크린샷

Ranger 정책 만들기

sales_user1marketing_user1 사용자에 대해 Ranger 정책을 만듭니다.

  1. Ranger 관리 UI를 엽니다. HBase에서 ClusterName>_hbase 선택합니다<.

    HDInsight Apache Ranger 관리자 UI를 보여 주는 스크린샷

  2. 정책 목록 화면에는 이 클러스터에 대해 만든 모든 Ranger 정책이 표시됩니다. 미리 구성된 정책 하나가 나열될 수 있습니다. 새 정책 추가를 선택합니다.

    Apache Ranger HBase 정책 목록을 보여 주는 스크린샷

  3. Create Policy 화면에서 다음 값을 입력합니다.

    설정 제안 값
    정책 이름 sales_customers_name_contact
    HBase 테이블 고객
    HBase 열 패밀리 이름, 연락처
    HBase 열 *
    그룹 선택
    사용자 선택 sales_user1
    사용 권한 읽음

    항목 이름에 다음 와일드카드를 포함할 수 있습니다.

    • *는 문자가 0개 이상 나옴을 나타냅니다.
    • ?는 문자 하나를 나타냅니다.

    Apache Ranger 정책 판매 만들기를 보여 주는 스크린샷

    참고 항목

    도메인 사용자가 사용자 선택으로 자동으로 채워지지 않는 경우 Ranger가 Microsoft Entra ID와 동기화될 때까지 잠시 기다립니다.

  4. 추가를 선택하여 정책을 저장합니다.

  5. 새 정책 추가를 선택하고 다음 값을 입력합니다.

    설정 제안 값
    정책 이름 marketing_customers_contact
    HBase 테이블 고객
    HBase 열 패밀리 연락처
    HBase 열 *
    그룹 선택
    사용자 선택 marketing_user1
    사용 권한 읽기

    Apache Ranger 정책 마케팅 만들기를 보여 주는 스크린샷

  6. 추가를 선택하여 정책을 저장합니다.

Ranger 정책 테스트

구성된 Ranger 정책에 따라 sales_user1 열 패밀리와 Contact 열 패밀리의 Name 열에 대한 모든 데이터를 볼 수 있습니다. marketing_user1 열 패밀리에서 Contact 만 데이터를 볼 수 있습니다.

sales_user1로 데이터에 액세스

  1. 클러스터에 대한 새 SSH 연결을 엽니다. 다음 명령을 사용하여 클러스터에 로그인합니다.

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. kinit 명령을 사용하여 원하는 사용자의 컨텍스트로 변경합니다.

    kinit sales_user1
    
  3. HBase 셸을 열고 Customers 테이블을 검사합니다.

    hbase shell
    scan `Customers`
    
  4. 판매 사용자는 테이블의 Customers 모든 열을 볼 수 있습니다. 사용자는 열 패밀리의 두 열 Name 과 열 패밀리의 5개 열을 볼 수 있습니다 Contact .

    ROW                                COLUMN+CELL
     1001                              column=Contact:Address, timestamp=1548894873820, value=313 133rd Place
     1001                              column=Contact:City, timestamp=1548895061523, value=Redmond
     1001                              column=Contact:Phone, timestamp=1548894871759, value=333-333-3333
     1001                              column=Contact:State, timestamp=1548895061613, value=WA
     1001                              column=Contact:ZipCode, timestamp=1548895063111, value=98052
     1001                              column=Name:First, timestamp=1548894871561, value=Alice
     1001                              column=Name:Last, timestamp=1548894871707, value=Johnson
     1002                              column=Contact:Address, timestamp=1548894899174, value=717 177th Ave
     1002                              column=Contact:City, timestamp=1548895103129, value=Bellevue
     1002                              column=Contact:Phone, timestamp=1548894897524, value=777-777-7777
     1002                              column=Contact:State, timestamp=1548895103231, value=WA
     1002                              column=Contact:ZipCode, timestamp=1548895104804, value=98008
     1002                              column=Name:First, timestamp=1548894897419, value=Robert
     1002                              column=Name:Last, timestamp=1548894897487, value=Stevens
    2 row(s) in 0.1000 seconds
    

marketing_user1로 데이터에 액세스

  1. 클러스터에 대한 새 SSH 연결을 엽니다. 다음 명령을 사용하여 marketing_user1로 로그인합니다.

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. kinit 명령을 사용하여 원하는 사용자의 컨텍스트로 변경합니다.

    kinit marketing_user1
    
  3. HBase 셸을 열고 Customers 테이블을 검사합니다.

    hbase shell
    scan `Customers`
    
  4. marketing user는 Contact 열 패밀리의 5개 열만 볼 수 있습니다.

    ROW                                COLUMN+CELL
     1001                              column=Contact:Address, timestamp=1548894873820, value=313 133rd Place
     1001                              column=Contact:City, timestamp=1548895061523, value=Redmond
     1001                              column=Contact:Phone, timestamp=1548894871759, value=333-333-3333
     1001                              column=Contact:State, timestamp=1548895061613, value=WA
     1001                              column=Contact:ZipCode, timestamp=1548895063111, value=98052
     1002                              column=Contact:Address, timestamp=1548894899174, value=717 177th Ave
     1002                              column=Contact:City, timestamp=1548895103129, value=Bellevue
     1002                              column=Contact:Phone, timestamp=1548894897524, value=777-777-7777
     1002                              column=Contact:State, timestamp=1548895103231, value=WA
     1002                              column=Contact:ZipCode, timestamp=1548895104804, value=98008
    2 row(s) in 0.0730 seconds
    
  5. Ranger UI에서 감사 액세스 이벤트를 확인합니다.

    HDInsight Ranger UI 정책 감사를 보여 주는 스크린샷

리소스 정리

이 애플리케이션을 계속 사용하지 않려면 만든 HBase 클러스터를 삭제합니다.

  1. Azure Portal에 로그인합니다.
  2. 위쪽의 검색 상자에 HDInsight를 입력합니다.
  3. 서비스에서 HDInsight 클러스터를 선택합니다.
  4. 표시되는 HDInsight 클러스터 목록에서 이 자습서용으로 만든 클러스터 옆에 있는 ...를 선택합니다.
  5. 삭제>를 선택합니다.

다음 단계