Webhook Mode
具体来说,当在判断用户权限时, 模式会使 Kubernetes 查询外部的 REST 服务。
Webhook
模式需要一个 HTTP 配置文件,通过 —authorization-webhook-config-file=SOME_FILENAME
的参数声明。
配置文件的格式使用 kubeconfig。在文件中,”users” 代表着 API 服务器的 webhook,而 “cluster” 代表着远程服务。
使用 HTTPS 客户端认证的配置例子:
需要注意的是 webhook API 对象与其他 Kubernetes API 对象一样都同样都服从 。实施人员应该了解 beta 对象的更宽松的兼容性承诺,同时确认请求的 “apiVersion” 字段以确保能被正确地反序列化。此外,API 服务器还必须启用 authorization.k8s.io/v1beta1
API 扩展组(—runtime-config=authorization.k8s.io/v1beta1=true
)。
一个请求内容的例子:
远程服务被预期能填写请求和反馈的 SubjectAccessReviewStatus 字段,无论是允许访问还是拒绝访问。反馈内容的 “spec” 字段是被忽略的,也是可以被省略的。当请求是被允许的时候,返回的响应如下例所示:
如拒绝,远程服务器会返回:
非资源类的路径包括:/api
, /apis
, , /resetMetrics
,/logs
, /debug
, /healthz
, /swagger-ui/
, /swaggerapi/
, , and/version
。 客户端需要访问 /api
, /api/
, /apis
, /apis/
, 和 /version
以便能发现服务器上有什么资源和版本。对于其他非资源类的路径访问在没有 REST API 访问限制的情况下拒绝。
更多信息可以参考 uthorization.v1beta1 API 对象和webhook.go.
此页是否对您有帮助?
感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问.在 GitHub 仓库上登记新的问题报告问题或者.