更新时间:2024-11-08 GMT+08:00

通用队列操作OBS表如何设置AK/SK

(推荐)方案1:使用临时AK/SK

建议使用临时AK/SK,获取方式可参见统一身份认证服务_获取临时AK/SK

认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。

表1 DLI获取访问凭据相关开发指南

类型

操作指导

说明

FLink作业场景

Flink Opensource SQL使用DEW管理访问凭据

Flink Opensource SQL场景使用DEW管理和访问凭据的操作指导,将Flink作业的输出数据写入到Mysql或DWS时,在connector中设置账号、密码等属性。

Flink Jar 使用DEW获取访问凭证读写OBS

访问OBS的AKSK为例介绍Flink Jar使用DEW获取访问凭证读写OBS的操作指导。

用户获取Flink作业委托临时凭证

DLI提供了一个通用接口,可用于获取用户在启动Flink作业时设置的委托的临时凭证。该接口将获取到的该作业委托的临时凭证封装到com.huaweicloud.sdk.core.auth.BasicCredentials类中。

本操作介绍获取Flink作业委托临时凭证的操作方法。

Spark作业场景

Spark Jar 使用DEW获取访问凭证读写OBS

访问OBS的AKSK为例介绍Spark Jar使用DEW获取访问凭证读写OBS的操作指导。

用户获取Spark作业委托临时凭证

本操作介绍获取Spark Jar作业委托临时凭证的操作方法。

方案2:Spark Jar作业设置获取AK/SK

  • 获取结果为AK/SK时,设置如下:
    • 代码创建SparkContext
      val sc: SparkContext = new SparkContext()
      sc.hadoopConfiguration.set("fs.obs.access.key", ak)
      sc.hadoopConfiguration.set("fs.obs.secret.key", sk)
    • 代码创建SparkSession
      val sparkSession: SparkSession = SparkSession
            .builder()
            .config("spark.hadoop.fs.obs.access.key", ak)
            .config("spark.hadoop.fs.obs.secret.key", sk)
            .enableHiveSupport()
            .getOrCreate()
  • 获取结果为AK/SK和Securitytoken时,鉴权时,临时AK/SK和Securitytoken必须同时使用,设置如下:
    • 代码创建SparkContext
      val sc: SparkContext = new SparkContext()
      sc.hadoopConfiguration.set("fs.obs.access.key", ak)
      sc.hadoopConfiguration.set("fs.obs.secret.key", sk)
      sc.hadoopConfiguration.set("fs.obs.session.token", sts)
    • 代码创建SparkSession
      val sparkSession: SparkSession = SparkSession
            .builder()
            .config("spark.hadoop.fs.obs.access.key", ak)
            .config("spark.hadoop.fs.obs.secret.key", sk)
            .config("spark.hadoop.fs.obs.session.token", sts)
            .enableHiveSupport()
            .getOrCreate()