Re: Possibility to disable `ALTER SYSTEM` - Mailing list pgsql-hackers
From | Robert Haas |
---|---|
Subject | Re: Possibility to disable `ALTER SYSTEM` |
Date | |
Msg-id | CA+TgmoYNBs68DQifceGb4SNS8iaLt_wQCKuVJ8rNqeSvU4LiKA@mail.gmail.com Whole thread Raw |
In response to | Re: Possibility to disable `ALTER SYSTEM` (Tom Lane <tgl@sss.pgh.pa.us>) |
Responses |
Re: Possibility to disable `ALTER SYSTEM`
Re: Possibility to disable `ALTER SYSTEM` |
List | pgsql-hackers |
On Tue, Jan 30, 2024 at 2:20 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Indeed. I'd go so far as to say that we should reject not only this > proposal, but any future ones that intend to prevent superusers from > doing things that superusers normally could do (and, indeed, are > normally expected to do). That sort of thing is not part of our > security model, never has been, and it's simply naive to believe that > it won't have a boatload of easily-reachable holes in it. Which we > *will* get complaints about, if we claim that thus-and-such feature > prevents it. So why bother? Don't give out superuser to people you > don't trust to not do the things you wish they wouldn't. In my opinion, we need to have the conversation, whereas you seem to want to try to shut it down before it starts. If we take that approach, people are going to get (more) frustrated. Also in my opinion, there is a fair amount of nuance here. On the one hand, I and others put a lot of work into making it possible to not give people superuser and still be able to do a controlled subset of the things that a superuser can do. For example, thanks to Mark Dilger's work, you can make somebody not a superuser and still allow them to set GUCs that can normally be set only by superusers, and you can choose which GUCs you do and do not want them to be able to set. And, thanks to my work, you can make someone a CREATEROLE user without letting them escalate to superuser, and you can then allow them to manage the users that they create almost exactly as if they were a superuser, with only the limitations that seem necessary to maintain system security. It is worth asking - and I would like to hear a real, non-flip answer - why someone who wants to do what is proposed here isn't using those mechanisms instead of handing out SUPERUSER and then complaining that it grants too much power. On the other hand, I don't see why it isn't legitimate to imagine a scenario where there is no security boundary between the Kubernetes administrator and the PostgreSQL DBA, and yet the PostgreSQL DBA should still be pushed in the direction of doing things in a way that doesn't break Kubernetes. It surprises me a little bit that Gabriele and others want to build the system that way, though, because you might expect that in a typical install the Kubernetes administrator would want to FORCIBLY PREVENT the PostgreSQL administrator from messing things up instead of doing what is proposed here, which amounts to suggesting perhaps the PostgreSQL administrator would be kind enough not to mess things up. Nonetheless, there's no law against suggestions. When my wife puts the ground beef that I'm supposed to use to cook dinner at the top of the freezer and the stuff I'm supposed to not use at the bottom, nothing prevents me from digging out the other ground beef and using it, but I don't, because I can take a hint. And indeed, I benefit from that hint. This seems like it could be construed as a very similar type of hint. I don't think we should pretend like one of the two paragraphs above is valid and the other is hot garbage. That's not solving anything. We can't resolve the tension between those two things in either direction by somebody hammering on the side of the argument that they believe to be correct and ignoring the other one. > Something like contrib/sepgsql would be a better mechanism, perhaps. There's nothing wrong with that exactly, but what does it gain us over my proposal of a sentinel file? I don't see much value in adding a hook and then a module that uses that hook to return false or unconditionally ereport. -- Robert Haas EDB: http://www.enterprisedb.com
pgsql-hackers by date: