애플리케이션/미들웨어 보안 관리

완료됨

대기업에는 다음 작업을 수행해야 하는 다양한 비즈니스 그룹의 여러 사용자가 있습니다.

  • 안전한 방식으로 클러스터에 로그인
  • 기본 데이터에 액세스하는 경우 PLOP(최소 권한 원칙) 적용
  • 보안상 중요한 이벤트 로그.

HDInsight의 애플리케이션 보안의 목적은 여러 사용자가 HDInsight로 안전하게 인증하는 방법을 제공하고, 사용자의 작업에 필요한 최소한의 사용 권한으로 데이터에 대한 액세스 권한을 제한하여 최종적으로 로그인, 권한 있는 작업 수행 시도, 중요 레코드 수정 등과 같은 보안상의 중요성이 있는 이벤트를 로깅하는 것입니다.

인증

인증은 사용자의 ID를 확인하는 프로세스이며 사용자가 자신이 주장하는 사용자임을 검증합니다. 일반적으로 프로덕션 시나리오에서 HDInsight 클러스터는 여러 비즈니스 그룹의 다양한 사용자가 클러스터에 인증하여 워크로드 구성, 전송, 실행 및 모니터링 등의 작업을 실행할 수 있도록 해야 합니다. HDInsight 클러스터를 만드는 동안 “ESP(Enterprise Security Package)” 기능을 사용하면 클러스터는 도메인에 가입되고 도메인 사용자는 도메인 자격 증명을 사용하여 클러스터에 인증할 수 있습니다. Active Directory 그룹을 사용하여 함수 또는 조직 내 부서를 나타내는 개별 사용자 그룹을 만들 수 있으며 여러 그룹을 만들 때 클러스터로 동기화할 수 있습니다. 클러스터는 도메인 클러스터 관리자와 제한된 액세스 권한이 있는 사용자 그룹을 한 개 이상 포함해야 합니다. 다음은 HDInsight 인증 프로세스와 관련된 구성 요소 및 파티를 나타냅니다.

HDInsight 인증 프로세스HDInsight Authentication ProcessHDInsight Authentication Process

엔터프라이즈 ID 도메인의 다음 구성 요소는 ESP 클러스터의 설정 및 인증 프로세스에 관여합니다.

  • Windows Server Active directory: 온-프레미스 도메인 컨트롤러이며 UPN(사용자 계정 이름)(예: user@Contoso.com) 및 해당 도메인 암호를 저장합니다.
  • Active Directory 연결(AD 연결): 하이브리드 ID 설치를 수행하도록 설계된 Microsoft 도구입니다. 암호 해시 동기화와 같은 기능은 HDInsight에서 ESP를 설정하는 데 중요합니다.
  • Azure Activity 디렉터리(Microsoft Entra ID): Microsoft Azure 기반 ID 및 액세스 관리 서비스입니다.
  • Microsoft Entra Domain Services(Microsoft Entra Domain Services): Windows Server Active Directory와 완벽하게 호환되는 도메인 가입, 그룹 정책, LDAP(Lightweight Directory Access Protocol), Kerberos/NTLM 인증 등의 관리되는 도메인 서비스를 제공합니다. 클라우드에서 도메인 컨트롤러를 배포, 관리 및 패치할 필요 없이 이러한 도메인 서비스를 사용할 수 있습니다. Microsoft Entra Domain Services는 기존 Microsoft Entra 테넌트와 통합되므로 사용자가 기존 자격 증명을 사용하여 로그인할 수 있습니다. 또한 기존 그룹 및 사용자 계정을 사용하여 리소스에 대한 액세스를 보호하여 Azure에 대한 온-프레미스 리소스의 원활한 '리프트 앤 시프트'를 제공합니다.

HDInsight는 두 가지 종류의 인증 시나리오를 지원합니다.

  • 암호 해시가 Microsoft Entra ID로 동기화되는 경우.
  • 암호 해시가 온-프레미스 도메인 컨트롤러에 유지되는 경우. 사용자는 WASB(Windows Azure Storage Blob) 또는 ADLS Gen2 스토리지를 사용하여 HDInsight 클러스터를 만들 수 있으며, 인증 프로세스는 각각 조금씩 다릅니다. 인증 프로세스의 모든 단계는 자동으로 수행되고 사용자로부터 추출되지만, 사용자 인증에 사용되는 이벤트 시퀀스를 높은 수준에서 이해하는 데 도움이 됩니다.

