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:
Configure a palavra-passe de administrador do Ranger:
- 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:
Pode especificar uma conta de serviço do cluster diferente quando criar o cluster abaixo.project-number-compute@
- 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
- Exemplo:
Conceda a função de encriptador/desencriptador de CryptoKey do Cloud KMS
à conta de serviço predefinida do Compute Engine:
- 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.
- Exemplo:
- Crie o conjunto de chaves:
gcloud kms keyrings create my-keyring --location=global
- Crie a chave:
gcloud kms keys create my-key \ --location=global \ --keyring=my-keyring \ --purpose=encryption
- 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
- Crie o conjunto de chaves:
- Exemplo:
- Carregue a palavra-passe encriptada para um contentor do Cloud Storage no seu projeto.
- Exemplo:
gcloud storage cp admin-password.encrypted gs://my-bucket
- Exemplo:
- 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:
Crie o cluster:
- Quando instalar o componente Ranger, o componente Solr também tem de ser instalado, conforme mostrado abaixo.
- 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.
- 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
- 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
edataproc:ranger.admin.password.uri
propriedades do cluster. - 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. - 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 comoON
. 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 delog_bin_trust_function_creators
paraOFF
. 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.
- Defina a
dataproc:ranger.cloud-sql.instance.connection.name
propriedade do cluster para a instância do Cloud SQL. - 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. - 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:
- Defina o âmbito da API
sqlservice.admin
quando criar o cluster (consulte o artigo Autorizar pedidos com o OAuth 2.0). Se usar o comandogcloud dataproc cluster create
, adicione o parâmetro--scopes=default,sql-admin
. - Ative a API Admin do SQL no seu projeto.
- Certifique-se de que a conta de serviço do cluster tem a função de editor do Cloud SQL.
- 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:
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"
Consola
- 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).
- Defina a
- Quando instalar o componente Ranger, o componente Solr também tem de ser instalado, conforme mostrado abaixo.
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
.