Todos os produtos
Search
Central de documentação

E-MapReduce:Gerencie informações confidenciais com textos cifrados

Última atualização: Jun 27, 2026

Armazenar credenciais como AccessKeys e senhas em texto simples durante o desenvolvimento de dados expõe essas informações a riscos de vazamento. O Ciphertext Management permite criptografar e armazenar dados confidenciais e referenciá-los dinamicamente em jobs de Notebook, configurações do Spark e parâmetros de jobs em lote ou streaming, sem expor os valores originais no código ou nos arquivos de configuração.

Como funciona

  1. Crie um texto cifrado no Ciphertext Management e atribua um nome de variável a ele.

  2. Referencie o texto cifrado no código do Notebook, na configuração da sessão do Spark ou nos parâmetros de execução do job.

  3. Durante a execução, o EMR Serverless Spark descriptografa o valor e o injeta automaticamente. O texto simples nunca fica visível no código ou nos logs.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um workspace do EMR Serverless Spark

  • Permissões para criar e gerenciar textos cifrados nesse workspace

Crie um texto cifrado

  1. Faça login no console do E-MapReduce.

  2. No painel de navegação à esquerda, escolha EMR Serverless > Spark.

  3. Na página Spark, clique em o nome do workspace desejado.

  4. Na página EMR Serverless Spark, clique em Ciphertexts no painel de navegação à esquerda.

  5. Na página Ciphertexts, clique em Add Ciphertext.

  6. Na página Add Ciphertext, configure os seguintes parâmetros e clique em Confirm.

    Parâmetro

    Descrição

    Variable Name

    Identificador exclusivo deste texto cifrado no workspace. Não pode ser modificado após a criação.

    Ciphertext

    Valor confidencial a criptografar. Diferencia maiúsculas de minúsculas. Não pode ser modificado ou visualizado novamente após a criação.

Importante

Anote o valor do texto cifrado antes de salvar. Após a criação, não é possível recuperar ou modificar esse valor.

Use um texto cifrado

Uso em um job de Notebook

Em um job de Notebook, use a biblioteca emrssutils.utils para recuperar um texto cifrado durante a execução. A versão do mecanismo DPI deve ser esr-2.8.0, esr-3.4.0, esr-4.4.0 ou superior.

O exemplo a seguir recupera uma senha de banco de dados armazenada como texto cifrado e a usa para ler dados via JDBC.

Etapa 1: Importe a biblioteca e carregue o texto cifrado.

import emrssutils.utils

# Retrieve the decrypted value at runtime
password = emrssutils.utils.get_secret(key='<variable_name>')

Substitua <variable_name> pelo Variable Name atribuído ao criar o texto cifrado.

Etapa 2: Referencie o valor do texto cifrado no código Spark.

df = spark.read \
    .format("jdbc") \
    .option("url", "jdbc:mysql://<jdbc_url>") \
    .option("dbtable", "<db>.<table>") \
    .option("user", "<username>") \
    .option("password", password) \
    .load()
df.show()

Uso em configurações do Spark

Nas configurações de sessão do Spark ou de jobs em lote, referencie um texto cifrado com a seguinte sintaxe:

${secret_values.variable_name}

Substitua variable_name pelo Variable Name definido durante a criação do texto cifrado.

O exemplo abaixo mostra uma configuração do Spark para uma sessão SQL que lê e grava dados no MaxCompute, com a AccessKey armazenada como um texto cifrado chamado AccessKey.

spark.sql.catalog.odps                        org.apache.spark.sql.execution.datasources.v2.odps.OdpsTableCatalog
spark.sql.extensions                          org.apache.spark.sql.execution.datasources.v2.odps.extension.OdpsExtensions
spark.sql.sources.partitionOverwriteMode      dynamic
spark.hadoop.odps.tunnel.quota.name           pay-as-you-go
spark.hadoop.odps.project.name                <project_name>
spark.hadoop.odps.end.point                   https://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api
spark.hadoop.odps.access.id                   <accessId>
spark.hadoop.odps.access.key                  ${secret_values.AccessKey}

Para mais detalhes sobre leitura e gravação no MaxCompute, consulte Leitura e gravação no MaxCompute.

Uso em jobs em lote ou streaming

Nos parâmetros de execução de um job em lote ou streaming, referencie um texto cifrado com a mesma sintaxe:

${secret_values.variable_name}

A captura de tela a seguir ilustra um job em lote JAR configurado com um texto cifrado nos parâmetros de execução.

image

Próximos passos