
# 为obsutil配置自动获取访问密钥
#### 特性说明
除了从配置文件.obsutilconfig中获取访问密钥（AK/SK）外，obsutil还提供链式自动获取访问密钥功能，可以从系统环境变量获取访问密钥，或者通过ECS接口获取临时访问密钥。
启用链式获取访问密钥功能后，obsutil会依次从.obsutilconfig配置文件 -\> 系统环境变量 -\> ECS弹性云服务器中尝试获取可用的访问密钥。
#### 配置方式
1. 启用链式自动获取访问密钥功能。 
   将.obsutilconfig配置文件中的autoChooseSecurityProvider配置为true。
   
   
2. 配置obsutil获取访问密钥的方法。 
   - 如果希望从.obsutilconfig配置文件中获取访问密钥，则将访问密钥配置在.obsutilconfig配置文件的ak、sk参数中（.obsutilconfig配置文件在初始化时已经自动写入密钥，初始化操作参见[初始化配置](https://support.huaweicloud.com/utiltg-obs/obs_11_0005.html)）。
   
   - 如果希望通过系统环境变量获取访问密钥，则将环境变量中的OBS_ACCESS_KEY_ID设置为ak，OBS_SECRET_ACCESS_KEY设置为sk，OBS_SECURITY_TOKEN设置为token（可为空）。
   
   - 如果希望通过ECS接口自动获取临时访问密钥，则只需要确保该ECS绑定了IAM对ECS的云服务委托，并给委托配置OBS权限。具体请参见[在ECS上获取Security Key](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0166.html#section7)。
   
   
   
   
 
#### 访问密钥查找流程
1. 从.obsutilconfig配置文件中（ak、sk、token）查找访问密钥，如果访问密钥不为空，结束查找，否则继续下一步查找。
2. 从系统环境变量（OBS_ACCESS_KEY_ID、OBS_SECRET_ACCESS_KEY、OBS_SECURITY_TOKEN）查找访问密钥，如果访问密钥不为空，结束查找，否则继续下一步查找。
3. 从当前使用obsutil的ECS查找临时访问密钥，如果临时访问密钥不为空，结束查找，否则使用匿名用户访问OBS服务。
 
![](https://support.huaweicloud.com/utiltg-obs/public_sys-resources/note_3.0-zh-cn.png)
- 访问密钥不为空是指至少ak和sk同时不为空，token可为空。
- 从系统环境变量查找访问密钥时，OBS_ACCESS_KEY_ID对应ak，OBS_SECRET_ACCESS_KEY对应sk，OBS_SECURITY_TOKEN对应token。
- 如果使用客户端跨区域复制模式，则系统环境变量中的OBS_ACCESS_KEY_ID_CRR对应akCrr，OBS_SECRET_ACCESS_KEY_CRR对应skCrr，OBS_SECURITY_TOKEN_CRR对应tokenCrr。
- 从ECS查找访问密钥的前提条件是obsutil在ECS上运行且该ECS绑定了委托。
- 开启链式自动获取访问密钥功能后，您仍需要配置endpoint。
 
