Dataproc 선택적 Ranger 구성요소

선택적 구성요소 기능을 사용하여 Dataproc 클러스터를 만들 때 Ranger와 같은 추가 구성요소를 설치할 수 있습니다. 이 페이지에서는 Ranger 구성요소를 설명합니다.

Apache Ranger 구성요소는 Hadoop 생태계에 대한 권한 및 감사를 관리하는 오픈소스 프레임워크입니다. Ranger 관리 서버 및 웹 UI는 클러스터의 첫 번째 마스터 노드에 있는 포트 6080에서 사용할 수 있습니다.

추가 참조:

구성요소 설치

Dataproc 클러스터를 만들 때 구성요소를 설치합니다. 구성요소는 Dataproc 버전 1.3 이상으로 만든 클러스터에 추가할 수 있습니다. Ranger 구성요소를 사용하려면 아래와 같이 Solr 구성요소를 설치해야 합니다.

각 Dataproc 이미지 출시에 포함된 구성요소 버전은 지원되는 Dataproc 버전을 참조하세요.

설치 단계:

  1. Ranger 관리자 비밀번호를 설정합니다.

    1. 클러스터 서비스 계정Cloud KMS CryptoKey 암호화/복호화 역할을 부여합니다. 기본적으로 클러스터 서비스 계정은 다음 형식의 Compute Engine 기본 서비스 계정으로 설정됩니다.
      project-number-compute@developer.gserviceaccount.com
      
      아래에서 클러스터를 만들 때 다른 클러스터 서비스 계정을 지정할 수 있습니다.
      1. 예시: Compute Engine 기본 서비스 계정에 Cloud KMS CryptoKey 암호화/복호화 역할을 부여합니다.
        gcloud projects add-iam-policy-binding project-id \
            --member=serviceAccount:project-number-compute@developer.gserviceaccount.com \
            --role=roles/cloudkms.cryptoKeyDecrypter
        
    2. 키 관리 서비스(KMS) 키를 사용하여 Ranger 관리자의 비밀번호를 암호화합니다. 비밀번호는 최소 8자 이상이어야 하며 영문자와 숫자가 각각 1자 이상이어야 합니다.
      1. 예시:
        1. 키링을 만듭니다.
          gcloud kms keyrings create my-keyring --location=global
          
        2. 키를 만듭니다.
          gcloud kms keys create my-key \
              --location=global \
              --keyring=my-keyring \
              --purpose=encryption
          
        3. Ranger 관리자의 비밀번호를 암호화합니다.
          echo "my-ranger-admin-password" | \
            gcloud kms encrypt \
              --location=global \
              --keyring=my-keyring \
              --key=my-key \
              --plaintext-file=- \
              --ciphertext-file=admin-password.encrypted
          
    3. 암호화된 비밀번호를 프로젝트의 Cloud Storage 버킷에 업로드합니다.
      1. :
        gsutil cp admin-password.encrypted gs://my-bucket
        
  2. 클러스터 만들기:

    1. Ranger 구성요소를 설치할 때 다음과 같이 Solr 구성요소도 설치해야 합니다.
      1. Ranger 구성요소는 기본적으로 HDFS를 스토리지로 사용하는 감사 로그를 저장하고 쿼리하기 위해 Solr 구성요소를 사용합니다. 클러스터가 삭제되면 이 HDFS 데이터도 삭제됩니다. Cloud Storage에서 Ranger 감사 로그를 포함한 데이터를 저장하도록 Solr 구성요소를 구성하려면 클러스터를 만들 때 dataproc:solr.gcs.path=gs://<bucket> 클러스터 속성을 사용합니다. Cloud Storage 데이터는 클러스터가 삭제된 후에도 유지됩니다.
    2. dataproc:ranger.kms.key.uridataproc:ranger.admin.password.uri 클러스터 속성을 설정하여 KMS 키 및 비밀번호 Cloud Storage URI를 클러스터 생성 명령어에 전달합니다.
    3. 필요한 경우 dataproc:ranger.db.admin.password.uri 클러스터 속성을 설정하여 암호화된 Cloud Storage 파일 URI를 통해 Ranger 데이터베이스의 관리자 비밀번호를 전달할 수 있습니다.
    4. 기본적으로 Ranger 구성요소는 클러스터의 첫 번째 마스터 노드에서 실행되는 MySql 데이터베이스 인스턴스를 사용합니다. MySQL 인스턴스에서 변수를 ON으로 설정하여 log_bin_trust_function_creators 플래그를 사용 설정합니다. 이 플래그를 설정하면 저장된 함수 생성자의 신뢰 여부를 제어할 수 있습니다. 클러스터 생성 및 Ranger 구성이 완료되면 log_bin_trust_function_creatorsOFF로 재설정할 수 있습니다.
    5. 클러스터를 삭제한 후 Ranger 데이터베이스를 유지하려면 Cloud SQL 인스턴스를 외부 MySql 데이터베이스로 사용합니다.

      1. dataproc:ranger.cloud-sql.instance.connection.name 클러스터 속성을 Cloud SQL 인스턴스로 설정합니다.
      2. dataproc:ranger.cloud-sql.root.password.uri 클러스터 속성을 Cloud SQL 인스턴스의 KMS 키로 암호화된 루트 비밀번호의 Cloud Storage URI로 설정합니다.
      3. dataproc:ranger.cloud-sql.use-private-ip 클러스터 속성을 설정하여 Cloud SQL 인스턴스에 대한 연결이 비공개 IP를 통해 이루어졌는지 나타냅니다.

      Ranger 구성 요소는 Cloud SQL 프록시를 사용하여 Cloud SQL 인스턴스에 연결합니다. 프록시를 사용하려면 다음 안내를 따르세요.

      1. 클러스터를 만들 때 sqlservice.admin API 범위를 설정합니다(OAuth 2.0으로 요청 승인 참조). gcloud dataproc cluster create 명령어를 사용하는 경우 --scopes=default,sql-admin 매개변수를 추가합니다.
      2. 프로젝트에서 SQL Admin API를 사용 설정합니다.
      3. 클러스터 서비스 계정에 Cloud SQL 편집자 역할이 있는지 확인합니다.

      gcloud 명령어

      Ranger 구성요소를 포함하는 Dataproc 클러스터를 만들려면 --optional-components 플래그와 함께 gcloud dataproc clusters create cluster-name 명령어를 사용합니다.

      gcloud dataproc clusters create cluster-name \
          --optional-components=SOLR,RANGER \
          --region=region \
          --enable-component-gateway \
          --properties="dataproc:ranger.kms.key.uri=projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key,dataproc:ranger.admin.password.uri=gs://my-bucket/admin-password.encrypted" \
          ... other flags
      

      REST API

      Datacroc API clusters.create 요청의 일부로 SoftwareConfig.Component 필드에 Ranger 및 Solr 구성요소를 지정합니다. 또한 SoftwareConfig.Component.properties 필드에서 다음의 클러스터 속성을 설정해야 합니다.

      1. dataproc:ranger.kms.key.uri: "projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key"
      2. dataproc:ranger.admin.password.uri : "gs://my-bucket/admin-password.encrypted"

      Console

      1. 구성요소 및 구성요소 게이트웨이를 사용 설정합니다.
        • Google Cloud 콘솔에서 Dataproc 클러스터 만들기 페이지를 엽니다. 클러스터 설정 패널이 선택되었습니다.
        • 구성요소 섹션에서 다음을 수행합니다.
          • 선택적 구성요소 아래에서 Ranger, Solr 및 클러스터에 설치할 기타 선택적인 구성요소를 선택합니다.
          • 구성요소 게이트웨이 아래에서 구성요소 게이트웨이 사용 설정을 선택합니다(구성요소 게이트웨이 URL 보기 및 액세스 참조).

웹 인터페이스 탭을 클릭합니다. 구성요소 게이트웨이에서 Ranger를 클릭하여 Ranger 웹 인터페이스를 엽니다. Ranger 관리자의 사용자 이름(예: 'admin')과 비밀번호로 로그인합니다.

Ranger 관리자 로그

Ranger 관리자 로그는 Logging에서 ranger-admin-root 로그로 제공됩니다.