在kubernetes 1.12上运行MinIO(https://docs.min.io/)。我无法通过nginx-ingress运行aws cli命令。直接将端口转发到kubernetes服务时,命令可以正常工作。
尝试
proxy_set_header Host $http_host;
和
more_set_input_headers 'Host: minio:9000';
nginx规则,但没有运气。
示例请求:
aws s3 ls --endpoint-url https://my-endpoint-url.com --profile=minio
无法列出存储桶内容。而是收到错误:
调用ListBuckets时发生错误(SignatureDoesNotMatch) 操作:我们计算出的请求签名与 您提供的签名。检查您的密钥和签名方法。
答案 0 :(得分:1)
这似乎是一个需要重写的问题。 (取消预签名的URL。)
nginx.ingress.kubernetes.io/rewrite-target:/ mybucket / $ 1
删除重写,并修改请求中的路径,解决了该问题。