sync certificate-signing-requests rbac
This commit is contained in:
		
							parent
							
								
									08d4350980
								
							
						
					
					
						commit
						c01eec7da3
					
				| 
						 | 
				
			
			@ -54,11 +54,13 @@ Kubernetes 证书和信任包(trust bundle)API 可以通过为 Kubernetes AP
 | 
			
		|||
{{< feature-state for_k8s_version="v1.19" state="stable" >}}
 | 
			
		||||
 | 
			
		||||
<!--
 | 
			
		||||
A CertificateSigningRequest (CSR) resource is used to request that a certificate be signed
 | 
			
		||||
A [CertificateSigningRequest](/docs/reference/kubernetes-api/authentication-resources/certificate-signing-request-v1/)
 | 
			
		||||
(CSR) resource is used to request that a certificate be signed
 | 
			
		||||
by a denoted signer, after which the request may be approved or denied before
 | 
			
		||||
finally being signed.
 | 
			
		||||
-->
 | 
			
		||||
CertificateSigningRequest(CSR)资源用来向指定的签名者申请证书签名,
 | 
			
		||||
[CertificateSigningRequest](/zh-cn/docs/reference/kubernetes-api/authentication-resources/certificate-signing-request-v1/)
 | 
			
		||||
(CSR)资源用来向指定的签名者申请证书签名,
 | 
			
		||||
在最终签名之前,申请可能被批准,也可能被拒绝。
 | 
			
		||||
 | 
			
		||||
<!--
 | 
			
		||||
| 
						 | 
				
			
			@ -344,7 +346,7 @@ Kubernetes 提供了内置的签名者,每个签名者都有一个众所周知
 | 
			
		|||
   May be auto-approved by {{< glossary_tooltip term_id="kube-controller-manager" >}}.
 | 
			
		||||
   1. Trust distribution: signed certificates must be honored as client certificates by the API server. The CA bundle
 | 
			
		||||
      is not distributed by any other means.
 | 
			
		||||
   1. Permitted subjects - organizations are exactly `["system:nodes"]`, common name starts with "`system:node:`".
 | 
			
		||||
   1. Permitted subjects - organizations are exactly `["system:nodes"]`, common name is "`system:node:${NODE_NAME}`".
 | 
			
		||||
   1. Permitted x509 extensions - honors key usage extensions, forbids subjectAltName extensions and drops other extensions.
 | 
			
		||||
   1. Permitted key usages - `["key encipherment", "digital signature", "client auth"]` or `["digital signature", "client auth"]`.
 | 
			
		||||
   1. Expiration/certificate lifetime - for the kube-controller-manager implementation of this signer, set to the minimum
 | 
			
		||||
| 
						 | 
				
			
			@ -355,7 +357,7 @@ Kubernetes 提供了内置的签名者,每个签名者都有一个众所周知
 | 
			
		|||
   {{< glossary_tooltip term_id="kube-controller-manager" >}} 可以自动批准它。
 | 
			
		||||
 | 
			
		||||
   1. 信任分发:签名的证书将被 API 服务器视为客户端证书,CA 证书包不通过任何其他方式分发。
 | 
			
		||||
   1. 许可的主体:组织名必须是 `["system:nodes"]`,用户名以 "`system:node:`" 开头
 | 
			
		||||
   1. 许可的主体:组织名必须是 `["system:nodes"]`,通用名称为 "`system:node:${NODE_NAME}`" 开头
 | 
			
		||||
   1. 许可的 x509 扩展:允许 key usage 扩展,禁用 subjectAltName 扩展,并删除其他扩展。
 | 
			
		||||
   1. 许可的密钥用途:`["key encipherment", "digital signature", "client auth"]`
 | 
			
		||||
      或 `["digital signature", "client auth"]`。
 | 
			
		||||
| 
						 | 
				
			
			@ -369,7 +371,7 @@ Kubernetes 提供了内置的签名者,每个签名者都有一个众所周知
 | 
			
		|||
   Never auto-approved by {{< glossary_tooltip term_id="kube-controller-manager" >}}.
 | 
			
		||||
   1. Trust distribution: signed certificates must be honored by the API server as valid to terminate connections to a kubelet.
 | 
			
		||||
      The CA bundle is not distributed by any other means.
 | 
			
		||||
   1. Permitted subjects - organizations are exactly `["system:nodes"]`, common name starts with "`system:node:`".
 | 
			
		||||
   1. Permitted subjects - organizations are exactly `["system:nodes"]`, common name is "`system:node:${NODE_NAME}`".
 | 
			
		||||
   1. Permitted x509 extensions - honors key usage and DNSName/IPAddress subjectAltName extensions, forbids EmailAddress and
 | 
			
		||||
      URI subjectAltName extensions, drops other extensions. At least one DNS or IP subjectAltName must be present.
 | 
			
		||||
   1. Permitted key usages - `["key encipherment", "digital signature", "server auth"]` or `["digital signature", "server auth"]`.
 | 
			
		||||
| 
						 | 
				
			
			@ -380,7 +382,7 @@ Kubernetes 提供了内置的签名者,每个签名者都有一个众所周知
 | 
			
		|||
