Qustion
クライアント証明書を使用してAPIサーバーAPIにアクセスするにはどうすればよいですか。試してみましたが成功しませんでした。 X509 Client Certs (Authentication Strategyによるとクライアント証明書付きAPIサーバーにアクセスする方法
export K8S_PKI_HOME=/etc/kubernetes/pki
curl -k --key ${K8S_PKI_HOME}/ca.key --cert ${K8S_PKI_HOME}/ca.crt \
https://localhost:6443/api/v1/componentstatuses
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "componentstatuses is forbidden: User \"kubernetes\" cannot list componentstatuses at the cluster scope",
"reason": "Forbidden",
"details": {
"kind": "componentstatuses"
},
"code": 403
}
:
クライアント証明書認証は、APIサーバに--client-CA-ファイル= somefileというオプションを渡すことで有効になります。 /etc/kubernetes/manifests/kube-apiserver.yamlで
、--client-CA-ファイル=の/ etc/kubernetes/PKI/ca.crtが指定されています。
spec:
containers:
- command:
- kube-apiserver
- --client-ca-file=/etc/kubernetes/pki/ca.crt
:// localhostを:// localhostを:6443/API/V1/componentstatuses'、一般的に' HTTP、あなたもマスターの_unauthenticated_ポートへのアクセス権を持っていることは完全に可能です:8080/api/v1/componentstatus' authnとauthzの両方をバイパスできます –