Skip to content
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

inject: Add tap client identity to proxy injector environment variables #2788

Closed
kleimkuhler opened this issue May 3, 2019 · 6 comments
Closed
Labels
area/identity Automatic transport identity area/inject wontfix

Comments

@kleimkuhler
Copy link
Contributor

kleimkuhler commented May 3, 2019

Feature Request

When proxies are injected, they should contain the tap client's TLS identity as an environment variable.

What problem are you trying to solve?

For #2676, a proxy's tap server must only accept incoming connections from the Linkerd tap client. We are currently able to compare an expected TLS identity with the identity of the incoming connection, but we do not know what the expected TLS identity of the tap client will be.

How should the problem be solved?

Upon proxy injection, the tap client's identity should have been verified; this is assuming the user did not pass --disable-identity to the original install.

What do you want to happen? Add any considered drawbacks.

We should consider the --disable-identity flag. In this scenario, the environment variable should be unset or absent; I'm not sure how we do this right now, but it should be consistent with other optional environment variables. The responsibility of handling an unset/absent tap client identity will rest on the proxy itself.

Any alternatives you've considered?

The tap client's identity can not be passed through in a dynamic way. I believe this needs to happen at inject time and used as part of the proxy's configuration, but I'm open to other suggestions.

How would users interact with this feature?

This is not user facing.

@kleimkuhler kleimkuhler added area/identity Automatic transport identity area/inject labels May 3, 2019
@kleimkuhler kleimkuhler added this to To do in 2.5 - Tap Hardening via automation May 3, 2019
@olix0r
Copy link
Member

olix0r commented May 3, 2019

Small correction: I think you specifically mean that they contain a Tap Client identity. The fact that this is (or was) the controller is an implementation detail of the control plane. In fact, we may want to support a list of allowed identities to support migrations or other integrations.

@kleimkuhler
Copy link
Contributor Author

Oh yes thanks for pointing that out!

@ihcsim
Copy link
Contributor

ihcsim commented May 3, 2019

Does this include proxies in the control plane? These proxies are injected by the linkerd install command, without going through the proxy injector (as it doesn't exist yet).

Also, is the TLS identity equivalent to the issuer's name, CN (i.e. identity.linkerd.cluster.local)?

@kleimkuhler kleimkuhler changed the title inject: Add controller identity to proxy injector environment variables inject: Add tap client identity to proxy injector environment variables May 4, 2019
@kleimkuhler
Copy link
Contributor Author

Yes so we do use tap in the Linkerd namespace and these pods should authenticate clients the same way.

I'm not familiar right now with when the tap service's local identity becomes ready during install; @dadjeibaah has a PR open right now to move it into its own pod.

If we are not able to rely on having the tap service's identity ready when injecting other Linkerd proxies, there may be more design discussion here.

@kleimkuhler kleimkuhler moved this from To do to In Progress in 2.5 - Tap Hardening Jul 30, 2019
@kleimkuhler kleimkuhler moved this from In Progress to Done in 2.5 - Tap Hardening Jul 30, 2019
@stale
Copy link

stale bot commented Aug 2, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 14 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix label Aug 2, 2019
@kleimkuhler
Copy link
Contributor Author

Closed in #3155

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 17, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area/identity Automatic transport identity area/inject wontfix
Projects
No open projects
Development

No branches or pull requests

3 participants