osm icon indicating copy to clipboard operation
osm copied to clipboard

Allow mTLS at egress

Open steeling opened this issue 3 years ago • 12 comments
trafficstars

Phase 1 could simply be a boolean on egress that applies mTLS with the existing mesh certificate. The onus would be on users to distribute the root certs appropriately.

Phase 2 could be providing another public key for validation.

steeling avatar May 11 '22 13:05 steeling

@steeling could you please describe in detail the motivation for this issue and what is being requested here. Does this pertain to egress (pod to external) traffic or something else?

shashankram avatar May 11 '22 16:05 shashankram

Yes this is for pod to external traffic, to meet security requirements around mTLS

steeling avatar May 18 '22 15:05 steeling

Yes this is for pod to external traffic, to meet security requirements around mTLS

mTLS is supported with Egress, though the TLS origination for external traffic must happen within the application code.

shashankram avatar May 18 '22 16:05 shashankram

(emphasis mine)

mTLS is supported with Egress, though the TLS origination for external traffic must happen within the application code.

I think we can do better than this. Automatic mTLS on egress is a much better user-experience IMO.

keithmattix avatar May 18 '22 17:05 keithmattix

(emphasis mine)

mTLS is supported with Egress, though the TLS origination for external traffic must happen within the application code.

I think we can do better than this. Automatic mTLS on egress is a much better user-experience IMO.

Enabling provisioning user TLS certificates is an option that can enable this. However, note that this mechanism was intentionally not supported as a design choice in an effort to keep the behavior simple without the added complexity of needing to deal with custom certificates. If users are requesting for this feature, we can consider extending the current capability.

shashankram avatar May 18 '22 18:05 shashankram

Why do we need to provision user certificates? If the user provisions OSM with an intermediate CA, wouldn't sibling CAs (i.e. certs derived from the same root as the intermediate) automatically be trusted?

keithmattix avatar May 18 '22 18:05 keithmattix

Why do we need to provision user certificates? If the user provisions OSM with an intermediate CA, wouldn't sibling CAs (i.e. certs derived from the same root as the intermediate) automatically be trusted?

That would work. What I meant is that for mTLS to an external destination not managed by OSM, customers will likely want to bring their own cert or not use self-signed certs, as the intermediary/root cert for the external destination is not derived from a cert issued by OSM. If we are talking about one-way TLS (not mTLS), it's simpler in terms of configuration.

@steeling could you kindly add more details describing the scenario you are requesting support for. A few additional lines describing the scenario and existing limitations will help add clarity.

shashankram avatar May 18 '22 19:05 shashankram

Yes this is for pod to external traffic, to meet security requirements around mTLS

mTLS is supported with Egress, though the TLS origination for external traffic must happen within the application code.

correction: s/mTLS/TLS

shashankram avatar May 18 '22 19:05 shashankram

@shashankram I see what you're saying; self-signed Tresor certificates wouldn't work, but the cert-manager or Vault provider pointing to an intermediate CA should. That way, all the service certs would be derived from that intermediate and be able to talk to the external destinations

keithmattix avatar May 18 '22 20:05 keithmattix

This issue will be closed due to a long period of inactivity. If you would like this issue to remain open then please comment or update.

github-actions[bot] avatar Sep 17 '22 00:09 github-actions[bot]

Issue closed due to inactivity.

github-actions[bot] avatar Sep 24 '22 00:09 github-actions[bot]

Keep open

keithmattix avatar Sep 24 '22 17:09 keithmattix

This issue will be closed due to a long period of inactivity. If you would like this issue to remain open then please comment or update.

github-actions[bot] avatar Nov 25 '22 00:11 github-actions[bot]

Issue closed due to inactivity.

github-actions[bot] avatar Dec 02 '22 00:12 github-actions[bot]