Kubernetes集群在DigitalOcean上的证书颁发机构

时间:2019-12-23 13:35:26

标签: kubernetes openssl certificate digital-ocean rbac

我正在尝试配置RBAC以添加具有受限访问权限的新用户。我正在关注本教程:https://docs.bitnami.com/kubernetes/how-to/configure-rbac-in-your-kubernetes-cluster/#use-case-1-create-user-with-limited-namespace-access

它要求我使用Kubernetes CA批准用户签名请求:

  

找到您的Kubernetes群集证书颁发机构(CA)。这将负责批准请求并生成访问群集API所需的证书。它的位置通常是/ etc / kubernetes / pki /。对于Minikube,它将是〜/ .minikube /。检查该位置是否存在文件ca.crt和ca.key。

所以我需要运行命令:

openssl x509 -req -in employee.csr -CA CA_LOCATION/ca.crt -CAkey CA_LOCATION/ca.key -CAcreateserial -out employee.crt -days 500

但是在DigitalOcean中,我无法访问Kubernetes的内部结构(无法接触节点分支)。

是否可以通过DigitalOcean批准证书签名请求?

1 个答案:

答案 0 :(得分:1)

您可以在群集中的CA中使用内置版本来创建客户端证书。

有关如何使用CA的背景信息:cluster-administration-certificates

复制步骤:

  1. 确保已创建JSON用户配置文件

示例JSON文件:

{
    "CN": "example-user",
    "key": {
        "algo": "rsa",
        "size": 4096
    },
    "names": [{
        "O": "example-user",
        "email": "some@email"
    }]
}
  1. 为其生成CSR
  2. 使用kubectl命令提交CSR
  3. 请求字段是csr文件的base64编码版本
  4. 查看您的CSR,执行命令:kubectl get csr
  5. 批准CSR,执行命令:kubectl certificate approve example-user
  6. 解码证书,执行命令:kubectl get csr example-user -o jsonpath='{.status.certificate}' | base64 -d > client.pem
  7. 您现在可以使用client-key.pem和client.pem来构建一个 kubeconfig
  8. 然后您可以在群集上创建RBAC角色绑定,将其分配给 –user = example-user或–group = example-user(假设您使用了 “ O”:在此示例中定义了“ example-user”)

在这里您可以找到更多信息:certificates