자습서: Enterprise Security Package를 사용하여 HDInsight에서 Apache HBase 정책 구성
ESP(Enterprise Security Package) Apache HBase 클러스터용 Apache Ranger 정책을 구성하는 방법을 알아봅니다. ESP 클러스터는 도메인에 연결되므로 사용자가 도메인 자격 증명을 사용하여 인증할 수 있습니다. 이 자습서에서는 HBase 테이블의 여러 열 패밀리에 대한 액세스를 제한하는 Range 정책 두 개를 만듭니다.
이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.
- 도메인 사용자를 만듭니다.
- Ranger 정책을 만듭니다.
- HBase 클러스터에서 테이블을 만듭니다.
- Ranger 정책을 테스트합니다.
시작하기 전에
- Azure 구독이 없는 경우 무료 계정을 만드세요.
- Azure Portal에 로그인합니다.
- Enterprise Security Package를 사용하여 HDInsight HBase 클러스터를 만듭니다.
Apache Ranger 관리 UI에 연결
브라우저에서 URL
https://<ClusterName>.azurehdinsight.net/Ranger/
을 사용하여 Ranger Admin UI(사용자 인터페이스)에 연결합니다.<ClusterName>
은 HBase 클러스터 이름으로 변경해야 합니다.참고 항목
Ranger 자격 증명은 Hadoop 클러스터 자격 증명과 동일하지 않습니다. 브라우저가 캐시된 Hadoop 자격 증명을 사용하지 않도록 하려면 새 InPrivate 브라우저 창을 사용하여 Ranger 관리 UI에 연결합니다.
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 셸 사용
SSH에서 다음 HBase 명령을 실행합니다.
hbase shell
두 개의 열 패밀리를 사용하여 HBase 테이블을
Customers
만듭니다.Name
Contact
create 'Customers', 'Name', 'Contact' list
일부 데이터 삽입:
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'
테이블의 콘텐츠를 봅니다.
scan 'Customers'
Ranger 정책 만들기
sales_user1 및 marketing_user1 사용자에 대해 Ranger 정책을 만듭니다.
Ranger 관리 UI를 엽니다. HBase에서 ClusterName>_hbase 선택합니다<.
정책 목록 화면에는 이 클러스터에 대해 만든 모든 Ranger 정책이 표시됩니다. 미리 구성된 정책 하나가 나열될 수 있습니다. 새 정책 추가를 선택합니다.
Create Policy
화면에서 다음 값을 입력합니다.설정 제안 값 정책 이름 sales_customers_name_contact HBase 테이블 고객 HBase 열 패밀리 이름, 연락처 HBase 열 * 그룹 선택 사용자 선택 sales_user1 사용 권한 읽음 항목 이름에 다음 와일드카드를 포함할 수 있습니다.
*
는 문자가 0개 이상 나옴을 나타냅니다.?
는 문자 하나를 나타냅니다.
참고 항목
도메인 사용자가 사용자 선택으로 자동으로 채워지지 않는 경우 Ranger가 Microsoft Entra ID와 동기화될 때까지 잠시 기다립니다.
추가를 선택하여 정책을 저장합니다.
새 정책 추가를 선택하고 다음 값을 입력합니다.
설정 제안 값 정책 이름 marketing_customers_contact HBase 테이블 고객 HBase 열 패밀리 연락처 HBase 열 * 그룹 선택 사용자 선택 marketing_user1 사용 권한 읽기 추가를 선택하여 정책을 저장합니다.
Ranger 정책 테스트
구성된 Ranger 정책에 따라 sales_user1 열 패밀리와 Contact
열 패밀리의 Name
열에 대한 모든 데이터를 볼 수 있습니다. marketing_user1 열 패밀리에서 Contact
만 데이터를 볼 수 있습니다.
sales_user1로 데이터에 액세스
클러스터에 대한 새 SSH 연결을 엽니다. 다음 명령을 사용하여 클러스터에 로그인합니다.
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
kinit
명령을 사용하여 원하는 사용자의 컨텍스트로 변경합니다.kinit sales_user1
HBase 셸을 열고
Customers
테이블을 검사합니다.hbase shell scan `Customers`
판매 사용자는 테이블의
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로 데이터에 액세스
클러스터에 대한 새 SSH 연결을 엽니다. 다음 명령을 사용하여 marketing_user1로 로그인합니다.
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
kinit
명령을 사용하여 원하는 사용자의 컨텍스트로 변경합니다.kinit marketing_user1
HBase 셸을 열고
Customers
테이블을 검사합니다.hbase shell scan `Customers`
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
Ranger UI에서 감사 액세스 이벤트를 확인합니다.
리소스 정리
이 애플리케이션을 계속 사용하지 않려면 만든 HBase 클러스터를 삭제합니다.
- Azure Portal에 로그인합니다.
- 위쪽의 검색 상자에 HDInsight를 입력합니다.
- 서비스에서 HDInsight 클러스터를 선택합니다.
- 표시되는 HDInsight 클러스터 목록에서 이 자습서용으로 만든 클러스터 옆에 있는 ...를 선택합니다.
- 삭제>예를 선택합니다.