Hi All, We see that adding any kind of specific authentication raises more questions than answers. What would be if a generic API would be added without any real authentication logic? That way every provider can add its own protocol implementation as additional jar.
BR, G On Thu, Jun 17, 2021 at 7:53 PM Austin Cawley-Edwards < austin.caw...@gmail.com> wrote: > Hi all, > > Sorry to be joining the conversation late. I'm also on the side of > Konstantin, generally, in that this seems to not be a core goal of Flink as > a project and adds a maintenance burden. > > Would another con of Kerberos be that is likely a fading project in terms > of network security? (serious question, please correct me if there is > reason to believe it is gaining adoption) > > The point about Kerberos being independent of infrastructure is a good one > but is something that is also solved by modern sidecar proxies + service > meshes that can run across Kubernetes and bare-metal. These solutions also > handle certificate provisioning, rotation, etc. in addition to higher-level > authorization policies. Some examples of projects with this "universal > infrastructure support" are Kuma[1] (CNCF Sandbox, I'm a maintainer) and > Istio[2] (Google). > > Wondering out loud: has anyone tried to run Flink on top of cilium[3], > which also provides zero-trust networking at the kernel level without > needing to instrument applications? This currently only runs on Kubernetes > on Linux, so that's a major limitation, but solves many of the request > forging concerns at all levels. > > Thanks, > Austin > > [1]: https://kuma.io/docs/1.1.6/quickstart/universal/ > [2]: https://istio.io/latest/docs/setup/install/virtual-machine/ > [3]: https://cilium.io/ > > On Thu, Jun 17, 2021 at 1:50 PM Till Rohrmann <trohrm...@apache.org> > wrote: > > > I left some comments in the Google document. It would be great if > > someone from the community with security experience could also take a > look > > at it. Maybe Eron you have an opinion on the topic. > > > > Cheers, > > Till > > > > On Thu, Jun 17, 2021 at 6:57 PM Till Rohrmann <trohrm...@apache.org> > > wrote: > > > > > Hi Gabor, > > > > > > I haven't found time to look into the updated FLIP yet. I'll try to do > it > > > asap. > > > > > > Cheers, > > > Till > > > > > > On Wed, Jun 16, 2021 at 9:35 PM Konstantin Knauf <kna...@apache.org> > > > wrote: > > > > > >> Hi Gabor, > > >> > > >> > However representing Kerberos as completely new feature is not true > > >> because > > >> it's already in since Flink makes authentication at least with HDFS > and > > >> Hbase through Kerberos. > > >> > > >> True, that is one way to look at it, but there are differences, too: > > >> Control Plane vs Data Plane, Core vs Connectors. > > >> > > >> > Adding OIDC or OAuth2 has the exact same concerns what you've guys > > just > > >> raised. Why exactly these? If you think this would be beneficial we > can > > >> discuss it in detail > > >> > > >> That's exactly my point. Once we start adding authx support, we will > > >> sooner or later discuss other options besides Kerberos, too. A user > who > > >> would like to use OAuth can not easily use Kerberos, right? > > >> That is one of the reasons I am skeptical about adding initial authx > > >> support. > > >> > > >> > Related authorization you've mentioned it can be complicated over > > time. > > >> Can > > >> you show us an example? We've knowledge with couple of open source > > >> components > > >> but authorization was never a horror complex story. I personally have > > the > > >> most experience with Spark which I think is quite simple and stable. > > Users > > >> can be viewers/admins > > >> and jobs started by others can't be modified. If you can share an > > example > > >> over-complication we can discuss on facts. > > >> > > >> Authorization is a new aspect that needs to be considered for every > > >> addition to the REST API. In the future users might ask for additional > > >> roles (e.g. an editor), user-defined roles and you've already > mentioned > > >> job-level permissions yourself. And keep in mind that there might also > > be > > >> larger additions in the future like the flink-sql-gateway. > Contributions > > >> like this become more expensive the more aspects we need to consider. > > >> > > >> In general, I believe, it is important that the community focuses its > > >> efforts where we can generate the most value to the user and - > > personally - > > >> I don't think there is much to gain by extending Flink's scope in that > > >> direction. Of course, this is not black and white and there are other > > valid > > >> opinions. > > >> > > >> Thanks, > > >> > > >> Konstantin > > >> > > >> On Wed, Jun 16, 2021 at 7:38 PM Gabor Somogyi < > > gabor.g.somo...@gmail.com> > > >> wrote: > > >> > > >>> Hi Konstantin, > > >>> > > >>> Thanks for the response. Related new feature introduction in case of > > >>> Basic > > >>> auth I tend to agree, anything else can be chosen. > > >>> > > >>> However representing Kerberos as completely new feature is not true > > >>> because > > >>> it's already in since Flink makes authentication at least with HDFS > and > > >>> Hbase through Kerberos. > > >>> The main problem with the actual Kerberos implementation is that it > > >>> contains several bugs and only partially implemented. Following your > > >>> suggestion can we agree that we > > >>> skip the Basic auth implementation and finish an already started > > Kerberos > > >>> story by adding History Server and Job Dashboard authentication? > > >>> > > >>> Adding OIDC or OAuth2 has the exact same concerns what you've guys > just > > >>> raised. Why exactly these? If you think this would be beneficial we > can > > >>> discuss it in detail > > >>> but as a side story it would be good to finish a halfway done > Kerberos > > >>> story. > > >>> > > >>> Related authorization you've mentioned it can be complicated over > time. > > >>> Can > > >>> you show us an example? We've knowledge with couple of open source > > >>> components > > >>> but authorization was never a horror complex story. I personally have > > the > > >>> most experience with Spark which I think is quite simple and stable. > > >>> Users > > >>> can be viewers/admins > > >>> and jobs started by others can't be modified. If you can share an > > example > > >>> over-complication we can discuss on facts. > > >>> > > >>> Thank you in advance! > > >>> > > >>> BR, > > >>> G > > >>> > > >>> > > >>> On Wed, Jun 16, 2021 at 5:42 PM Konstantin Knauf <kna...@apache.org> > > >>> wrote: > > >>> > > >>> > Hi everyone, > > >>> > > > >>> > sorry for joining late and thanks for the insightful discussion. > > >>> > > > >>> > In general, I'd personally prefer not to increase the surface area > of > > >>> > Apache Flink unless there is a good reason. It seems we all agree > > that > > >>> > authx is not part of the core value proposition of Apache Flink, so > > if > > >>> we > > >>> > can delegate this problem to a more specialized tool, I am in favor > > of > > >>> > that. Apache Flink is already huge and a lot of work goes into > > >>> maintenance, > > >>> > so I personally have become more sensitive to this aspect over > time. > > >>> > > > >>> > If we add support for Basic Auth and Kerberos now, users will > sooner > > or > > >>> > later ask for OIDC, LDAP, SAML,... I acknowledge that Kerberos is > > >>> widely > > >>> > used in the corporate, on-premises context, but isn't the focus > > moving > > >>> more > > >>> > towards more web-friendly standards like OIDC/OAuth 2.0? If we only > > >>> want to > > >>> > support a single protocol, there is an argument to be made that it > > >>> should > > >>> > be OIDC and Dex [1,2] as a bridge to everything else. Have OIDC or > > >>> OAuth2 > > >>> > been considered instead of Kerberos? How do you see the market > > moving? > > >>> But > > >>> > as I said before, in my opinion we can generate more value by > > investing > > >>> > into other areas of Apache Flink. > > >>> > > > >>> > Authorization also has the potential to become more fine-grained > and > > >>> > complex over time: you already mentioned restricting the actions > > that a > > >>> > specific user can do in a cluster. > > >>> > > > >>> > Cheers, > > >>> > > > >>> > Konstantin > > >>> > > > >>> > [1] https://github.com/dexidp/dex > > >>> > [2] https://github.com/dexidp/dex/issues/1903 > > >>> > > > >>> > > > >>> > On Wed, Jun 16, 2021 at 11:44 AM Gabor Somogyi < > > >>> gabor.g.somo...@gmail.com> > > >>> > wrote: > > >>> > > > >>> >> Hi Till, > > >>> >> > > >>> >> Did you have the chance to take a look at the doc? Not yet seen > any > > >>> >> update. > > >>> >> > > >>> >> BR, > > >>> >> G > > >>> >> > > >>> >> > > >>> >> On Wed, Jun 9, 2021 at 1:43 PM Till Rohrmann < > trohrm...@apache.org> > > >>> >> wrote: > > >>> >> > > >>> >> > Thanks for the update Gabor. I'll take a look and respond in the > > >>> >> document. > > >>> >> > > > >>> >> > Cheers, > > >>> >> > Till > > >>> >> > > > >>> >> > On Wed, Jun 9, 2021 at 12:59 PM Gabor Somogyi < > > >>> >> gabor.g.somo...@gmail.com> > > >>> >> > wrote: > > >>> >> > > > >>> >> >> Hi Till, > > >>> >> >> > > >>> >> >> Your proxy suggestion has been considered in-depth and updated > > the > > >>> FLIP > > >>> >> >> accordingly. > > >>> >> >> We've considered 2 proxy implementation (Nginx and Squid) but > > >>> according > > >>> >> >> to our analysis and testing it's not suitable for the mentioned > > >>> >> use-cases. > > >>> >> >> Please take a look at the rejected alternatives for detailed > > >>> >> explanation. > > >>> >> >> > > >>> >> >> Thanks for your time in advance! > > >>> >> >> > > >>> >> >> BR, > > >>> >> >> G > > >>> >> >> > > >>> >> >> > > >>> >> >> On Fri, Jun 4, 2021 at 3:31 PM Till Rohrmann < > > trohrm...@apache.org > > >>> > > > >>> >> >> wrote: > > >>> >> >> > > >>> >> >>> As I've said I am not a security expert and that's why I have > to > > >>> ask > > >>> >> for > > >>> >> >>> clarification, Gabor. You are saying that if we configure a > > >>> >> truststore for > > >>> >> >>> the REST endpoint with a single trusted certificate which has > > been > > >>> >> >>> generated by the operator of the Flink cluster, then the > > attacker > > >>> can > > >>> >> >>> generate a new certificate, sign it and then talk to the Flink > > >>> >> cluster if > > >>> >> >>> he has access to the node on which the REST endpoint runs? My > > >>> >> understanding > > >>> >> >>> was that you need the corresponding private key which in my > > >>> proposed > > >>> >> setup > > >>> >> >>> would be under the control of the operator as well (e.g. > stored > > >>> in a > > >>> >> >>> keystore on the same machine but guarded by some secret). That > > way > > >>> >> (if I am > > >>> >> >>> not mistaken), only the entity which has access to the > keystore > > is > > >>> >> able to > > >>> >> >>> talk to the Flink cluster. > > >>> >> >>> > > >>> >> >>> Maybe we are also getting our wires crossed here and are > talking > > >>> about > > >>> >> >>> different things. > > >>> >> >>> > > >>> >> >>> Thanks for listing the pros and cons of Kerberos. Concerning > > what > > >>> >> other > > >>> >> >>> authentication mechanisms are used in the industry, I am not > > 100% > > >>> >> sure. > > >>> >> >>> > > >>> >> >>> Cheers, > > >>> >> >>> Till > > >>> >> >>> > > >>> >> >>> On Fri, Jun 4, 2021 at 11:09 AM Gabor Somogyi < > > >>> >> gabor.g.somo...@gmail.com> > > >>> >> >>> wrote: > > >>> >> >>> > > >>> >> >>>> > I did not mean for the user to sign its own certificates > but > > >>> for > > >>> >> the > > >>> >> >>>> operator of the cluster. Once the user request hits the > proxy, > > it > > >>> >> should no > > >>> >> >>>> longer be under his control. I think I do not fully > understand > > >>> yet > > >>> >> why this > > >>> >> >>>> would not work. > > >>> >> >>>> I said it's not solving the authentication problem over any > > >>> proxy. > > >>> >> Even > > >>> >> >>>> if the operator is signing the certificate one can have > access > > >>> to an > > >>> >> >>>> internal node. > > >>> >> >>>> Such case anybody can craft certificates which is accepted by > > the > > >>> >> >>>> server. When it's accepted a bad guy can cancel jobs causing > > huge > > >>> >> impacts. > > >>> >> >>>> > > >>> >> >>>> > Also, I am missing a bit the comparison of Kerberos to > other > > >>> >> >>>> authentication mechanisms and why they were rejected in > favour > > of > > >>> >> Kerberos. > > >>> >> >>>> PROS: > > >>> >> >>>> * Since it's not depending on cloud provider and/or k8s or > > >>> bare-metal > > >>> >> >>>> etc. deployment it's the biggest plus > > >>> >> >>>> * Centralized with tools and no need to write tons of tools > > >>> around > > >>> >> >>>> * There are clients/tools on almost all OS-es and several > > >>> languages > > >>> >> >>>> * Super huge users are using it for years in production w/o > > huge > > >>> >> issues > > >>> >> >>>> * Provides cross-realm trust possibility amongst other > features > > >>> >> >>>> * Several open source components using it which could > increase > > >>> >> >>>> compatibility > > >>> >> >>>> > > >>> >> >>>> CONS: > > >>> >> >>>> * Not everybody using kerberos > > >>> >> >>>> * It would increase the code footprint but this is true for > > many > > >>> >> >>>> features (as a side note I'm here to maintain it) > > >>> >> >>>> > > >>> >> >>>> Feel free to add your points because it only represents a > > single > > >>> >> >>>> viewpoint. > > >>> >> >>>> Also if you have any better option for strong authentication > > >>> please > > >>> >> >>>> share it and we can consider the pros/cons here. > > >>> >> >>>> > > >>> >> >>>> BR, > > >>> >> >>>> G > > >>> >> >>>> > > >>> >> >>>> > > >>> >> >>>> On Fri, Jun 4, 2021 at 10:32 AM Till Rohrmann < > > >>> trohrm...@apache.org> > > >>> >> >>>> wrote: > > >>> >> >>>> > > >>> >> >>>>> I did not mean for the user to sign its own certificates but > > >>> for the > > >>> >> >>>>> operator of the cluster. Once the user request hits the > proxy, > > >>> it > > >>> >> should no > > >>> >> >>>>> longer be under his control. I think I do not fully > understand > > >>> yet > > >>> >> why this > > >>> >> >>>>> would not work. > > >>> >> >>>>> > > >>> >> >>>>> What I would like to avoid is to add more complexity into > > Flink > > >>> if > > >>> >> >>>>> there is an easy solution which fulfills the requirements. > > >>> That's > > >>> >> why I > > >>> >> >>>>> would like to exercise thoroughly through the different > > >>> >> alternatives. Also, > > >>> >> >>>>> I am missing a bit the comparison of Kerberos to other > > >>> >> authentication > > >>> >> >>>>> mechanisms and why they were rejected in favour of Kerberos. > > >>> >> >>>>> > > >>> >> >>>>> Cheers, > > >>> >> >>>>> Till > > >>> >> >>>>> > > >>> >> >>>>> On Fri, Jun 4, 2021 at 10:26 AM Gyula Fóra < > gyf...@apache.org > > > > > >>> >> wrote: > > >>> >> >>>>> > > >>> >> >>>>>> Hi! > > >>> >> >>>>>> > > >>> >> >>>>>> I think there might be possible alternatives but it seems > > >>> Kerberos > > >>> >> on > > >>> >> >>>>>> the rest endpoint ticks all the right boxes and provides a > > >>> super > > >>> >> clean and > > >>> >> >>>>>> simple solution for strong authentication. > > >>> >> >>>>>> > > >>> >> >>>>>> I wouldn’t even consider sidecar proxies etc if we can > solve > > >>> it in > > >>> >> >>>>>> such a simple way as proposed by G. > > >>> >> >>>>>> > > >>> >> >>>>>> Cheers > > >>> >> >>>>>> Gyula > > >>> >> >>>>>> > > >>> >> >>>>>> On Fri, 4 Jun 2021 at 10:03, Till Rohrmann < > > >>> trohrm...@apache.org> > > >>> >> >>>>>> wrote: > > >>> >> >>>>>> > > >>> >> >>>>>>> I am not saying that we shouldn't add a strong > > authentication > > >>> >> >>>>>>> mechanism if there are good reasons for it. I primarily > > would > > >>> >> like to > > >>> >> >>>>>>> understand the context a bit better in order to give > > qualified > > >>> >> feedback and > > >>> >> >>>>>>> come to a good decision. In order to do this, I have the > > >>> feeling > > >>> >> that we > > >>> >> >>>>>>> haven't fully considered all available options which are > on > > >>> the > > >>> >> table, tbh. > > >>> >> >>>>>>> > > >>> >> >>>>>>> Does the problem of certificate expiry also apply for > > >>> self-signed > > >>> >> >>>>>>> certificates? If yes, then this should then also be a > > problem > > >>> for > > >>> >> the > > >>> >> >>>>>>> internal encryption of Flink's communication. If not, then > > one > > >>> >> could use > > >>> >> >>>>>>> self-signed certificates with a longer validity to solve > the > > >>> >> mentioned > > >>> >> >>>>>>> issue. > > >>> >> >>>>>>> > > >>> >> >>>>>>> I think you can set up Flink in such a way that you don't > > >>> have to > > >>> >> >>>>>>> handle all the different certificates. For example, you > > could > > >>> >> deploy Flink > > >>> >> >>>>>>> with a "sidecar proxy" which is responsible for the > > >>> >> authentication using an > > >>> >> >>>>>>> arbitrary method (e.g. Kerberos) and then bind the REST > > >>> endpoint > > >>> >> to a local > > >>> >> >>>>>>> network interface. That way, the REST endpoint would only > be > > >>> >> available > > >>> >> >>>>>>> through the sidecar proxy. Additionally, one could enable > > SSL > > >>> for > > >>> >> this > > >>> >> >>>>>>> communication. Would this be a solution for the problem? > > >>> >> >>>>>>> > > >>> >> >>>>>>> Cheers, > > >>> >> >>>>>>> Till > > >>> >> >>>>>>> > > >>> >> >>>>>>> On Thu, Jun 3, 2021 at 10:46 PM Márton Balassi < > > >>> >> >>>>>>> balassi.mar...@gmail.com> wrote: > > >>> >> >>>>>>> > > >>> >> >>>>>>>> That is an interesting idea, Till. > > >>> >> >>>>>>>> > > >>> >> >>>>>>>> The main issue with it is that TLS certificates have an > > >>> >> expiration > > >>> >> >>>>>>>> time, usually they get approved for a couple years. > Forcing > > >>> our > > >>> >> users to > > >>> >> >>>>>>>> restart jobs to reprovision TLS certificates would be > weird > > >>> when > > >>> >> we could > > >>> >> >>>>>>>> just implement a single proper strong authentication > > >>> mechanism > > >>> >> instead in a > > >>> >> >>>>>>>> couple hundred lines of code. :-) > > >>> >> >>>>>>>> > > >>> >> >>>>>>>> In many cases it is also impractical to go the TLS mutual > > >>> route, > > >>> >> >>>>>>>> because the Flink Dashboard can end up on any node in the > > >>> >> k8s/Yarn cluster > > >>> >> >>>>>>>> which means that we need a certificate per node (due to > the > > >>> >> mutual auth), > > >>> >> >>>>>>>> but if we also want to protect the private key of these > > from > > >>> >> users > > >>> >> >>>>>>>> accidentally or intentionally leaking them then we need > > this > > >>> per > > >>> >> user. As > > >>> >> >>>>>>>> in we end up managing user*machine number certificates > and > > >>> >> having to renew > > >>> >> >>>>>>>> them periodically, which albeit automatable is > > unfortunately > > >>> not > > >>> >> yet > > >>> >> >>>>>>>> automated in all large organizations. > > >>> >> >>>>>>>> > > >>> >> >>>>>>>> I fully agree that TLS certificate mutual authentication > > has > > >>> its > > >>> >> >>>>>>>> nice properties, especially at very large (multiple > > thousand > > >>> >> node) clusters > > >>> >> >>>>>>>> - but it has its own challenges too. Thanks for bringing > it > > >>> up. > > >>> >> >>>>>>>> > > >>> >> >>>>>>>> Happy to have this added to the rejected alternative list > > so > > >>> that > > >>> >> >>>>>>>> we have the full picture documented. > > >>> >> >>>>>>>> > > >>> >> >>>>>>>> On Thu, Jun 3, 2021 at 5:52 PM Till Rohrmann < > > >>> >> trohrm...@apache.org> > > >>> >> >>>>>>>> wrote: > > >>> >> >>>>>>>> > > >>> >> >>>>>>>>> I guess the idea would then be to let the proxy do the > > >>> >> >>>>>>>>> authentication job and only forward the request via an > SSL > > >>> >> mutually > > >>> >> >>>>>>>>> encrypted connection to the Flink cluster. Would this be > > >>> >> possible? The > > >>> >> >>>>>>>>> beauty of this setup is in my opinion that this setup > > should > > >>> >> work with all > > >>> >> >>>>>>>>> kinds of authentication mechanisms. > > >>> >> >>>>>>>>> > > >>> >> >>>>>>>>> Cheers, > > >>> >> >>>>>>>>> Till > > >>> >> >>>>>>>>> > > >>> >> >>>>>>>>> On Thu, Jun 3, 2021 at 3:12 PM Gabor Somogyi < > > >>> >> >>>>>>>>> gabor.g.somo...@gmail.com> wrote: > > >>> >> >>>>>>>>> > > >>> >> >>>>>>>>>> Thanks for giving options to fulfil the need. > > >>> >> >>>>>>>>>> > > >>> >> >>>>>>>>>> Users are looking for a solution where users can be > > >>> identified > > >>> >> on > > >>> >> >>>>>>>>>> the whole cluster and restrict access to > > resources/actions. > > >>> >> >>>>>>>>>> A good example for such an action is cancelling other > > users > > >>> >> >>>>>>>>>> running jobs. > > >>> >> >>>>>>>>>> > > >>> >> >>>>>>>>>> * SSL does provide mutual authentication but when > > >>> >> authentication > > >>> >> >>>>>>>>>> passed there is no user based on restrictions can be > > made. > > >>> >> >>>>>>>>>> * The less problematic part is that > > generating/maintaining > > >>> >> short > > >>> >> >>>>>>>>>> time valid certificates would be a hard (that's the > > reason > > >>> KDC > > >>> >> like servers > > >>> >> >>>>>>>>>> exist). > > >>> >> >>>>>>>>>> Having long time valid certificates would widen the > > attack > > >>> >> >>>>>>>>>> surface but since the first concern is there this is > > just a > > >>> >> cosmetic issue. > > >>> >> >>>>>>>>>> > > >>> >> >>>>>>>>>> All in all using TLS certificates is not sufficient in > > >>> these > > >>> >> >>>>>>>>>> environments unfortunately. > > >>> >> >>>>>>>>>> > > >>> >> >>>>>>>>>> BR, > > >>> >> >>>>>>>>>> G > > >>> >> >>>>>>>>>> > > >>> >> >>>>>>>>>> > > >>> >> >>>>>>>>>> On Thu, Jun 3, 2021 at 12:49 PM Till Rohrmann < > > >>> >> >>>>>>>>>> trohrm...@apache.org> wrote: > > >>> >> >>>>>>>>>> > > >>> >> >>>>>>>>>>> Thanks for the information Gabor. If it is about > > securing > > >>> the > > >>> >> >>>>>>>>>>> communication between the REST client and the REST > > server, > > >>> >> then Flink > > >>> >> >>>>>>>>>>> already supports enabling mutual SSL authentication > [1]. > > >>> >> Would this be > > >>> >> >>>>>>>>>>> enough to secure the communication and to pass an > audit? > > >>> >> >>>>>>>>>>> > > >>> >> >>>>>>>>>>> [1] > > >>> >> >>>>>>>>>>> > > >>> >> > > >>> > > > https://ci.apache.org/projects/flink/flink-docs-master/docs/deployment/security/security-ssl/#external--rest-connectivity > > >>> >> >>>>>>>>>>> > > >>> >> >>>>>>>>>>> Cheers, > > >>> >> >>>>>>>>>>> Till > > >>> >> >>>>>>>>>>> > > >>> >> >>>>>>>>>>> On Thu, Jun 3, 2021 at 10:33 AM Gabor Somogyi < > > >>> >> >>>>>>>>>>> gabor.g.somo...@gmail.com> wrote: > > >>> >> >>>>>>>>>>> > > >>> >> >>>>>>>>>>>> Hi Till, > > >>> >> >>>>>>>>>>>> > > >>> >> >>>>>>>>>>>> Since I'm working in security area 10+ years let me > > >>> share my > > >>> >> >>>>>>>>>>>> thought. > > >>> >> >>>>>>>>>>>> I would like to emphasise there are experts better > than > > >>> me > > >>> >> but > > >>> >> >>>>>>>>>>>> I have some > > >>> >> >>>>>>>>>>>> basics. > > >>> >> >>>>>>>>>>>> The discussion is open and not trying to tell alone > > >>> things... > > >>> >> >>>>>>>>>>>> > > >>> >> >>>>>>>>>>>> > I mean if an attacker can get access to one of the > > >>> >> machines, > > >>> >> >>>>>>>>>>>> then it > > >>> >> >>>>>>>>>>>> should also be possible to obtain the right Kerberos > > >>> token. > > >>> >> >>>>>>>>>>>> Not necessarily. For example if one gets access to a > > >>> specific > > >>> >> >>>>>>>>>>>> user's > > >>> >> >>>>>>>>>>>> credentials then it's not possible to compromise > other > > >>> user's > > >>> >> >>>>>>>>>>>> jobs, data, > > >>> >> >>>>>>>>>>>> etc... > > >>> >> >>>>>>>>>>>> Security is like an onion, the more layers has been > > >>> added the > > >>> >> >>>>>>>>>>>> more time an > > >>> >> >>>>>>>>>>>> attacker needs to proceed. > > >>> >> >>>>>>>>>>>> At the end of the day if one is in, then most > probably > > >>> can > > >>> >> find > > >>> >> >>>>>>>>>>>> the way but > > >>> >> >>>>>>>>>>>> this time is normally enough to sysadmins or security > > >>> >> experts to > > >>> >> >>>>>>>>>>>> close down the system and minimize the damage. > > >>> >> >>>>>>>>>>>> > > >>> >> >>>>>>>>>>>> The other thing is that all tokens has a timeout and > if > > >>> the > > >>> >> >>>>>>>>>>>> token is > > >>> >> >>>>>>>>>>>> invalid then the attacker can't proceed further. > > >>> >> >>>>>>>>>>>> > > >>> >> >>>>>>>>>>>> > Is Kerberos also the standard authentication > protocol > > >>> for > > >>> >> >>>>>>>>>>>> Kubernetes > > >>> >> >>>>>>>>>>>> deployments? > > >>> >> >>>>>>>>>>>> Kerberos is an industry standard which is > > >>> cloud/deployment > > >>> >> >>>>>>>>>>>> agnostic and it > > >>> >> >>>>>>>>>>>> can be used in any deployments including k8s. > > >>> >> >>>>>>>>>>>> The main intention is to use kerberos in k8s > > deployments > > >>> too > > >>> >> >>>>>>>>>>>> since we're > > >>> >> >>>>>>>>>>>> going this direction as well. > > >>> >> >>>>>>>>>>>> Please see how Spark does this: > > >>> >> >>>>>>>>>>>> > > >>> >> >>>>>>>>>>>> > > >>> >> > > >>> > > > https://spark.apache.org/docs/latest/security.html#secure-interaction-with-kubernetes > > >>> >> >>>>>>>>>>>> > > >>> >> >>>>>>>>>>>> Last but not least the most important reason to add > at > > >>> least > > >>> >> >>>>>>>>>>>> one strong > > >>> >> >>>>>>>>>>>> authentication is that we have users who has > > >>> >> >>>>>>>>>>>> hard requirements on this. They're doing security > > audits > > >>> and > > >>> >> if > > >>> >> >>>>>>>>>>>> they fail > > >>> >> >>>>>>>>>>>> then it's deal breaking. > > >>> >> >>>>>>>>>>>> That is why we have added kerberos at the first > place. > > >>> >> >>>>>>>>>>>> Unfortunately we > > >>> >> >>>>>>>>>>>> can't name them in this public list, however > > >>> >> >>>>>>>>>>>> the customers who specifically asked for this were > > >>> mainly in > > >>> >> >>>>>>>>>>>> the banking > > >>> >> >>>>>>>>>>>> and telco sector. > > >>> >> >>>>>>>>>>>> > > >>> >> >>>>>>>>>>>> BR, > > >>> >> >>>>>>>>>>>> G > > >>> >> >>>>>>>>>>>> > > >>> >> >>>>>>>>>>>> > > >>> >> >>>>>>>>>>>> On Thu, Jun 3, 2021 at 9:20 AM Till Rohrmann < > > >>> >> >>>>>>>>>>>> trohrm...@apache.org> wrote: > > >>> >> >>>>>>>>>>>> > > >>> >> >>>>>>>>>>>> > Thanks for updating the document Márton. Why is it > > that > > >>> >> banks > > >>> >> >>>>>>>>>>>> will > > >>> >> >>>>>>>>>>>> > consider it more secure if Flink comes with > Kerberos > > >>> >> >>>>>>>>>>>> authentication > > >>> >> >>>>>>>>>>>> > (assuming a properly secured setup)? I mean if an > > >>> attacker > > >>> >> >>>>>>>>>>>> can get access > > >>> >> >>>>>>>>>>>> > to one of the machines, then it should also be > > >>> possible to > > >>> >> >>>>>>>>>>>> obtain the right > > >>> >> >>>>>>>>>>>> > Kerberos token. > > >>> >> >>>>>>>>>>>> > > > >>> >> >>>>>>>>>>>> > I am not an authentication expert and that's why I > > >>> wanted > > >>> >> to > > >>> >> >>>>>>>>>>>> ask what are > > >>> >> >>>>>>>>>>>> > other authentication protocols other than Kerberos? > > >>> Why did > > >>> >> >>>>>>>>>>>> we select > > >>> >> >>>>>>>>>>>> > Kerberos and not any other authentication protocol? > > >>> Maybe > > >>> >> you > > >>> >> >>>>>>>>>>>> can list the > > >>> >> >>>>>>>>>>>> > pros and cons for the different protocols. Is > > Kerberos > > >>> also > > >>> >> >>>>>>>>>>>> the standard > > >>> >> >>>>>>>>>>>> > authentication protocol for Kubernetes deployments? > > If > > >>> not, > > >>> >> >>>>>>>>>>>> what would be > > >>> >> >>>>>>>>>>>> > the answer when deploying on K8s? > > >>> >> >>>>>>>>>>>> > > > >>> >> >>>>>>>>>>>> > Cheers, > > >>> >> >>>>>>>>>>>> > Till > > >>> >> >>>>>>>>>>>> > > > >>> >> >>>>>>>>>>>> > On Wed, Jun 2, 2021 at 12:07 PM Gabor Somogyi < > > >>> >> >>>>>>>>>>>> gabor.g.somo...@gmail.com> > > >>> >> >>>>>>>>>>>> > wrote: > > >>> >> >>>>>>>>>>>> > > > >>> >> >>>>>>>>>>>> >> Hi team, > > >>> >> >>>>>>>>>>>> >> > > >>> >> >>>>>>>>>>>> >> Happy to be here and hope I can provide quality > > >>> additions > > >>> >> in > > >>> >> >>>>>>>>>>>> the future. > > >>> >> >>>>>>>>>>>> >> > > >>> >> >>>>>>>>>>>> >> Thank you all for helpful the suggestions! > > >>> >> >>>>>>>>>>>> >> Considering them the FLIP has been modified and > the > > >>> work > > >>> >> >>>>>>>>>>>> continues on the > > >>> >> >>>>>>>>>>>> >> already existing Jira. > > >>> >> >>>>>>>>>>>> >> > > >>> >> >>>>>>>>>>>> >> BR, > > >>> >> >>>>>>>>>>>> >> G > > >>> >> >>>>>>>>>>>> >> > > >>> >> >>>>>>>>>>>> >> > > >>> >> >>>>>>>>>>>> >> On Wed, Jun 2, 2021 at 11:23 AM Márton Balassi < > > >>> >> >>>>>>>>>>>> balassi.mar...@gmail.com> > > >>> >> >>>>>>>>>>>> >> wrote: > > >>> >> >>>>>>>>>>>> >> > > >>> >> >>>>>>>>>>>> >>> Thanks, Chesney - I totally missed that. Answered > > on > > >>> the > > >>> >> >>>>>>>>>>>> ticket too, let > > >>> >> >>>>>>>>>>>> >>> us continue there then. > > >>> >> >>>>>>>>>>>> >>> > > >>> >> >>>>>>>>>>>> >>> Till, I agree that we should keep this codepath > as > > >>> slim > > >>> >> as > > >>> >> >>>>>>>>>>>> possible. It > > >>> >> >>>>>>>>>>>> >>> is an important design decision that we aim to > keep > > >>> the > > >>> >> >>>>>>>>>>>> list of > > >>> >> >>>>>>>>>>>> >>> authentication protocols to a minimum. We believe > > >>> that > > >>> >> this > > >>> >> >>>>>>>>>>>> should not be a > > >>> >> >>>>>>>>>>>> >>> primary concern of Flink and a trusted proxy > > service > > >>> (for > > >>> >> >>>>>>>>>>>> example Apache > > >>> >> >>>>>>>>>>>> >>> Knox) should be used to enable a multitude of > > enduser > > >>> >> >>>>>>>>>>>> authentication > > >>> >> >>>>>>>>>>>> >>> mechanisms. The bare minimum of authentication > > >>> mechanisms > > >>> >> >>>>>>>>>>>> to support > > >>> >> >>>>>>>>>>>> >>> consequently consist of a single strong > > >>> authentication > > >>> >> >>>>>>>>>>>> protocol for which > > >>> >> >>>>>>>>>>>> >>> Kerberos is the enterprise solution and HTTP > Basic > > >>> >> primary > > >>> >> >>>>>>>>>>>> for development > > >>> >> >>>>>>>>>>>> >>> and light-weight scenarios. > > >>> >> >>>>>>>>>>>> >>> > > >>> >> >>>>>>>>>>>> >>> Added the above wording to G's doc. > > >>> >> >>>>>>>>>>>> >>> > > >>> >> >>>>>>>>>>>> >>> > > >>> >> >>>>>>>>>>>> > > >>> >> > > >>> > > > https://docs.google.com/document/d/1NMPeJ9H0G49TGy3AzTVVJVKmYC0okwOtqLTSPnGqzHw/edit > > >>> >> >>>>>>>>>>>> >>> > > >>> >> >>>>>>>>>>>> >>> > > >>> >> >>>>>>>>>>>> >>> > > >>> >> >>>>>>>>>>>> >>> On Tue, Jun 1, 2021 at 11:47 AM Chesnay Schepler > < > > >>> >> >>>>>>>>>>>> ches...@apache.org> > > >>> >> >>>>>>>>>>>> >>> wrote: > > >>> >> >>>>>>>>>>>> >>> > > >>> >> >>>>>>>>>>>> >>>> There's a related effort: > > >>> >> >>>>>>>>>>>> >>>> > https://issues.apache.org/jira/browse/FLINK-21108 > > >>> >> >>>>>>>>>>>> >>>> > > >>> >> >>>>>>>>>>>> >>>> On 6/1/2021 10:14 AM, Till Rohrmann wrote: > > >>> >> >>>>>>>>>>>> >>>> > Hi Gabor, welcome to the Flink community! > > >>> >> >>>>>>>>>>>> >>>> > > > >>> >> >>>>>>>>>>>> >>>> > Thanks for sharing this proposal with the > > >>> community > > >>> >> >>>>>>>>>>>> Márton. In > > >>> >> >>>>>>>>>>>> >>>> general, I > > >>> >> >>>>>>>>>>>> >>>> > agree that authentication is missing and that > > >>> this is > > >>> >> >>>>>>>>>>>> required for > > >>> >> >>>>>>>>>>>> >>>> using > > >>> >> >>>>>>>>>>>> >>>> > Flink within an enterprise. The thing I am > > >>> wondering > > >>> >> is > > >>> >> >>>>>>>>>>>> whether this > > >>> >> >>>>>>>>>>>> >>>> > feature strictly needs to be implemented > inside > > of > > >>> >> Flink > > >>> >> >>>>>>>>>>>> or whether a > > >>> >> >>>>>>>>>>>> >>>> proxy > > >>> >> >>>>>>>>>>>> >>>> > setup could do the job? Have you considered > this > > >>> >> option? > > >>> >> >>>>>>>>>>>> If yes, then > > >>> >> >>>>>>>>>>>> >>>> it > > >>> >> >>>>>>>>>>>> >>>> > would be good to list it under the point of > > >>> rejected > > >>> >> >>>>>>>>>>>> alternatives. > > >>> >> >>>>>>>>>>>> >>>> > > > >>> >> >>>>>>>>>>>> >>>> > I do see the benefit of implementing this > > feature > > >>> >> inside > > >>> >> >>>>>>>>>>>> of Flink if > > >>> >> >>>>>>>>>>>> >>>> many > > >>> >> >>>>>>>>>>>> >>>> > users need it. If not, then it might be easier > > >>> for the > > >>> >> >>>>>>>>>>>> project to not > > >>> >> >>>>>>>>>>>> >>>> > increase the surface area since it makes the > > >>> overall > > >>> >> >>>>>>>>>>>> maintenance > > >>> >> >>>>>>>>>>>> >>>> harder. > > >>> >> >>>>>>>>>>>> >>>> > > > >>> >> >>>>>>>>>>>> >>>> > Cheers, > > >>> >> >>>>>>>>>>>> >>>> > Till > > >>> >> >>>>>>>>>>>> >>>> > > > >>> >> >>>>>>>>>>>> >>>> > On Mon, May 31, 2021 at 4:57 PM Márton > Balassi < > > >>> >> >>>>>>>>>>>> mbala...@apache.org> > > >>> >> >>>>>>>>>>>> >>>> wrote: > > >>> >> >>>>>>>>>>>> >>>> > > > >>> >> >>>>>>>>>>>> >>>> >> Hi team, > > >>> >> >>>>>>>>>>>> >>>> >> > > >>> >> >>>>>>>>>>>> >>>> >> Firstly I would like to introduce Gabor or G > > [1] > > >>> for > > >>> >> >>>>>>>>>>>> short to the > > >>> >> >>>>>>>>>>>> >>>> >> community, he is a Spark committer who has > > >>> recently > > >>> >> >>>>>>>>>>>> transitioned to > > >>> >> >>>>>>>>>>>> >>>> the > > >>> >> >>>>>>>>>>>> >>>> >> Flink Engineering team at Cloudera and is > > looking > > >>> >> >>>>>>>>>>>> forward to > > >>> >> >>>>>>>>>>>> >>>> contributing > > >>> >> >>>>>>>>>>>> >>>> >> to Apache Flink. Previously G primarily > focused > > >>> on > > >>> >> >>>>>>>>>>>> Spark Streaming > > >>> >> >>>>>>>>>>>> >>>> and > > >>> >> >>>>>>>>>>>> >>>> >> security. > > >>> >> >>>>>>>>>>>> >>>> >> > > >>> >> >>>>>>>>>>>> >>>> >> Based on requests from our customers G has > > >>> >> implemented > > >>> >> >>>>>>>>>>>> Kerberos and > > >>> >> >>>>>>>>>>>> >>>> HTTP > > >>> >> >>>>>>>>>>>> >>>> >> Basic Authentication for the Flink Dashboard > > and > > >>> >> >>>>>>>>>>>> HistoryServer. > > >>> >> >>>>>>>>>>>> >>>> Previously > > >>> >> >>>>>>>>>>>> >>>> >> lacked an authentication story. > > >>> >> >>>>>>>>>>>> >>>> >> > > >>> >> >>>>>>>>>>>> >>>> >> We are looking to contribute this > functionality > > >>> back > > >>> >> to > > >>> >> >>>>>>>>>>>> the > > >>> >> >>>>>>>>>>>> >>>> community, we > > >>> >> >>>>>>>>>>>> >>>> >> believe that given Flink's maturity there > > should > > >>> be a > > >>> >> >>>>>>>>>>>> common code > > >>> >> >>>>>>>>>>>> >>>> solution > > >>> >> >>>>>>>>>>>> >>>> >> for this general pattern. > > >>> >> >>>>>>>>>>>> >>>> >> > > >>> >> >>>>>>>>>>>> >>>> >> We are looking forward to your feedback on > G's > > >>> >> design. > > >>> >> >>>>>>>>>>>> [2] > > >>> >> >>>>>>>>>>>> >>>> >> > > >>> >> >>>>>>>>>>>> >>>> >> [1] http://gaborsomogyi.com/ > > >>> >> >>>>>>>>>>>> >>>> >> [2] > > >>> >> >>>>>>>>>>>> >>>> >> > > >>> >> >>>>>>>>>>>> >>>> >> > > >>> >> >>>>>>>>>>>> >>>> > > >>> >> >>>>>>>>>>>> > > >>> >> > > >>> > > > https://docs.google.com/document/d/1NMPeJ9H0G49TGy3AzTVVJVKmYC0okwOtqLTSPnGqzHw/edit > > >>> >> >>>>>>>>>>>> >>>> >> > > >>> >> >>>>>>>>>>>> >>>> > > >>> >> >>>>>>>>>>>> >>>> > > >>> >> >>>>>>>>>>>> > > >>> >> >>>>>>>>>>> > > >>> >> > > >>> > > > >>> > > > >>> > -- > > >>> > > > >>> > Konstantin Knauf > > >>> > > > >>> > https://twitter.com/snntrable > > >>> > > > >>> > https://github.com/knaufk > > >>> > > > >>> > > >> > > >> > > >> -- > > >> > > >> Konstantin Knauf > > >> > > >> https://twitter.com/snntrable > > >> > > >> https://github.com/knaufk > > >> > > > > > >