인증: 암호 해시가 Microsoft Entra ID에 동기화되는 경우

인증: 암호 해시가 Microsoft Entra ID에 동기화되는 경우 동기화되는 경우

  1. 사용자 John Doe는 도메인 자격 증명 user@contoso.onmicrosoft.com(사용자 계정 이름 또는 UPN이라고 함) 및 암호를 사용하여 HDInsight 서비스(예: Ambari, ssh, Zeppelin 등)에 인증합니다. 게이트웨이는 사용자 이름 및 암호를 보유합니다.
  2. HDInsight 게이트웨이는 ROPC(리소스 소유자 암호 자격 증명) 흐름을 사용하여 사용자가 제공한 UPN 및 암호를 Microsoft Entra ID에 보내고 OAuth 액세스를 요청합니다. Microsoft Entra ID는 사용자의 ID를 확인하고 헤드 노드에서 실행되는 자격 증명 서비스에 저장된 새로 고침 토큰을 발급합니다. ADLS Gen 2 스토리지 계정이 포함된 클러스터에서 스토리지 드라이버는 자격 증명 서비스와 통신하여 ADLS에 대한 통과 인증 목적으로 OAuth 토큰을 검색합니다.
  3. 그런 다음 게이트웨이는Microsoft Entra Domain Services를 사용하여 사용자를 인증하고 Kerberos 티켓을 가져옵니다. 다음으로 게이트웨이는 헤드 노드에 Kerberos 티켓을 전달하고 사용자를 클러스터에 인증합니다.

MFA 인증: 암호 해시가 Microsoft Entra ID에 동기화되지 않는 경우

비고

이 설정은 HIB(HDInsight ID 브로커)라고도 하며 MFA(다단계 인증)를 지원합니다. 이 설정에서 암호 해시가 Microsoft Entra ID와 동기화되지 않은 경우에도 사용자는 여전히 게이트웨이에 인증할 수 있습니다.

암호 해시가 Microsoft Entra ID로 동기화되지 않는 경우 동기화되지 않은 경우

  1. 사용자 John Doe는 Ambari 또는 Zeppelin과 같은 웹 기반 HDInsight 서비스를 시작합니다. 해당 페이지는 사용자를 대화형 로그인 화면으로 리디렉션합니다. 클라이언트는 사용자가 UPN을 사용하여 인증할 수 있도록 Microsoft Entra ID로 리디렉션됩니다 user@contoso.onmicrosoft.com.
  2. UPN을 입력하면 클라이언트는 사용자가 암호를 입력하는 온-프레미스 ADFS 서버로 리디렉션됩니다. 이제 MFA 인증(사용 가능한 경우)이 실행됩니다. 인증에 성공하면 OAuth 토큰이 클라이언트에게 발급됩니다.
  3. 클라이언트는 HDInsight 게이트웨이에 OAuth 토큰을 제공합니다.
  4. HDInsight 게이트웨이는 OAuth 토큰을 사용하여 HIB 노드에서 Kerberos 티켓을 가져옵니다.
  5. 게이트웨이는 Kerberos 티켓을 사용하고 헤드 노드 자격 증명 서비스에 OAuth 토큰을 등록하여 클러스터에 인증합니다.

비고

암호 해시가 Microsoft Entra ID와 동기화되지 않은 경우 도메인 사용자는 헤드 노드에 SSH 작업을 실행할 수 없습니다. 로컬 SSH 사용자만 SSH 작업을 수행할 수 있습니다. 두 시나리오에 인증 메커니즘을 설정하는 지침은 ID 브로커를 사용한 자격 증명 관리에서 설명합니다.

승인

