> On Feb. 12, 2015, 3:07 p.m., kturner wrote:
> > docs/src/main/asciidoc/chapters/kerberos.txt, line 327
> > <https://reviews.apache.org/r/30817/diff/4-5/?file=860348#file860348line327>
> >
> >     What happens if user passes KerberosToken to  `setConnectorInfo()`?

Nothing bad -- the Mappers/Reducers will just fail to talk to Accumulo and/or 
fail the construction of the KerberosToken itself when it's deserialized (not 
100% sure on the latter). We could add a warning that passing a KerberosToken 
is likely in error (if we don't automatically try to fetch a DT for them as 
mentioned above...)


> On Feb. 12, 2015, 3:07 p.m., kturner wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java,
> >  line 360
> > <https://reviews.apache.org/r/30817/diff/5/?file=861176#file861176line360>
> >
> >     Do you think this method would ever need options?  Or does it need any 
> > options now?  Just thinking that passing in a `DelegationTokenOptions` will 
> > make this new API much more flexible over time.  Of course it does not make 
> > sense if there are no options to pass in now.

One option would be to further restrict the lifetime of the DT down from the 
system config. For example, the system config would let the toke be valid for N 
days, but you know you only need N hours. I think this is a good addition which 
I hadn't previously considered. Thanks for mentioning it.


- Josh


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/30817/#review72162
-----------------------------------------------------------


