It is far from central to this conversation, but I can confirm that
RedShift currently only supports user+pass combinations.

It's likely that each node has a pg_hba.conf, but the customer is not given
credentials to ssh to the individual nodes.

On Thu, Feb 5, 2015 at 10:48 AM, Stephen Frost <sfr...@snowman.net> wrote:

> * Robert Haas (robertmh...@gmail.com) wrote:
> > On Tue, Feb 3, 2015 at 6:26 PM, Noah Yetter <nyet...@gmail.com> wrote:
> > > The obvious objection is, "well you should just use foreign tables
> instead
> > > of dblink()".  I'll cut a long story short by saying that doesn't work
> for
> > > us.  We are using postgres_fdw to allow our analysts to run queries
> against
> > > AWS Redshift and blend those results with tables in our OLTP schema.
> If you
> > > know anything about Redshift, or about analysts, you'll realize
> immediately
> > > why foreign tables are not a viable solution.  Surely there are many
> others
> > > in a similar position, where the flexibility offered by dblink() makes
> it
> > > preferable to fixed foreign tables.
> > >
> > > Soooo... what gives?  This seems like a really obvious security hole.
> I've
> > > searched the mailing list archives repeatedly and found zero
> discussion of
> > > this issue.
> >
> > Maybe this is an impertinent question, but why do you care if the user
> > has the password?
>
> Eh.  Password-reuse risk, policies, regulations and auditing all come to
> mind.
>
> > If she's got dblink access, she can run arbitrary
> > SQL queries on the remote server anyway, which is all the password
> > would let her do.  Also, she could use dblink to run ALTER ROLE foo
> > PASSWORD '...' on the remote server, and then she'll *definitely* know
> > the password.
>
> And I thought this was about FDW options and not about dblink, really..
>
> > I would suggest not relying on password authentication in this
> > situation.  Instead, use pg_hba.conf to restrict connections by IP and
> > SSL mode, and maybe consider SSL certificate authentication.
>
> That's not actually an option here though, is it?  dblink_connect
> requires a password-based authentication, unless you're a superuser
> (which I'm pretty sure Noah Y would prefer these folks not be..).
>
> Further, I don't think you get to control whatever the pg_hba.conf is on
> the RedShift side..  I agree with the general sentiment that it'd be
> better to use other authentication methods (SSL certificates or Kerberos
> credentials), but we'd need to provide a way for those to work for
> non-superusers.  Kerberos credential-forwarding comes to mind but I
> don't know of anyone who is currently working on that and I doubt it'd
> work with Redshift anyway.
>
> > All that having been said, it wouldn't be crazy to try to invent a
> > system to lock this down, but it *would* be complicated.  An
> > individual FDW can call its authentication-related options anything it
> > likes; they do not need to be called 'password'.  So we'd need a way
> > to identify which options should be hidden from untrusted users, and
> > then a bunch of mechanism to do that.
>
> Agreed, we'd need to provide a way for FDWs to specify which options
> should be hidden and which shouldn't be.  For my 2c, I do think that'd
> be worthwhile to do.  We let users change their own passwords with ALTER
> USER too, but they don't get to view it (or even the hash of it) in
> pg_authid.
>
>         Thanks,
>
>                 Stephen
>

Reply via email to