HDInsight의 권한 부여는 기본 데이터 세트에 대한 사용자 권한의 확인과 적용을 다룹니다. 특정 동작 및/또는 작업에 대한 세분화된 권한 부여는 Hive, HBase 및 Kafka의 HDInsight 서비스에서 사용 가능하며 Apache Ranger를 통해 관리됩니다. Ranger는 역할 기반 액세스 제어, 특성 기반 액세스 제어와 중앙 집중식 사용자 액세스 및 관리 작업 감사를 제공합니다. 일반적으로 클러스터 관리자의 도메인 자격 증명을 사용하여 Apache Ranger에 인증한 다음, Ranger에서 제한된 그룹 또는 사용자에 대한 정책을 설정합니다. 아래 예제에서는 Ranger의 샘플 Hive 테이블에 대한 사용 권한을 설정하는 Ranger 정책을 만드는 방법을 보여줍니다.

  1. URL을 사용하여 Apache Ranger를 시작합니다. https://CLUSTERNAME.azurehdinsight.net/Ranger/. “CLUSTERNAME”을 클러스터 이름으로 바꿉니다. 클러스터 도메인 관리자와 해당 암호를 사용하여 로그인합니다.

    Apache Ranger를 사용하여 권한 설정 사용 권한 설정

  2. 새 정책 추가를 클릭하여 새 Ranger 정책을 추가합니다.

    새 Ranger 정책 추가 추가

  3. 다음 정보로 정책 세부 정보를 채웁니다.

    1. 정책 이름: 정책의 이름입니다.
    2. 데이터베이스: Hive 데이터베이스를 선택합니다.
    3. 테이블: 선택한 데이터베이스에서 Hive 테이블을 선택합니다.
    4. Hive 열: 정책이 적용될 Hive 열을 선택합니다.
    5. 모든 액세스를 로깅하려면 감사 로깅을 예(Yes)로 설정합니다.
    6. 허용 조건:
      • 허용 조건 섹션에서 정책을 AD(Active Directory) 도메인 사용자 또는 도메인 그룹에 적용할 수 있습니다. AD 그룹의 모든 사용자에게 정책을 적용하려면 해당 AD 그룹을 선택 그룹 섹션에 추가합니다.
      • 또는 정책을 개별 사용자 또는 다른 AD 그룹에서 선택한 사용자 세트에 적용하려면 사용자 선택 필드에 사용자의 개별 도메인 ID를 모두 추가할 수 있습니다.
      • 사용 권한 확인란 표시줄에서 사용 권한 세트를 선택합니다.
  4. 아래로 스크롤하여 확인을 클릭합니다.

    정책 추가 추가

  5. 이 설정을 게시하면 정책에 포함된 모든 사용자에게 이 규칙이 적용됩니다.

HBaseKafka에 대한 Ranger 정책 설정은 섹션의 각 하이퍼링크에서 설명합니다.

감사 활동

보안 측면에서 HDInsight의 감사는 클러스터의 작동 수명 동안 그리고 클러스터가 삭제된 후에도 발생하는 인증 및 권한 부여 요청을 레코딩하고 모니터링하는 작업을 처리합니다.

HDInsight의 감사는 Azure Monitor 로그를 사용하여 설정되며 클러스터 보안에 중요한 로그를 표시하는 데 사용할 수 있습니다. 클러스터 보안에 중요한 정보가 포함된 로그 테이블은 다음과 같습니다.

로그 테이블 이름 목적
ranger_audit_logs_CL ESP 클러스터에서 Apache Ranger의 감사 로그
log_gateway_audit_CL 성공 및 실패한 시도를 표시하는 게이트웨이의 감사 로그
log_ambari_audit_CL Ambari의 감사 로그
log_auth_CL 성공 및 실패한 시도에 대한 SSH 로그

Azure 모니터링은 몇 번의 클릭만으로 Azure Portal에서 사용하도록 설정됩니다.

  1. HDInsight 클러스터의 왼쪽 블레이드에서 Azure Monitor를 클릭합니다. Azure Monitor 통합을 True로 선택하고 작업 영역 선택의 드롭다운에서 미리 만든 Log Analytics 작업 영역을 선택합니다.

    Azure MonitorUsing Azure MonitorUsing Azure Monitor사용하여

  2. Log analytics 작업 영역을 시작하고 클러스터 형식과 관련된 HDInsight 모니터링 솔루션을 가져옵니다. 솔루션을 시작하고 로그를 클릭합니다.

    로그 보기

  3. 보안과 관련된 로그 테이블은 왼쪽 사용자 지정 로그 섹션에서 찾을 수 있습니다. 그런 다음 이를 쿼리하여 관련 액세스 정보를 추출할 수 있습니다.

    사용자 지정 로그 보기