On Feb. 11, 2015, 11:15 p.m., Josh Elser wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/30817/
> -----------------------------------------------------------
> 
> (Updated Feb. 11, 2015, 11:15 p.m.)
> 
> 
> Review request for accumulo and Christopher Tubbs.
> 
> 
> Bugs: ACCUMULO-3513
>     https://issues.apache.org/jira/browse/ACCUMULO-3513
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> DelegationTokens are a way to enable MapReduce jobs (or any distributed task 
> which does not have direct access to the user's kerberos credentials) to 
> identify themself and communicate with Accumulo. This is implemented in the 
> same style of Hadoop which does this to provide HDFS and YARN access in YARN 
> jobs, as well as HBase (HBase also served as the base when I started coding).
> 
> A DelegationToken (nothing more than a short-lived, on-demand password 
> generated by Accumulo) is provided to users who request one through the 
> SecurityOperations API. Secret keys are created, distributed and expired 
> within Accumulo itself (Master creates and expires keys, distributes via ZK 
> to tservers), which allow the master to create delegation tokens upon request 
> and tabletservers to validate delegation tokens provided as the 
> authentication mechanism by users. Tokens are valid for 7 days by default and 
> new secret keys are rolled every day (configurable).
> 
> RPC is implemented SASL's DIGEST-MD5 mechanism (in addition to the GSSAPI 
> support we already have for "normal" kerberos -- thrift makes this really 
> easy). YARN provides a secure way to pass delegation tokens from the client 
> JVM to each YARN task (mapper/reducer) to prevent unwanted parties from 
> stealing the token (password) and using it for their own (nefarious) 
> purposes. The feature is transparent for users as long as they as using our 
> MapReduce JCommander options classes.
> 
> User documentation has been added to the kerberos chapter.
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 0229d4e 
>   core/src/main/java/org/apache/accumulo/core/cli/ClientOpts.java 216f32d 
>   
> core/src/main/java/org/apache/accumulo/core/cli/MapReduceClientOnDefaultTable.java
>  0cf081f 
>   
> core/src/main/java/org/apache/accumulo/core/cli/MapReduceClientOnRequiredTable.java
>  7719e92 
>   core/src/main/java/org/apache/accumulo/core/cli/MapReduceClientOpts.java 
> 4b3b7ed 
>   
> core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java
>  efeafc0 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ClientContext.java 
> 8470da4 
>   
> core/src/main/java/org/apache/accumulo/core/client/impl/SecurityOperationsImpl.java
>  feb1ee7 
>   
> core/src/main/java/org/apache/accumulo/core/client/impl/ThriftTransportKey.java
>  072724b 
>   
> core/src/main/java/org/apache/accumulo/core/client/mapred/AbstractInputFormat.java
>  b83a024 
>   
> core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java
>  f877ec6 
>   
> core/src/main/java/org/apache/accumulo/core/client/mapreduce/AbstractInputFormat.java
>  5c7b780 
>   
> core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormat.java
>  5e0aa73 
>   
> core/src/main/java/org/apache/accumulo/core/client/mapreduce/impl/DelegationTokenStub.java
>  PRE-CREATION 
>   
> core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/impl/ConfiguratorBase.java
>  b2b5150 
>   
> core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/impl/InputConfigurator.java
>  5405ac0 
>   
> core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java
>  db88cfb 
>   
> core/src/main/java/org/apache/accumulo/core/client/security/tokens/DelegationToken.java
>  PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/conf/Property.java 68fac73 
>   
> core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java
>  4b90a34 
>   
> core/src/main/java/org/apache/accumulo/core/rpc/SaslClientDigestCallbackHandler.java
>  PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/rpc/SaslConnectionParams.java 
> e067e23 
>   
> core/src/main/java/org/apache/accumulo/core/rpc/SaslDigestCallbackHandler.java
>  PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/rpc/ThriftUtil.java d880fb3 
>   
> core/src/main/java/org/apache/accumulo/core/security/AuthenticationTokenIdentifier.java
>  PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 
> b998179 
>   
> core/src/main/java/org/apache/accumulo/core/security/thrift/TAuthenticationKey.java
>  PRE-CREATION 
>   
> core/src/main/java/org/apache/accumulo/core/security/thrift/TAuthenticationTokenIdentifier.java
>  PRE-CREATION 
>   
> core/src/main/java/org/apache/accumulo/core/security/thrift/TDelegationToken.java
>  PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/ThriftMessageUtil.java 
> PRE-CREATION 
>   core/src/main/thrift/master.thrift d89e381 
>   core/src/main/thrift/security.thrift 66235a8 
>   
> core/src/test/java/org/apache/accumulo/core/client/impl/ThriftTransportKeyTest.java
>  2723273 
>   
> core/src/test/java/org/apache/accumulo/core/client/security/tokens/DelegationTokenTest.java
>  PRE-CREATION 
>   
> core/src/test/java/org/apache/accumulo/core/rpc/SaslClientDigestCallbackHandlerTest.java
>  PRE-CREATION 
>   
> core/src/test/java/org/apache/accumulo/core/rpc/SaslConnectionParamsTest.java 
> 3910f34 
>   
> core/src/test/java/org/apache/accumulo/core/security/AuthenticationTokenIdentifierTest.java
>  PRE-CREATION 
>   core/src/test/java/org/apache/accumulo/core/util/ThriftMessageUtilTest.java 
> PRE-CREATION 
>   docs/src/main/asciidoc/chapters/kerberos.txt 05d7384 
>   fate/src/main/java/org/apache/accumulo/fate/zookeeper/IZooReader.java 
> 610b1bd 
>   fate/src/main/java/org/apache/accumulo/fate/zookeeper/ZooReader.java 
> 5706cf3 
>   fate/src/main/java/org/apache/accumulo/fate/zookeeper/ZooUtil.java 805bfff 
>   proxy/src/main/java/org/apache/accumulo/proxy/Proxy.java f9039be 
>   
> server/base/src/main/java/org/apache/accumulo/server/AccumuloServerContext.java
>  84c3853 
>   
> server/base/src/main/java/org/apache/accumulo/server/master/state/MetaDataStateStore.java
>  bf56a7a 
>   
> server/base/src/main/java/org/apache/accumulo/server/rpc/SaslServerConnectionParams.java
>  PRE-CREATION 
>   
> server/base/src/main/java/org/apache/accumulo/server/rpc/SaslServerDigestCallbackHandler.java
>  PRE-CREATION 
>   
> server/base/src/main/java/org/apache/accumulo/server/rpc/TCredentialsUpdatingInvocationHandler.java
>  f85505d 
>   server/base/src/main/java/org/apache/accumulo/server/rpc/TServerUtils.java 
> f1f8963 
>   
> server/base/src/main/java/org/apache/accumulo/server/rpc/UGIAssumingProcessor.java
>  ab106a6 
>   
> server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java
>  cc7a7cd 
>   
> server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java
>  7adb46e 
>   
> server/base/src/main/java/org/apache/accumulo/server/security/SystemCredentials.java
>  51d50a1 
>   
> server/base/src/main/java/org/apache/accumulo/server/security/delegation/AuthenticationKey.java
>  PRE-CREATION 
>   
> server/base/src/main/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenKeyManager.java
>  PRE-CREATION 
>   
> server/base/src/main/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManager.java
>  PRE-CREATION 
>   
> server/base/src/main/java/org/apache/accumulo/server/security/delegation/ZooAuthenticationKeyDistributor.java
>  PRE-CREATION 
>   
> server/base/src/main/java/org/apache/accumulo/server/security/delegation/ZooAuthenticationKeyWatcher.java
>  PRE-CREATION 
>   
> server/base/src/main/java/org/apache/accumulo/server/security/handler/KerberosAuthenticator.java
>  08fa55b 
>   
> server/base/src/test/java/org/apache/accumulo/server/AccumuloServerContextTest.java
>  49a60a6 
>   
> server/base/src/test/java/org/apache/accumulo/server/rpc/SaslDigestCallbackHandlerTest.java
>  PRE-CREATION 
>   
> server/base/src/test/java/org/apache/accumulo/server/rpc/SaslServerConnectionParamsTest.java
>  PRE-CREATION 
>   
> server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationKeyTest.java
>  PRE-CREATION 
>   
> server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenKeyManagerTest.java
>  PRE-CREATION 
>   
> server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManagerTest.java
>  PRE-CREATION 
>   
> server/base/src/test/java/org/apache/accumulo/server/security/delegation/ZooAuthenticationKeyDistributorTest.java
>  PRE-CREATION 
>   
> server/base/src/test/java/org/apache/accumulo/server/security/delegation/ZooAuthenticationKeyWatcherTest.java
>  PRE-CREATION 
>   server/gc/src/main/java/org/apache/accumulo/gc/SimpleGarbageCollector.java 
> da0b07c 
>   
> server/gc/src/test/java/org/apache/accumulo/gc/GarbageCollectWriteAheadLogsTest.java
>  1d7f90f 
>   
> server/gc/src/test/java/org/apache/accumulo/gc/SimpleGarbageCollectorTest.java
>  6fcdd37 
>   
> server/gc/src/test/java/org/apache/accumulo/gc/replication/CloseWriteAheadLogReferencesTest.java
>  120692a 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java be476de 
>   
> server/master/src/main/java/org/apache/accumulo/master/MasterClientServiceHandler.java
>  72cba26 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java 
> a5675dc 
>   
> test/src/main/java/org/apache/accumulo/test/continuous/ContinuousBatchWalker.java
>  a2687bb 
>   
> test/src/main/java/org/apache/accumulo/test/continuous/ContinuousIngest.java 
> dba6ac9 
>   test/src/main/java/org/apache/accumulo/test/continuous/ContinuousMoru.java 
> 4b5c3e7 
>   test/src/main/java/org/apache/accumulo/test/continuous/ContinuousOpts.java 
> PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/continuous/ContinuousQuery.java 
> 73048f6 
>   
> test/src/main/java/org/apache/accumulo/test/continuous/ContinuousScanner.java 
> f68377a 
>   test/src/main/java/org/apache/accumulo/test/continuous/ContinuousWalk.java 
> 60f8ec2 
>   test/src/test/java/org/apache/accumulo/harness/MiniClusterHarness.java 
> 06b4303 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 9296548 
>   test/src/test/java/org/apache/accumulo/test/functional/KerberosIT.java 
> 3d48657 
> 
> Diff: https://reviews.apache.org/r/30817/diff/
> 
> 
> Testing
> -------
> 
> Many new unit tests. Additional integration tests. Standalone mapreduce jobs 
> (continuous verify and terasort ingest) on a fully secure cluster.
> 
> 
> Thanks,
> 
> Josh Elser
> 
>

Reply via email to