gimme-aws-creds注册MFA设备时抛出KeyError:'sid'报错问题
问题描述
我在使用以下配置部署gimme-aws-creds工具:
[DEFAULT] okta_org_url = https://xxxxx.okta.com okta_auth_server = client_id = gimme_creds_server = appurl aws_appname = aws_rolename = all write_aws_creds = True cred_profile = default okta_username = my_okta_user_name app_url = https://xxxxx.okta.com/home/amazon_aws/app_instance_id/something resolve_aws_alias = True include_path = True preferred_mfa_type = token:software:totp remember_device = True aws_default_duration = 150000 device_token = output_format =
运行环境
- 操作系统:Windows 10
- Python版本:
3.10.5 - pip3版本:
22.1.2 - gimme-aws-creds版本:
2.4.0
执行gimme-aws-creds --register-device命令注册MFA设备时,抛出如下错误:
File "C:\Tools\Python\lib\site-packages\requests\cookies.py", line 413, in _find_no_duplicates
raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}") KeyError: "name='sid', domain=None, path=None"
报错截图参考:
解决方法
这个报错是gimme-aws-creds 2.4.0版本的固有逻辑缺陷:代码默认首次请求Okta服务后响应一定会携带sid标识的Cookie,没有做存在性判断,当首次请求未返回该Cookie时就会直接抛出KeyError,按以下顺序尝试修复即可:
- 优先升级gimme-aws-creds到最新版本,这个逻辑缺陷已经在后续发布版本中修复,执行命令:
pip3 install --upgrade gimme-aws-creds
升级完成后重新执行设备注册命令即可正常运行。 - 受环境限制无法升级版本的,先直接执行不带
--register-device参数的gimme-aws-creds命令,走完一次完整的账号登录、MFA验证流程,本地会自动缓存会话相关的Cookie,之后再执行设备注册命令即可绕过该报错。 - 以上两种方法都无效的,将requests依赖库降级到2.27.1版本,执行命令:
pip3 install requests==2.27.1
降级完成后重试操作即可。
内容的提问来源于stack exchange,提问作者LP13
相关产品推荐
相关产品推荐

