[
https://issues.apache.org/jira/browse/ACCUMULO-3513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14299349#comment-14299349
]
Josh Elser commented on ACCUMULO-3513:
--------------------------------------
Thanks for taking the time to read and give feedback.
bq. Regarding DIGEST-MD5, which transport features would it support, and how do
these relate to the auth, auth-int, and auth-conf options currently available
with GSSAPI?
These (the quality of protection) are at the SASL level, so I believe they work
seamlessly across the mechanism chosen.
bq. Wouldn't it be better to keep the existing GSSAPI transport, and pass the
delegation tokens on top of that layer
MapReduce *does not* have access to Kerberos tokens. This is a non-starter.
bq. Regarding the use of ZK to propagate the rolling shared secret, we'd need
to be careful about propagation delays using the watchers to update the cache.
Rather than user the watchers.
That's a fair point. I'm not sure how this will look in practice (if we'll need
to do something differently). We could back these by a table which is a
possibility
bq. Regarding the rolling secret: this seems like it would make client tokens
vary in their duration, and the expiration outside the control of the client
user.
Yes, the maximum lifetime would be controlled by an Accumulo configuration
value. This isn't too bad to expand upon once everything else is present (e.g.
clients request shorter lifetimes).
bq. Instead of relying on the master, you could make it possible for any
TServer to grant a delegation token. The resulting token could only be checked
by that same TServer, but you wouldn't have to rely on a SPOF or worry about
propagation. Clients would randomly choose a TServer to authenticate to, every
time it needs a delegation token, and the delegation token remembers who issued
it.
Also true, that's why I called it out. HBase just has any node in the cluster
act as the leader, I'm not convinced that we need that level of robustness. The
calls to get a delegation token as compared to the number of authentications (1
client to N mappers). We can easily add leader election and re-use the same
service I plan to make for the master by any node in the instance. This
authentication model relies on the same secrets being shared across all nodes
in the cluster. If I'm understanding your suggestion, each server would have
distinct secret keys which would result in clients only being able to
communicate to a single TabletServer (which is a non-starter).
> Ensure MapReduce functionality with Kerberos enabled
> ----------------------------------------------------
>
> Key: ACCUMULO-3513
> URL: https://issues.apache.org/jira/browse/ACCUMULO-3513
> Project: Accumulo
> Issue Type: Bug
> Components: client
> Reporter: Josh Elser
> Assignee: Josh Elser
> Priority: Blocker
> Fix For: 1.7.0
>
> Attachments: ACCUMULO-3513-design.pdf
>
>
> I talked to [~devaraj] today about MapReduce support running on secure Hadoop
> to help get a picture about what extra might be needed to make this work.
> Generally, in Hadoop and HBase, the client must have valid credentials to
> submit a job, then the notion of delegation tokens is used by for further
> communication since the servers do not have access to the client's sensitive
> information. A centralized service manages creation of a delegation token
> which is a record which contains certain information (such as the submitting
> user name) necessary to securely identify the holder of the delegation token.
> The general idea is that we would need to build support into the master to
> manage delegation tokens to node managers to acquire and use to run jobs.
> Hadoop and HBase both contain code which implements this general idea, but we
> will need to apply them Accumulo and verify that it is M/R jobs still work on
> a kerberized environment.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)