Dataproc Ranger 구성요소

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

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

구성요소 설치

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

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

설치 단계:

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

    1. 클러스터 서비스 계정Cloud KMS CryptoKey 암호화/복호화 역할을 부여합니다(서비스 계정에 특정 리소스에 대한 역할 부여 참조). 이 계정의 형식은 다음과 같습니다.
      project-number-compute@developer.gserviceaccount.com
      
      1. :
        gcloud projects add-iam-policy-binding project-id \
            --member=serviceAccount:service-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 데이터베이스 인스턴스를 사용합니다. 클러스터를 삭제한 후 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 범위를 설정합니다(gcloud dataproc cluster create 명령어를 사용하는 경우 --scopes=default,sql-admin 매개변수 추가합니다).
      2. 프로젝트에서 SQL Admin API를 사용 설정합니다.
      3. 프로젝트의 Compute Engine 기본 서비스 계정Cloud SQL 편집자 역할을 부여합니다.

      gcloud 명령

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

      gcloud beta 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"

      콘솔

      Cloud Console에서 Ranger 구성요소 설치는 현재 지원되지 않습니다.

Ranger 관리자 로그

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