Robert Levas created AMBARI-8487:
------------------------------------
Summary: Oozie service components should indicate security state
Key: AMBARI-8487
URL: https://issues.apache.org/jira/browse/AMBARI-8487
Project: Ambari
Issue Type: Improvement
Components: ambari-server, stacks
Affects Versions: 2.0.0
Reporter: Robert Levas
Assignee: Robert Levas
Fix For: 2.0.0
The Oozie service components should indicate security state when queried by
Ambari Agent via STATUS_COMMAND. Each component should determine it's state as
follows:
h3. OOZIE_SERVER
h4. Indicators
* Command JSON
** config\['configurations']\['cluster-env']\['security_enabled']
*** = “true”
* Configuration File: params.conf_dir + ‘/oozie-site.xml’
** oozie.service.AuthorizationService.security.enabled
*** = “true”
*** required
** oozie.service.HadoopAccessorService.kerberos.enabled
*** = “true”
*** required
** local.realm
*** not empty
*** required
** oozie.authentication.type
*** = “kerberos”
*** required
** oozie.authentication.kerberos.principal
*** not empty
*** required
** oozie.authentication.kerberos.keytab
*** not empty
*** path exists and is readable
*** required
** oozie.authentication.kerberos.name.rules
*** not empty
*** required
** oozie.service.HadoopAccessorService.keytab.file
*** not empty
*** path exists and is readable
*** required
** oozie.service.HadoopAccessorService.kerberos.principal
*** not empty
*** required
h4. Pseudocode
{code}
if indicators imply security is on and validate
if kinit(oozie principal) && kinit(HadoopAccessorService principal)
succeeds
state = SECURED_KERBEROS
else
state = ERROR
else
state = UNSECURED
{code}
h3. OOZIE_CLIENT
h4. Indicators
* Command JSON
** config\['configurations']\['cluster-env']\['security_enabled']
*** = “true”
* Configuration File: params.conf_dir + ‘/oozie-site.xml’
** oozie.service.AuthorizationService.security.enabled
*** = “true”
*** required
** oozie.service.HadoopAccessorService.kerberos.enabled
*** = “true”
*** required
** local.realm
*** not empty
*** required
** oozie.authentication.type
*** = “kerberos”
*** required
** oozie.authentication.kerberos.principal
*** not empty
*** required
** oozie.authentication.kerberos.keytab
*** not empty
*** path exists and is readable
*** required
** oozie.authentication.kerberos.name.rules
*** not empty
*** required
** oozie.service.HadoopAccessorService.keytab.file
*** not empty
*** path exists and is readable
*** required
** oozie.service.HadoopAccessorService.kerberos.principal
*** not empty
*** required
h4. Pseudocode
{code}
if indicators imply security is on and validate
if kinit(oozie principal) && kinit(HadoopAccessorService principal)
succeeds
state = SECURED_KERBEROS
else
state = ERROR
else
state = UNSECURED
{code}
_*Note*_: Due to the _cost_ of calling {{kinit}} results should be cached for a
period of time before retrying. This may be an issue depending on the
frequency of the heartbeat timeout.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)