-
Notifications
You must be signed in to change notification settings - Fork 69
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
Design for authentication with image registries #11
Comments
NB imagePullSecrets for workloads will not in general be in the same namespace or even the same cluster as the ImageRepository objects. |
When we are using metadata version, we need to aware of supporting metadata version( IMDSv1 and IMDSv2) . IMDSv1 is not having the security compliance so we need to use IMDSv2. I have already raised this issue in FluxV1 and waiting for the solution |
I wonder if it is possible to take an approach similar to SOPS when For ECR I wonder if the I hope that makes sense. |
There are solutions for ECR, GCR and Azure given in https://toolkit.fluxcd.io/guides/image-update/#imagerepository-cloud-providers-authentication. These rely on using This approach is better than trying to build authentication into the image reflector controller, because it doesn't need additional, complicated machinery for multi-tenancy, and it generalises to other cloud platforms without needing further work here. The downside is that it's a little more work on the part of the end user -- but the bulk of setting it up is figuring out the platform configuration (IAM roles and whatnot), which you would have to do in either case. Can anyone here comment on whether they've been able to set things up using the guide linked above? |
@squaremo Could we please re-implement the authentication mechanism for ACR as done in Flux v1 by using the the Service Principal credentials available at the host path in |
We came up to this issue in today's Bug Scrub, and in the discussion it came up that we have this library: https://github.com/google/go-containerregistry Does this library solve part of the problem? I understand it's in use already, and Google has added support for authenticating to its own container registry through that library, (but other vendors may not have added their own support.) |
There is some code in there for getting credentials by GCP-specific means, so yes it helps a bit. The main part of designing integration for any platform is figuring out which means is the most appropriate to running as a controller, limiting dependencies, and using ambient authorisation rather than requiring secrets. |
…d): elaborate on how to enable autologin for ECR fluxcd/flux#1619 fluxcd/flux2#107 fluxcd#11 fluxcd#139 fluxcd#147 fluxcd#174 fluxcd#179 fluxcd#180 fluxcd/website#601 fluxcd#193 fluxcd/website#611 https://fluxcd.io/docs/guides/image-update/#aws-elastic-container-registry Signed-off-by: lloydchang <lloydchang@gmail.com>
…d): elaborate on how to enable autologin for ECR fluxcd/flux#1619 fluxcd/flux2#107 fluxcd#11 fluxcd#139 fluxcd#147 fluxcd#174 fluxcd#179 fluxcd#180 fluxcd/website#601 fluxcd#193 fluxcd/website#611 https://fluxcd.io/docs/guides/image-update/#aws-elastic-container-registry Signed-off-by: lloydchang <lloydchang@gmail.com>
…d): elaborate on how to enable autologin for ECR fluxcd/flux#1619 fluxcd/flux2#107 fluxcd#11 fluxcd#139 fluxcd#147 fluxcd#174 fluxcd#179 fluxcd#180 fluxcd/website#601 fluxcd#193 fluxcd/website#611 https://fluxcd.io/docs/guides/image-update/#aws-elastic-container-registry Signed-off-by: lloydchang <lloydchang@gmail.com> Signed-off-by: Kingdon Barrett <kingdon@weave.works>
…d): elaborate on how to enable autologin for ECR fluxcd/flux#1619 fluxcd/flux2#107 fluxcd#11 fluxcd#139 fluxcd#147 fluxcd#174 fluxcd#179 fluxcd#180 fluxcd/website#601 fluxcd#193 fluxcd/website#611 https://fluxcd.io/docs/guides/image-update/#aws-elastic-container-registry Signed-off-by: lloydchang <lloydchang@gmail.com> Signed-off-by: Kingdon Barrett <kingdon@weave.works>
ACR, GCR, ECR both static and IAM role auth have been implemented and documented. |
Must take into account these scenarios:
In the case of ECR and GCR, the permissions are connected to the account running the controller, so it is not possible to have multi-tenancy (ImageRepository objects that have different access to ECR, say) without some extra machinery. Supporting only single tenancy is OK for now.
The text was updated successfully, but these errors were encountered: