
# （可选）Session鉴权
#### Session鉴权概述
Session模块的主要作用是实现与公有云资源的鉴权，并初始化ModelArts SDK Client、OBS Client。当成功建立Session后，您可以直接调用ModelArts的SDK接口。
- ModelArts开发环境Notebook不需要Session鉴权，可以直接使用。示例代码如下：
  ```
  from modelarts.session import Session
  session = Session()
  ```
  
- 本地PC使用ModelArts SDK时，需要进行Session鉴权。鉴权方式可参考如下认证方式，选择其中一种方式进行认证即可。
  - [用户名密码认证模式]： 支持[OBS管理](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0217.html)、[数据管理](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0325.html)、[训练管理](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0420.html)、[模型管理](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0194.html)、[服务管理](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0200.html)的鉴权。
  
  - [用户AK-SK认证模式]： 支持[OBS管理](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0217.html)、[数据管理](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0325.html)、[训练管理](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0420.html)、[模型管理](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0194.html)、[服务管理](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0200.html)的鉴权。
   
 
 #### 用户名密码认证模式
本地安装完成ModelArts SDK后，可通过用户名密码认证模式进行Session鉴权。示例代码如下：
- 使用账号认证
  "username"填写您的账号名。
  ```
  from modelarts.session import Session
  # 认证用的password硬编码到代码中或者明文存储都有很大的安全风险，建议在配置文件或者环境变量中密文存放，使用时解密，确保安全；
  # 本示例以password保存在环境变量中来实现身份验证为例，运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_PASSWORD。
  __PASSWORD = os.environ["HUAWEICLOUD_SDK_PASSWORD"]
  # 如果进行了加密还需要进行解密操作
  session = Session(username='***',  password=__PASSWORD, region_name='***', project_id='***')
  ```
  
- 使用IAM用户认证
  "account"填写您的账号名，"username"填写您的IAM用户名。
  ```
  from modelarts.session import Session
  # 认证用的password硬编码到代码中或者明文存储都有很大的安全风险，建议在配置文件或者环境变量中密文存放，使用时解密，确保安全；
  # 本示例以password保存在环境变量中来实现身份验证为例，运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_PASSWORD。
  __PASSWORD = os.environ["HUAWEICLOUD_SDK_PASSWORD"]
  # 如果进行了加密还需要进行解密操作
  session = Session(account='***', username='***',  password=__PASSWORD, region_name='***', project_id='***')
  ```
  
![](https://support.huaweicloud.com/sdkreference-modelarts/public_sys-resources/note_3.0-zh-cn.png)
账号与用户的概念介绍，请参见[IAM基本概念](https://support.huaweicloud.com/productdesc-iam/iam_01_0023.html)。获取您的账号、用户名等信息，请参见[获取用户名、用户ID、项目名称、项目ID](https://support.huaweicloud.com/api-iam/iam_17_0002.html)。
如果您的华为云账号已经升级为华为账号，则账号认证方式将不可用，请创建一个IAM用户，使用IAM用户认证。
 #### 用户AK-SK认证模式
本地安装完成ModelArts SDK后，可通过用户AK-SK认证模式进行Session鉴权。示例代码如下：
```
from modelarts.session import Session
# 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险，建议在配置文件或者环境变量中密文存放，使用时解密，确保安全；
# 本示例以ak和sk保存在环境变量中来实现身份验证为例，运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。
__AK = os.environ["HUAWEICLOUD_SDK_AK"]
__SK = os.environ["HUAWEICLOUD_SDK_SK"]
# 如果进行了加密还需要进行解密操作
session = Session(access_key=__AK,secret_key=__SK, project_id='***', region_name='***')
```
其中，各参数说明如下：
- "access_key"和"secret_key"获取方式如下：
  1. 登录管理控制台，可单击控制台右上角的账户名，在菜单栏中单击"我的凭证"，进入"我的凭证"页面。
  
  2. 在"我的凭证 \> 访问密钥"中，单击"新增访问密钥"。
  
  3. 在"新增访问密钥"弹窗中，填写该密钥的描述说明，单击"确定"。根据提示单击"立即下载"，下载密钥。密钥文件会直接保存到浏览器默认的下载文件夹中，文件名为"credentials.csv"，可打开文件查看访问密钥（Access Key Id和Secret Access Key）。
   
- "project_id"即项目ID，获取方式如下：
  在"我的凭证"页面，单击"API凭证"，在"项目列表"中可查看项目ID和名称（即"项目"）。多项目时，展开"所属区域"，从"项目ID"列获取子项目ID。
  图1查看项目ID   
  ![](https://support.huaweicloud.com/sdkreference-modelarts/figure/zh-cn_image_0000001915170701.png) 
- "region_name"即区域ID。获取方式请参见[获取区域ID](https://support.huaweicloud.com/api-iam/iam_17_0002.html)。
 
