配置MLflow Artifact Store用MinIO STS凭证连接S3出现InvalidTokenId报错如何解决
问题排查与解决步骤
- 检查STS凭证时效性
通过AssumeRoleWithLDAPIdentity生成的临时凭证默认有效期为1小时,若生成凭证到执行MLflow上传的间隔超过有效期,会直接触发token无效报错,重新调用STS接口获取新的凭证即可。 - 修正环境变量命名
MLflow底层依赖boto3对接S3兼容存储,boto3官方标准识别的环境变量为AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN,你当前使用的AWS_ACCESS_KEY、AWS_SECRET_KEY为非标准缩写,部分场景下无法被boto3正常识别,替换为标准命名重新导出环境变量即可。 - 补充MinIO endpoint配置
未显式配置MinIO服务地址时,boto3会默认请求AWS官方S3接口,导致本地MinIO的凭证校验失败,需额外导出以下两个环境变量:export MLFLOW_S3_ENDPOINT_URL=http://<你的MinIO服务地址>:<端口> export AWS_ENDPOINT_URL_S3=http://<你的MinIO服务地址>:<端口> - 校验凭证本身权限有效性
先用生成的STS凭证通过aws cli直接测试文件上传,排除凭证本身权限问题:
若测试上传失败,说明STS生成的凭证本身无对应bucket的读写权限,需回到MinIO配置页检查LDAP用户对应的角色策略,确认已开通mlflow bucket的# 配置临时凭证 aws configure set aws_access_key_id <你生成的access_key> aws configure set aws_secret_access_key <你生成的secret_key> aws configure set aws_session_token <你生成的session_token> aws configure set endpoint_url http://<你的MinIO服务地址>:<端口> # 测试上传到mlflow对应bucket aws s3 cp ./test_file s3://mlflow/test_paths3:PutObject等必要权限。 - 检查凭证赋值错误
确认导出环境变量时没有多余的空格、换行符,也没有将access_key、secret_key、session_token三个值的对应关系填错。
内容的提问来源于stack exchange,提问作者veeresh patil
相关产品推荐
相关产品推荐

