>
If You will add rule to SG as an admin user, then regular users (owners of the
SG) will not be able to remove it.
> But they will still be able to stop using this SG completly.
That's a neat trick, didn't know about it, thank you.
> What if You would plug those VMs only to the private networks and use Floating IPs to have public connectivity? Would that work for You?
That is an excellent solution, seeing as almost every big public cloud provider does it, and it did come to my mind. This was also our initial cloud design back a few years ago.
Unfortunately, we had some issues with DDOS attacks back then, that flooded a single IP address, and that attack would completely overwhelm the network node that was terminating that floating IP. This, in turn, led to multiple other projects losing connectivity for the duration of the attack.
At the time we looked into other solutions, particularly the one where floating IP terminates on compute node instead of a network node, but were unable to implement it, and switched to a more direct approach with public IPs being assigned directly to guests via a provider network.
So this is the best practice, yes, but this will require to rethink and redesign whole cloud, which is not possible at the moment. So I'm looking at some simpler, quick-fix style solution.