Componente Ranger opcional do Dataproc

É possível instalar outros componentes, como o Ranger, ao criar um cluster do Dataproc usando o recurso Componentes opcionais. Nesta página, descrevemos o componente Ranger.

O componente Apache Ranger é uma biblioteca de código aberto para gerenciar permissões e auditorias do ecossistema do Hadoop. O servidor de administração do Ranger e a IU da Web estão disponíveis na porta 6080 no primeiro nó mestre do cluster.

Consulte também:

Instalar o componente

Instale o componente ao criar um cluster do Dataproc. Os componentes podem ser adicionados aos clusters criados com o Dataproc versão 1.3 ou posterior. O componente Ranger requer a instalação do componente Solr, conforme mostrado abaixo.

Consulte Versões compatíveis do Dataproc para a versão do componente incluída em cada versão de imagem do Dataproc.

Etapas da instalação

  1. Configure sua senha de administrador do Ranger:

    1. Conceda o papel Criptografador/Descriptografador do Cloud KMS CryptoKey à conta de serviço do cluster. Por padrão, a conta de serviço do cluster é definida como a conta de serviço padrão do Compute Engine, que tem o seguinte formato:
      project-number-compute@developer.gserviceaccount.com
      
      É possível especificar uma conta de serviço de cluster diferente ao criar o cluster, abaixo.
      1. Exemplo: conceda o papel de criptografador/descriptografador de CryptoKey do Cloud KMS à conta de serviço padrão do Compute Engine:
        gcloud projects add-iam-policy-binding project-id \
            --member=serviceAccount:project-number-compute@developer.gserviceaccount.com \
            --role=roles/cloudkms.cryptoKeyDecrypter
        
    2. Criptografe a senha do usuário administrador do Ranger usando uma chave do Key Management Service (KMS). Sua senha precisa conter pelo menos oito caracteres, no mínimo, um caractere alfabético e um caractere numérico.
      1. Exemplo:
        1. Crie o keyring:
          gcloud kms keyrings create my-keyring --location=global
          
        2. Crie a chave:
          gcloud kms keys create my-key \
              --location=global \
              --keyring=my-keyring \
              --purpose=encryption
          
        3. Criptografe sua senha de usuário administrador 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. Faça upload da senha criptografada para um bucket do Cloud Storage no seu projeto.
      1. Exemplo:
        gsutil cp admin-password.encrypted gs://my-bucket
        
  2. Crie o cluster:

    1. Ao instalar o componente Ranger, o componente Solr também precisa ser instalado, conforme mostrado abaixo.
      1. O componente Ranger depende do componente Solr para armazenar e consultar os registros de auditoria, que, por padrão, usam o HDFS como armazenamento. Esses dados do HDFS são excluídos quando o cluster é excluído. Para configurar o componente Solr para armazenar dados, incluindo os registros de auditoria do Ranger, no Cloud Storage, use o dataproc:solr.gcs.path=gs://<bucket> propriedade de cluster ao criar o cluster. Os dados do Cloud Storage permanecem depois que o cluster é excluído.
    2. Transmita a chave KMS e os URIs do Cloud Storage para o comando de criação de cluster definindo o dataproc:ranger.kms.key.uri e dataproc:ranger.admin.password.uri propriedades do cluster.
    3. Opcionalmente, você pode passar a senha de usuário do administrador do banco de dados do Ranger por meio de um URI de arquivo criptografado do Cloud Storage definindo o dataproc:ranger.db.admin.password.uri propriedade de cluster.
    4. Por padrão, o componente Ranger usa a instância do banco de dados MySql em execução no primeiro nó mestre do cluster. Na instância do MySQL, ative a sinalização log_bin_trust_function_creators definindo a variável como ON. A definição dessa flag controla se os criadores de funções armazenadas são confiáveis. Após a criação do cluster e a configuração do Ranger, é possível redefinir log_bin_trust_function_creators para OFF.
    5. Para manter o banco de dados do Ranger após a exclusão do cluster, use uma instância do Cloud SQL como o banco de dados MySql externo.

      1. Defina o dataproc:ranger.cloud-sql.instance.connection.name propriedade de cluster à instância do Cloud SQL.
      2. Defina o dataproc:ranger.cloud-sql.root.password.uri propriedade de cluster para o URI do Cloud Storage da senha raiz criptografada da chave KMS da instância do Cloud SQL.
      3. Defina a propriedade do cluster dataproc:ranger.cloud-sql.use-private-ip para indicar se a conexão com a instância do Cloud SQL está por meio de IP privado.

      O componente Ranger usa o Cloud SQL Proxy para se conectar à instância do Cloud SQL. Para usar o proxy:

      1. Defina o escopo da API sqlservice.admin ao criar o cluster (consulte Como autorizar solicitações com o OAuth 2.0). Se estiver usando o comando gcloud dataproc cluster create, adicione o parâmetro --scopes=default,sql-admin.
      2. Ative a API SQL Admin no seu projeto.
      3. Verifique se a conta de serviço do cluster tem o papel de editor do Cloud SQL.

      Comando gcloud

      Para criar um cluster do Dataproc que inclua o componente Ranger, use o comando gcloud dataproc clusters create cluster-name com a sinalização --optional-components.

      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
      

      API REST

      Especifique os componentes Ranger e Solr no campo SoftwareConfig.Component como parte de uma solicitação clusters.create da API Dataproc. Você também precisa definir as propriedades de cluster a seguir no campo 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. Ative o componente e o gateway do componente.
        • No console do Google Cloud, abra a página Criar um cluster do Dataproc. O painel "Configurar cluster" está selecionado.
        • Na seção "Componentes", faça o seguinte:

Clique na guia Interfaces da Web. Em Gateway do componente, clique em Ranger para abrir a interface da Web do Ranger. Faça login com o nome de usuário de administrador do Ranger (por exemplo, "admin") e a senha.

Registros de administrador do Ranger

Os registros de administrador do Ranger estão disponíveis no Logging como registros ranger-admin-root.