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
Configure sua senha do Ranger
admin:- 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:
É possível especificar uma conta de serviço de cluster diferente ao criar o cluster.project-number-compute@
- 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@ \ --role=roles/cloudkms.cryptoKeyDecrypter
- Exemplo:
conceda o papel de criptografador/descriptografador de CryptoKey do Cloud KMS
à conta de serviço padrão do Compute Engine:
- Criptografe sua senha do Ranger
adminusando 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.- Exemplo:
- Crie o keyring:
gcloud kms keyrings create my-keyring --location=global
- Crie a chave:
gcloud kms keys create my-key \ --location=global \ --keyring=my-keyring \ --purpose=encryption
- Criptografe a senha do usuário
admindo Ranger:echo 'my-ranger-admin-password' | \ gcloud kms encrypt \ --location=global \ --keyring=my-keyring \ --key=my-key \ --plaintext-file=- \ --ciphertext-file=admin-password.encrypted
- Crie o keyring:
- Exemplo:
- Faça o upload da senha criptografada para um bucket do Cloud Storage no projeto.
- Exemplo:
gcloud storage cp admin-password.encrypted gs://my-bucket
- Exemplo:
- 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:
Crie o cluster:
- Ao instalar o componente Ranger, o
componente Solr também precisa ser
instalado.
- 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.
- 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
- Transmita a chave KMS e os URIs do Cloud Storage para o
comando de criação de cluster definindo o
dataproc:ranger.kms.key.uriedataproc:ranger.admin.password.uripropriedades do cluster. - Se quiser, transmita a senha do usuário
admindo banco de dados do Ranger por um URI de arquivo criptografado do Cloud Storage definindo a propriedade do clusterdataproc:ranger.db.admin.password.uri. 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:
- 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_creatorsdefinindo-a comoon. 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 comooff. - Defina o
dataproc:ranger.cloud-sql.instance.connection.namepropriedade de cluster à instância do Cloud SQL. - Defina o
dataproc:ranger.cloud-sql.root.password.uripropriedade de cluster para o URI do Cloud Storage da senha raiz criptografada da chave KMS da instância do Cloud SQL. - Defina a propriedade do cluster
dataproc:ranger.cloud-sql.use-private-ippara 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:
- Defina o escopo da API
sqlservice.adminao criar o cluster (consulte Como autorizar solicitações com o OAuth 2.0). Se estiver usando o comandogcloud dataproc cluster create, adicione o parâmetro--scopes=default,sql-admin. - Ative a API SQL Admin no seu projeto.
- Verifique se a conta de serviço do cluster tem o papel de editor do Cloud SQL.
- 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.
- Antes de criar o cluster, é preciso
configurar a instância do Cloud SQL para
ativar a flag de banco de dados
Console doGoogle Cloud
- No console do Google Cloud , abra a página Criar cluster.
- Clique em Configuração adicional para abrir a seção.
- Edite os Componentes opcionais.
- 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:
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"
- Ao instalar o componente Ranger, o
componente Solr também precisa ser
instalado.
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.