Componente opcional do Ranger do Managed Service for Apache Spark

O componente opcional do Apache Ranger permite gerenciar permissões e auditorias do ecossistema do Hadoop em clusters do Serviço Gerenciado para Apache Spark. Quando você instala esse componente durante a criação do cluster, o servidor do Ranger admin e a interface da Web ficam disponíveis na porta 6080 no primeiro nó mestre do cluster.

Para tarefas e orientações relacionadas, consulte como usar o Ranger com o Kerberos, fazer backup e restaurar um esquema do Ranger e as práticas recomendadas para usar o Apache Ranger no Serviço Gerenciado para Apache Spark.

Instalar o componente

Instale o componente ao criar um cluster do Serviço Gerenciado para Apache Spark. Os componentes podem ser adicionados a clusters criados com o Serviço Gerenciado para Apache Spark versão 1.3 e posterior. O componente Ranger requer a instalação do componente Solr.

Consulte Versões compatíveis do Serviço Gerenciado para Apache Spark para saber qual versão do componente está incluída em cada versão da imagem do Serviço Gerenciado para Apache Spark.

Etapas da instalação

  1. Configure sua senha do Ranger admin:

    1. Conceda o papel de criptografador/descriptografador de CryptoKey do Cloud Key Management Service à 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.
      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 sua senha do Ranger admin usando uma chave do serviço de gerenciamento de chaves (KMS). Para clusters de versão de imagem anteriores à 2.2, a senha precisa ter pelo menos 8 caracteres, com pelo menos um caractere alfabético e um numérico. Para clusters de versão de imagem 2.2 e posteriores, a senha precisa ter pelo menos oito caracteres, com pelo menos uma letra maiúscula, uma letra minúscula 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 a senha do usuário admin 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. Faça o upload da senha criptografada para um bucket do Cloud Storage no projeto.
      1. Exemplo:
        gcloud storage 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.
      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. Se quiser, transmita a senha do usuário admin do banco de dados do Ranger por um URI de arquivo criptografado do Cloud Storage definindo a propriedade do cluster dataproc:ranger.db.admin.password.uri.
    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. Para manter o banco de dados do Ranger após a exclusão do cluster, configure o cluster para usar uma instância externa do Cloud SQL. Para usar uma instância externa do Cloud SQL, faça o seguinte:

      1. Antes de criar o cluster, é preciso configurar a instância do Cloud SQL para ativar a flag de banco de dados log_bin_trust_function_creators definindo-a como on. Isso permite que os scripts de configuração do esquema do Ranger sejam executados durante a criação do cluster. Depois de criar o cluster, redefina essa sinalização como off.
      2. Defina o dataproc:ranger.cloud-sql.instance.connection.name propriedade de cluster à instância do Cloud SQL.
      3. 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.
      4. 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.

      Ao usar uma instância externa do Cloud SQL, o componente Ranger usa o proxy de autenticação do Cloud SQL 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.
      4. Como o proxy de autenticação do Cloud SQL no nó mestre cria conexões de saída com a instância do Cloud SQL pela porta 3307, verifique se as conexões TCP de saída do nó mestre com a instância do Cloud SQL pela porta 3307 são permitidas. Para mais informações, consulte Como o proxy de autenticação do Cloud SQL funciona.

    Console doGoogle Cloud

    1. No console do Google Cloud , abra a página Criar cluster.
    2. Clique em Configuração adicional para abrir a seção.
    3. Edite os Componentes opcionais.
    4. No painel que será aberto, marque as caixas de seleção de Ranger e Solr e clique em Salvar.

    CLI da gcloud

    Para criar um cluster do Serviço Gerenciado para Apache Spark 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 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"

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

Registros de administrador do Ranger

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