【问题标题】:k8s api-server - providing user account authorizationk8s api-server - 提供用户账号授权
【发布时间】:2021-01-19 21:25:58
【问题描述】:

我目前正在使用 Minikube 和 k8s api-server。我可以使用默认服务帐户授权 HTTP 请求(将默认令牌解码为 base64 并作为授权标头提供),但我很难对新创建的用户做同样的事情。

我已经为用户创建了所有相关的.crt、.key文件,以及角色、rolebinding、clusterRole、clusterRoleBinding权限。

我之前尝试将/Users/ionush/k8s/auth/gameadmin.crt 解码为base64 并添加到授权标头,并设置minikube start --extra-config=apiserver.client-ca-file=/Users/ionush/k8s/auth/gameadmin.crt,但这不起作用。如何通过 HTTP 验证用户身份?

这是我的 .kube/config 文件:

apiVersion: v1
clusters:
- cluster:
    certificate-authority: /Users/ionush/.minikube/ca.crt
    server: https://192.168.64.7:8443
  name: minikube
contexts:
- context:
    cluster: minikube
    user: gameadmin
  name: game-context
- context:
    cluster: minikube
    user: minikube
  name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: gameadmin
  user:
    client-certificate: /Users/ionush/k8s/auth/gameadmin.crt
    client-key: /Users/ionush/k8s/auth/gameadmin.key
- name: minikube
  user:
    client-certificate: /Users/ionush/.minikube/profiles/minikube/client.crt
    client-key: /Users/ionush/.minikube/profiles/minikube/client.key

【问题讨论】:

  • 是本地环境还是云环境?你用的是什么 K8s 和 Minikube 版本?您是如何创建证书的?
  • 这是我的本地环境客户端版本:v1.19.2 服务器版本:v1.19.2 minikube 版本:v1.13.1 我使用 openssl 签署了证书,如此处所述。 kubernetes.io/docs/reference/access-authn-authz/…。证书没有问题,我可以在本地终端切换用户时使用它们。只需要知道通过 HTTP 进行身份验证的正确流程

标签: kubernetes minikube kube-apiserver


【解决方案1】:

以下是使用 curl 向 kube-api 服务器进行身份验证的示例

curl --cacert /Users/ionush/.minikube/ca.crt --cert /Users/ionush/k8s/auth/gameadmin.crt --key /Users/ionush/k8s/auth/gameadmin.key https://192.168.64.7:8443/api/v1

【讨论】:

    猜你喜欢
    • 2013-07-23
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多