
# 通用队列操作OBS表如何设置AK/SK
#### （推荐）方案1：使用临时AK/SK
建议使用临时AK/SK，获取方式可参见[统一身份认证服务_获取临时AK/SK](https://support.huaweicloud.com/api-iam/iam_04_0002.html)。
![](https://support.huaweicloud.com/dli_faq/public_sys-resources/note_3.0-zh-cn.png)
认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险，建议在配置文件或者环境变量中密文存放，使用时解密，确保安全。
表1DLI获取访问凭据相关开发指南 
| 类型                                            | 操作指导                                                                                         | 说明                                                                                                                                                                      |
|:---|:---|:---|
| Flink作业场景                                     | [Flink Opensource SQL使用DEW管理访问凭据](https://support.huaweicloud.com/devg-dli/dli_09_0210.html) | Flink Opensource SQL场景使用DEW管理和访问凭据的操作指导，将Flink作业的输出数据写入到Mysql或DWS时，在connector中设置账号、密码等属性。                                                                               |
| Flink作业场景                                     | [Flink Jar 使用DEW获取访问凭证读写OBS](https://support.huaweicloud.com/devg-dli/dli_09_0211.html)      | 访问OBS的AKSK为例介绍Flink Jar使用DEW获取访问凭证读写OBS的操作指导。                                                                                                                           |
| Flink作业场景                                     | [用户获取Flink作业委托临时凭证](https://support.huaweicloud.com/devg-dli/dli_09_0212.html)               | DLI提供了一个通用接口，可用于获取用户在启动Flink作业时设置的委托的临时凭证。该接口将获取到的该作业委托的临时凭证封装到com.huaweicloud.sdk.core.auth.BasicCredentials类中。 本操作介绍获取Flink作业委托临时凭证的操作方法。 |
| Spark作业场景  | [Spark Jar 使用DEW获取访问凭证读写OBS](https://support.huaweicloud.com/devg-dli/dli_09_0215.html)      | 访问OBS的AKSK为例介绍Spark Jar使用DEW获取访问凭证读写OBS的操作指导。                                                                                                                           |
| Spark作业场景  | [用户获取Spark作业委托临时凭证](https://support.huaweicloud.com/devg-dli/dli_09_0216.html)               | 本操作介绍获取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()
    ```
    
   
 
