文档首页> 对象存储服务 OBS> obsutil> 最佳实践> 为obsutil配置自动获取访问密钥
更新时间:2023-10-27 GMT+08:00

为obsutil配置自动获取访问密钥

特性说明

除了从配置文件.obsutilconfig中获取访问密钥(AK/SK)外,obsutil还提供链式自动获取访问密钥功能,可以从系统环境变量获取访问密钥,或者通过ECS接口获取临时访问密钥。

启用链式获取访问密钥功能后,obsutil会依次从.obsutilconfig配置文件 -> 系统环境变量 -> ECS弹性云服务器中尝试获取可用的访问密钥。

配置方式

  1. 启用链式自动获取访问密钥功能。

    将.obsutilconfig配置文件中的autoChooseSecurityProvider配置为true。

  2. 配置obsutil获取访问密钥的方法。

    • 如果希望从.obsutilconfig配置文件中获取访问密钥,则将访问密钥配置在.obsutilconfig配置文件的ak、sk参数中(.obsutilconfig配置文件在初始化时已经自动写入密钥,初始化操作参见初始化配置)。
    • 如果希望通过系统环境变量获取访问密钥,则将环境变量中的OBS_ACCESS_KEY_ID设置为ak,OBS_SECRET_ACCESS_KEY设置为sk,OBS_SECURITY_TOKEN设置为token(可为空)。
    • 如果希望通过ECS接口自动获取临时访问密钥,则只需要确保该ECS绑定了IAM对ECS的云服务委托,并给委托配置OBS权限。具体请参见在ECS上获取Security Key

访问密钥查找流程

  1. 从.obsutilconfig配置文件中(ak、sk、token)查找访问密钥,如果访问密钥不为空,结束查找,否则继续下一步查找。
  2. 从系统环境变量(OBS_ACCESS_KEY_ID、OBS_SECRET_ACCESS_KEY、OBS_SECURITY_TOKEN)查找访问密钥,如果访问密钥不为空,结束查找,否则继续下一步查找。
  3. 从当前使用obsutil的ECS查找临时访问密钥,如果临时访问密钥不为空,结束查找,否则使用匿名用户访问OBS服务。
  • 访问密钥不为空是指至少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。