3. `kubernetes.io/kubelet-serving`:签名服务端证书,该服务证书被 API 服务器视为有效的 kubelet 服务端证书,
 | 
			
		||||
   但没有其他保证。{{< glossary_tooltip term_id="kube-controller-manager" >}} 不会自动批准它。
 | 
			
		||||
   1. 信任分发:签名的证书必须被 kube-apiserver 认可,可有效的中止 kubelet 连接,CA 证书包不通过任何其他方式分发。
 | 
			
		||||
   1. 许可的主体:组织名必须是 `["system:nodes"]`,用户名以 "`system:node:`" 开头
 | 
			
		||||
   1. 许可的主体:组织名必须是 `["system:nodes"]`,通用名称为 "`system:node:${NODE_NAME}`" 开头
 | 
			
		||||
   1. 许可的 x509 扩展:允许 key usage、DNSName/IPAddress subjectAltName 等扩展,
 | 
			
		||||
      禁止 EmailAddress、URI subjectAltName 等扩展,并丢弃其他扩展。
 | 
			
		||||
      至少有一个 DNS 或 IP 的 SubjectAltName 存在。
 | 
			
		||||
| 
						 | 
				
			
			@ -909,11 +911,14 @@ openssl req -new -key myuser.key -out myuser.csr -subj "/CN=myuser"
 | 
			
		|||
<!--
 | 
			
		||||
### Create a CertificateSigningRequest {#create-certificatessigningrequest}
 | 
			
		||||
 | 
			
		||||
Create a CertificateSigningRequest and submit it to a Kubernetes Cluster via kubectl. Below is a script to generate the CertificateSigningRequest.
 | 
			
		||||
Create a [CertificateSigningRequest](/docs/reference/kubernetes-api/authentication-resources/certificate-signing-request-v1/)
 | 
			
		||||
and submit it to a Kubernetes Cluster via kubectl. Below is a script to generate the
 | 
			
		||||
CertificateSigningRequest. a CertificateSigningRequest and submit it to a Kubernetes Cluster via kubectl. Below is a script to generate the CertificateSigningRequest.
 | 
			
		||||
-->
 | 
			
		||||
### 创建 CertificateSigningRequest {#create-certificatesigningrequest}
 | 
			
		||||
 | 
			
		||||
创建一个 CertificateSigningRequest,并通过 kubectl 将其提交到 Kubernetes 集群。
 | 
			
		||||
创建一个 [CertificateSigningRequest](/zh-cn/docs/reference/kubernetes-api/authentication-resources/certificate-signing-request-v1/),
 | 
			
		||||
并通过 kubectl 将其提交到 Kubernetes 集群。
 | 
			
		||||
下面是生成 CertificateSigningRequest 的脚本。
 | 
			
		||||
 | 
			
		||||
```shell
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2107,7 +2107,7 @@ Examples:
 | 
			
		|||
 | 
			
		||||
Default RBAC policies grant scoped permissions to control-plane components, nodes,
 | 
			
		||||
and controllers, but grant *no permissions* to service accounts outside the `kube-system` namespace
 | 
			
		||||
(beyond discovery permissions given to all authenticated users).
 | 
			
		||||
(beyond the permissions given by [API discovery roles](#discovery-roles)).
 | 
			
		||||
 | 
			
		||||
This allows you to grant particular roles to particular ServiceAccounts as needed.
 | 
			
		||||
Fine-grained role bindings provide greater security, but require more effort to administrate.
 | 
			
		||||
| 
						 | 
				
			
			@ -2118,7 +2118,7 @@ ServiceAccounts, but are easier to administrate.
 | 
			
		|||
 | 
			
		||||
默认的 RBAC 策略为控制面组件、节点和控制器授予权限。
 | 
			
		||||
但是不会对 `kube-system` 名字空间之外的服务账户授予权限。
 | 
			
		||||
(除了授予所有已认证用户的发现权限)
 | 
			
		||||
(除了 [API 发现角色](#discovery-roles) 授予的权限)
 | 
			
		||||
 | 
			
		||||
这使得你可以根据需要向特定 ServiceAccount 授予特定权限。
 | 
			
		||||
细粒度的角色绑定可带来更好的安全性,但需要更多精力管理。
 | 
			
		||||
| 
						 | 
				
			
			@ -2320,13 +2320,13 @@ service accounts.
 | 
			
		|||
<!--
 | 
			
		||||
Default RBAC policies grant scoped permissions to control-plane components, nodes,
 | 
			
		||||
and controllers, but grant *no permissions* to service accounts outside the `kube-system` namespace
 | 
			
		||||
(beyond discovery permissions given to all authenticated users).
 | 
			
		||||
(beyond the permissions given by [API discovery roles](#discovery-roles)).
 | 
			
		||||
 | 
			
		||||
While far more secure, this can be disruptive to existing workloads expecting to automatically receive API permissions.
 | 
			
		||||
Here are two approaches for managing this transition:
 | 
			
		||||
-->
 | 
			
		||||
默认的 RBAC 策略为控制面组件、节点和控制器等授予有限的权限,但不会为
 | 
			
		||||
`kube-system` 名字空间外的服务账户授权(除了授予所有认证用户的发现权限之外)。
 | 
			
		||||
`kube-system` 名字空间外的服务账户授权(除了 [API 发现角色](#discovery-roles)授予的权限)。
 | 
			
		||||
 | 
			
		||||
这样做虽然安全得多,但可能会干扰期望自动获得 API 权限的现有工作负载。
 | 
			
		||||
这里有两种方法来完成这种转换:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue