Componente opcional do Ranger do Managed Service for Apache Spark

É possível instalar componentes extras, como o Ranger, ao criar um cluster do Serviço Gerenciado para Apache Spark usando o recurso Componentes opcionais. Nesta página, descrevemos o componente Ranger.

O componente Apache Ranger é um framework de código aberto para gerenciar permissões e auditorias do ecossistema Hadoop. O servidor admin do Ranger e a interface 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 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 mais recente. O componente Ranger exige a instalação do componente Solr.

Consulte Versões compatíveis do Serviço Gerenciado para Apache Spark para saber a versão do componente incluída em cada lançamento de imagem do Serviço Gerenciado para Apache Spark.

Etapas da instalação

  1. Defina 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 a senha do Ranger admin usando uma chave do serviço de gerenciamento de chaves (KMS). Para clusters com versões de imagem anteriores à 2.2, a senha precisa ter pelo menos oito caracteres, com pelo menos um caractere alfabético e um numérico. Para clusters de versão de imagem 2.2 e mais recentes, a senha precisa ter pelo menos oito caracteres, com pelo menos uma letra maiúscula, uma 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 ao definir 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 da criação do cluster, é necessário 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 que o cluster for criado, você poderá redefinir essa flag para 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 do 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ó principal cria conexões de saída para a instância do Cloud SQL pela porta 3307, verifique se as conexões TCP de saída do nó principal para 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 essa seção.
    3. Edite Componentes opcionais.
    4. No painel que abrir, marque as caixas de seleção 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 do 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.