为obsutil配置自动获取访问密钥
特性说明
除了从配置文件.obsutilconfig中获取访问密钥(AK/SK)外,obsutil还提供链式自动获取访问密钥功能,可以从系统环境变量获取访问密钥,或者通过ECS接口获取临时访问密钥。
启用链式获取访问密钥功能后,obsutil会依次从.obsutilconfig配置文件 -> 系统环境变量 -> ECS弹性云服务器中尝试获取可用的访问密钥。
配置方式
- 启用链式自动获取访问密钥功能。
将.obsutilconfig配置文件中的autoChooseSecurityProvider配置为true。
- 配置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。
访问密钥查找流程
- 从.obsutilconfig配置文件中(ak、sk、token)查找访问密钥,如果访问密钥不为空,结束查找,否则继续下一步查找。
- 从系统环境变量(OBS_ACCESS_KEY_ID、OBS_SECRET_ACCESS_KEY、OBS_SECURITY_TOKEN)查找访问密钥,如果访问密钥不为空,结束查找,否则继续下一步查找。
- 从当前使用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。