Author: jmaron
Date: Tue Feb 17 17:33:06 2015
New Revision: 1660454
URL: http://svn.apache.org/r1660454
Log:
added section for application security store deployment options
Modified:
incubator/slider/site/trunk/content/docs/security.md
Modified: incubator/slider/site/trunk/content/docs/security.md
URL:
http://svn.apache.org/viewvc/incubator/slider/site/trunk/content/docs/security.md?rev=1660454&r1=1660453&r2=1660454&view=diff
==============================================================================
--- incubator/slider/site/trunk/content/docs/security.md (original)
+++ incubator/slider/site/trunk/content/docs/security.md Tue Feb 17 17:33:06
2015
@@ -254,7 +254,49 @@ They can also be set on the Slider comma
-S java.security.krb5.realm=MINICLUSTER -S
java.security.krb5.kdc=hadoop-kdc
-### Important: Java Cryptography Package
+## Generation and deployment of application keystores/truststores
+Application components may make use of keystores and truststores to establish
secure communications. Given the nature of application deployments in a YARN
cluster and the lack of certainty concerning the nodemanager host on which a
component container may be spawned, Slider provides the facility for creating
and deploying the keystores and truststores that may be required.
+
+The process of enabling application keystore/truststore generation and
deployment is:
+
+* Set the "slider.component.security.stores.required" property to "true".
This property can be set as a global property (indicating all components
require stores) or can be set/overridden at the component level to selectively
enable store generation for a given component.
+* Specify the password property for the component keystore or truststore or,
+* Specify the property providing the alias that references a credential
managed by the Hadoop Credential Provider. This credential provides the
password for securing the keystore/truststore.
+
+### Specifying a keystore/truststore password
+Applications that make use of a keystore and/or truststore may already have
configuration properties that reference the value for the password used to
secure the given certificate store. In those instances the application
configuration can reference the value of the password property in the component
specific configuration section:
+
+ "APP_COMPONENT": {
+ "slider.component.security.stores.required": "true",
+ "slider.component.keystore.password.property":
"site.myapp-site.app_component.keystore.password"
+ }
+
+In this example:
+
+* The store required property is set to "true" for the APP_COMPONENT component
+* The application has a property in its site configuration file named
"app_component.keystore.password". This property is specified in the appConfig
file's global section (with the "site.myapp-site" prefix), and is referenced
here to indicate to Slider which application property provides the store
password.
+
+### Specifying a keystore/truststore Credential Provider alias
+Applications that utilize the Credenfial Provider API to retrieve application
passwords can specify the following configuration:
+
+* Indicate the credential storage path in the "credentials" section of the app
configuration file:
+
+ "credentials": {
+ "jceks://hdfs/user/${USER}/myapp.jceks":
["app_component.keystore.password.alias"]
+ }
+
+If you specify a list of aliases and are making use of the Slider CLI for
application deployment, you will be prompted to enter a value for the passwords
specified if no password matching a configured alias is found in the credential
store. However, any mechanism available for pre-populating the credential
store may be utilized.
+
+* Reference the alias to use for securing the keystore/truststore in the
component's configuraton section:
+
+ "APP_COMPONENT": {
+ "slider.component.security.stores.required": "true",
+ "slider.component.keystore.credential.alias.property":
"app_component.keystore.password.alias"
+ }
+
+At runtime, Slider will read the credential mapped to the alias (in this case,
"app_component.keystore.password.alias"), and leverage the password stored to
secure the generated keystore.
+
+## Important: Java Cryptography Package
When trying to talk to a secure, cluster you may see the message:
@@ -267,7 +309,6 @@ from Oracle (or other supplier of the JV
its accompanying instructions.
-
## Useful Links
1. [Adding Security to Apache
Hadoop](http://hortonworks.com/wp-content/uploads/2011/10/security-design_withCover-1.pdf)