Este documento descreve como usar o Secret Manager como um repositório de credenciais com o Dataproc Serverless para armazenar e acessar com segurança os dados sensíveis processados por cargas de trabalho sem servidor.
Visão geral
O Secret Manager pode proteger seus dados sensíveis, como chaves de API, senhas e certificados. Use-o para gerenciar, acessar e auditar seus segredos no Google Cloud.
Ao executar uma carga de trabalho em lote do Dataproc sem servidor, é possível configurá-la para usar um segredo do Secret Manager usando o provedor de credenciais do Secret Manager do Dataproc.
Disponibilidade
Esse recurso está disponível para as versões do ambiente de execução do Dataproc Serverless para Spark 1.2.29+, 2.2.29+ ou versões principais mais recentes.
Terminologia
A tabela a seguir descreve os termos usados neste documento.
Termo | Descrição |
---|---|
Secret |
Um secret do Secret Manager é um objeto de projeto global que contém uma coleção de metadados e versões de secrets. É possível armazenar, gerenciar e acessar secrets como blobs binários ou strings de texto. |
Credential |
No Hadoop e em outros workloads do Dataproc, uma credencial consiste em um nome (ID) e um valor (senha). Um ID e um valor de credencial são mapeados para um ID e um valor de secret do Secret Manager (versão do secret). |
Uso
É possível configurar o Hadoop com suporte e outros componentes do OSS para trabalhar com o Secret Manager definindo as seguintes propriedades ao enviar uma carga de trabalho do Dataproc sem servidor:
Caminho do provedor (obrigatório): a propriedade do caminho do provedor,
hadoop.security.credential.provider.path
, é uma lista separada por vírgulas de um ou mais URIs de provedor de credencial que é percorrida para resolver uma credencial.--properties=hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID
- O
scheme
no caminho do provedor indica o tipo de provedor de credenciais. Os esquemas do Hadoop incluemjceks://
,user://
elocaljceks://
. Use o esquemagsm://
para pesquisar credenciais no Secret Manager.
- O
Operador de ponto substituto (opcional): o Secret Manager não oferece suporte ao operador de ponto(
.
) em nomes secretos, mas as chaves de credencial de componentes do OSS podem conter esse operador. Quando essa propriedade é definida comotrue
. Você pode substituir pontos(.
) por hífens(-
) nos nomes das credenciais. Por exemplo, quando essa propriedade é definida comotrue
, é possível especificar o nome da credenciala.b.c
comoa-b-c
ao transmiti-la ao Secret Manager.--properties=hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
Versão do secret (opcional): os secrets no Secret Manager podem ter várias versões (valores). Use essa propriedade para acessar uma versão do secret. Por padrão, o Secret Manager acessa a versão
LATEST
, que é resolvida para o valor mais recente do secret no momento da execução. Uma prática recomendada é definir essa propriedade para acesso estável em ambientes de produção. Para saber como criar um secret, consulte Criar e acessar um secret usando o Secret Manager.--properties=hadoop.security.credstore.google-secret-manager.secret-version=1
Executar uma carga de trabalho em lote com o provedor de credenciais do Secret Manager
Para enviar uma carga de trabalho em lote que usa o provedor de credenciais do Secret Manager, execute o comando a seguir localmente ou no Cloud Shell.
gcloud dataproc batches submit spark \ --region=REGION \ --jars=JARS \ --class=MAIN_CLASS \ --properties="spark.hive.hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,spark.hive.hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true" \ ...other flags as needed...
Substitua:
- REGION: uma região do Compute Engine em que a carga de trabalho é executada
- JARS: caminho do jar da carga de trabalho
- MAIN_CLASS: a classe principal do JAR
- PROJECT_ID: o ID do projeto, listado na seção Informações do projeto do painel do console do Google Cloud.