DigitalOcean 上的 Kubernetes 集群证书颁发机构
Kubernetes cluster certificate authority on DigitalOcean
我正在尝试配置 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 的用户签名请求:
Locate your Kubernetes cluster certificate authority (CA). This will be responsible for approving the request and generating the necessary certificate to access the cluster API. Its location is normally /etc/kubernetes/pki/. In the case of Minikube, it would be ~/.minikube/. Check that the files ca.crt and ca.key exist in the location.
所以我需要运行命令:
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 批准证书签名请求?
您可以在集群中使用内置 CA 来创建客户端证书。
关于如何使用 CA 的背景信息:cluster-administration-certificates。
重现步骤:
- 确保您已创建 JSON 用户配置文件
示例 JSON 文件:
{
"CN": "example-user",
"key": {
"algo": "rsa",
"size": 4096
},
"names": [{
"O": "example-user",
"email": "some@email"
}]
}
- 为其生成 CSR
- 使用 kubectl 命令提交 CSR
- 请求字段是您的 csr 文件的 base64 编码版本
- 查看你的CSR,执行命令:
kubectl get csr
- 批准CSR,执行命令:
kubectl certificate approve example-user
- 解码证书,执行命令:
kubectl get csr example-user -o
jsonpath='{.status.certificate}' | base64 -d > client.pem
- 您现在可以使用客户端-key.pem和client.pem构建一个
kubeconfig
- 然后您可以在分配给您的集群上创建 RBAC 角色绑定
–user=example-user 或 –group=example-user(假设您使用
“O”:本例中定义了“example-user”)
您可以在这里找到更多信息:certificates。
我正在尝试配置 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 的用户签名请求:
Locate your Kubernetes cluster certificate authority (CA). This will be responsible for approving the request and generating the necessary certificate to access the cluster API. Its location is normally /etc/kubernetes/pki/. In the case of Minikube, it would be ~/.minikube/. Check that the files ca.crt and ca.key exist in the location.
所以我需要运行命令:
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 批准证书签名请求?
您可以在集群中使用内置 CA 来创建客户端证书。
关于如何使用 CA 的背景信息:cluster-administration-certificates。
重现步骤:
- 确保您已创建 JSON 用户配置文件
示例 JSON 文件:
{
"CN": "example-user",
"key": {
"algo": "rsa",
"size": 4096
},
"names": [{
"O": "example-user",
"email": "some@email"
}]
}
- 为其生成 CSR
- 使用 kubectl 命令提交 CSR
- 请求字段是您的 csr 文件的 base64 编码版本
- 查看你的CSR,执行命令:
kubectl get csr
- 批准CSR,执行命令:
kubectl certificate approve example-user
- 解码证书,执行命令:
kubectl get csr example-user -o jsonpath='{.status.certificate}' | base64 -d > client.pem
- 您现在可以使用客户端-key.pem和client.pem构建一个 kubeconfig
- 然后您可以在分配给您的集群上创建 RBAC 角色绑定 –user=example-user 或 –group=example-user(假设您使用 “O”:本例中定义了“example-user”)
您可以在这里找到更多信息:certificates。