通过密文管理敏感信息

在数据开发与任务执行过程中,明文存储AccessKey或密码等信息容易引发安全风险。通过密文管理功能,您可以将敏感信息进行加密存储,并在数据开发及会话配置中进行动态引用,从而避免代码泄露风险,提升敏感信息的维护效率。

创建密文

  1. 进入密文管理页面。

    1. 登录E-MapReduce控制台

    2. 在左侧导航栏,选择EMR Serverless > Spark

    3. Spark页面,单击目标工作空间名称。

    4. EMR Serverless Spark页面,单击左侧导航栏中的密文管理

  2. 密文管理页面,单击新增密文

  3. 新增密文界面,配置以下信息,单击确认

    参数

    说明

    变量名称

    变量名称在同一个工作空间下保持唯一,创建后不支持修改。

    密文

    对字母大小写敏感,创建后不支持修改与再次查看。

使用密文

在 Notebook 中使用

Notebook任务中,可以通过emrssutils.utils工具库使用密文,但所使用的引擎版本必须为esr-2.8.0、esr-3.4.0、esr-4.4.0及其以上版本。

使用示例

  1. 导入工具库并加载密文。

    # 获取密文示例代码
    import emrssutils.utils
    # 动态获取解密后的值
    password = emrssutils.utils.get_secret(key='<变量名称>')
  2. 引用密文。

    # 引用密文示例代码
    df = spark.read \
      .format("jdbc") \
      .option("url", "jdbc:mysql://<jdbc_url>") \
      .option("dbtable", "<db>.<table>") \
      .option("user", "<username>") \
      .option("password", password) \ # 引用密文  
      .load()
    df.show()

Spark配置中使用

在会话或批任务的Spark配置中,通过${secret_values.变量名称}格式使用密文。

使用示例

在进行MaxCompute的读写操作时,可以首先将AccessKey添加到密文管理中。随后,在SQL会话的Spark配置中使用该密文。有关MaxCompute的具体读写操作,请参见读写MaxCompute

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}  

在批/流任务中使用

在批或流任务运行参数中,通过${secret_values.变量名称}格式使用密文。

使用示例

创建JAR批任务时,可以将相关的加密信息添加至密文管理中。随后,在运行参数中可通过使用${secret_values.变量名称}来引用密文。

image