Componente Ranger opcional do Dataproc

Pode instalar componentes adicionais, como o Ranger, quando cria um cluster do Dataproc usando a funcionalidade Componentes opcionais. Esta página descreve o componente Ranger.

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

Veja também:

Instale o componente

Instale o componente quando criar um cluster do Dataproc. Pode adicionar componentes a clusters criados com o Dataproc versão 1.3 e posterior. O componente Ranger requer a instalação do componente Solr, conforme mostrado abaixo.

Consulte as versões do Dataproc suportadas para ver a versão do componente incluída em cada lançamento de imagem do Dataproc.

Passos de instalação:

  1. Configure a palavra-passe de administrador do Ranger:

    1. Conceda a função de encriptar/desencriptar do CryptoKey do Cloud KMS à conta de serviço do cluster. Por predefinição, a conta de serviço do cluster é definida como a conta de serviço predefinida do Compute Engine, que tem o seguinte formato:
      project-number-compute@
      
      Pode especificar uma conta de serviço do cluster diferente quando criar o cluster abaixo.
      1. Exemplo: Conceda a função de encriptador/desencriptador de CryptoKey do Cloud KMS à conta de serviço predefinida do Compute Engine:
        gcloud projects add-iam-policy-binding project-id \
            --member=serviceAccount:project-number-compute@ \
            --role=roles/cloudkms.cryptoKeyDecrypter
        
    2. Encripte a palavra-passe do utilizador administrador do Ranger com uma chave do Key Management Service (KMS). Para clusters de versão de imagem anteriores à 2.2, a palavra-passe tem de ter, pelo menos, 8 carateres, com, pelo menos, um caráter alfabético e um caráter numérico. Para clusters com a versão de imagem 2.2 e posterior, a palavra-passe tem de ter, pelo menos, 8 carateres, com, pelo menos, uma letra maiúscula, uma letra minúscula e um caráter numérico.
      1. Exemplo:
        1. Crie o conjunto de chaves:
          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. Encripte a palavra-passe do utilizador administrador do 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. Carregue a palavra-passe encriptada para um contentor do Cloud Storage no seu projeto.
      1. Exemplo:
        gcloud storage cp admin-password.encrypted gs://my-bucket
        
  2. Crie o cluster:

    1. Quando instalar o componente Ranger, o componente Solr também tem de ser instalado, conforme mostrado abaixo.
      1. O componente Ranger baseia-se no componente Solr para armazenar e consultar os respetivos registos de auditoria, que, por predefinição, usam o HDFS como armazenamento. Estes dados do HDFS são eliminados quando o cluster é eliminado. Para configurar o componente Solr para armazenar dados, incluindo os registos de auditoria do Ranger, no Cloud Storage, use a dataproc:solr.gcs.path=gs://<bucket> propriedade do cluster quando criar o cluster. Os dados do Cloud Storage persistem após a eliminação do cluster.
    2. Transmita os URIs do Cloud Storage da chave e da palavra-passe do KMS para o comando de criação do cluster definindo as dataproc:ranger.kms.key.uri e dataproc:ranger.admin.password.uri propriedades do cluster.
    3. Opcionalmente, pode transmitir a palavra-passe do utilizador administrador da base de dados do Ranger através de um URI de ficheiro do Cloud Storage encriptado ao definir a dataproc:ranger.db.admin.password.uri propriedade do cluster.
    4. Por predefinição, o componente Ranger usa a instância da base de dados MySQL em execução no primeiro nó principal do cluster. Na instância do MySQL, ative a flag log_bin_trust_function_creators definindo a variável como ON. A definição desta flag controla se os criadores de funções armazenadas podem ser considerados fidedignos. Após a criação bem-sucedida do cluster e a configuração do Ranger, pode repor o valor de log_bin_trust_function_creators para OFF.
    5. Para manter a base de dados do Ranger após a eliminação do cluster, use uma instância do Cloud SQL como a base de dados MySql externa.

      1. Defina a dataproc:ranger.cloud-sql.instance.connection.name propriedade do cluster para a instância do Cloud SQL.
      2. Defina a dataproc:ranger.cloud-sql.root.password.uri propriedade do cluster para o URI do Cloud Storage da palavra-passe raiz encriptada com a chave do KMS da instância do Cloud SQL.
      3. Defina a dataproc:ranger.cloud-sql.use-private-ip propriedade do cluster para indicar se a ligação à instância do Cloud SQL é através de IP privado.

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

      1. Defina o âmbito da API sqlservice.admin quando criar o cluster (consulte o artigo Autorizar pedidos com o OAuth 2.0). Se usar o comando gcloud dataproc cluster create, adicione o parâmetro --scopes=default,sql-admin.
      2. Ative a API Admin do SQL no seu projeto.
      3. Certifique-se de que a conta de serviço do cluster tem a função de editor do Cloud SQL.
      4. Uma vez que o proxy Auth do Cloud SQL no nó principal cria ligações de saída para a instância do Cloud SQL através da porta 3307, certifique-se de que as ligações TCP de saída do nó principal para a instância do Cloud SQL através da porta 3307 são permitidas. Para mais informações, consulte o artigo Como funciona o proxy Auth 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 flag --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 um pedido clusters.create da API Dataproc. Também tem de definir as seguintes propriedades do cluster 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"

      Consola

      1. Ative o componente e o gateway de componentes.
        • Na Google Cloud consola, abra a página do Dataproc Criar um cluster. O painel Configurar cluster está selecionado.
        • Na secção Componentes:
          • Em Componentes opcionais, selecione Ranger, Solr e outros componentes opcionais para instalar no cluster.
          • Em Component Gateway, selecione Enable component gateway (consulte Ver e aceder aos URLs do Component Gateway).

Clique no separador Interfaces Web. Em Component gateway, clique em Ranger para abrir a interface Web do Ranger. Inicie sessão com o nome de utilizador do administrador do Ranger (por exemplo, "admin") e a palavra-passe.

Registos do Ranger Admin

Os registos de administrador do Ranger estão disponíveis em Registo como registos ranger-admin-root.