Skip to content

Clarify what "match" means for --*-cert-allowed-{cn/hostname} flags #19800

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
VannTen opened this issue Apr 25, 2025 · 0 comments
Open

Clarify what "match" means for --*-cert-allowed-{cn/hostname} flags #19800

VannTen opened this issue Apr 25, 2025 · 0 comments

Comments

@VannTen
Copy link

VannTen commented Apr 25, 2025

What would you like to be added?

https://etcd.io/docs/v3.5/op-guide/security/ says the following about the --peer-cert-allowed-cn flag (emphasis mine):

v3.3.0 adds etcd --peer-cert-allowed-cn flag to support CN(Common Name)-based auth for inter-peer connections. Kubernetes TLS bootstrapping involves generating dynamic certificates for etcd members and other system components (e.g. API server, kubelet, etc.). Maintaining different CAs for each component provides tighter access control to etcd cluster but often tedious. When --peer-cert-allowed-cn flag is specified, node can only join with matching common name even with shared CAs. For example, each member in 3-node cluster is set up with CSRs (with cfssl) as below:

The example provided below (m1.etcd.local matches etcd.local, not m2.etcd.local seems to suggests something like "is a subdomain of" match, but it's not specified explicitly (at least I didn't found it).

https://etcd.io/docs/v3.5/op-guide/configuration/#security reads to me instead as it should be an exact match.

Could the match function/method used be explicitly called out ?

I presume the same matching mechanisms apply to --peer-cert-allowed-hostname (use SAN instead of CN if I'm correct) and --client-cert-allowed-hostname

Why is this needed?

Easier locking down of an etcd cluster
/area documentation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

3 participants