[ 
https://issues.apache.org/jira/browse/AMBARI-8478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Levas updated AMBARI-8478:
---------------------------------
    Attachment: AMBARI-8478_01.patch

* Updated {{resource_management/libraries/functions/security_commons.py}} to 
allow for a default kinit cache expiration time, and for new configuration type 
parsers.
* Updated {{stacks/utils/RMFTestCase.py} to reload status_params module
* Updated _Falcon_ lifecycle scripts to implement {{security_status}} method
* Updated _HDFS_ lifecycle scripts to reflect changed in {{security_commons.py}}
* Updated and added test cases.

Patch File [^AMBARI-8478_01.patch]

> Falcon service components should indicate security state
> --------------------------------------------------------
>
>                 Key: AMBARI-8478
>                 URL: https://issues.apache.org/jira/browse/AMBARI-8478
>             Project: Ambari
>          Issue Type: Improvement
>          Components: ambari-server, stacks
>    Affects Versions: 2.0.0
>            Reporter: Robert Levas
>            Assignee: Robert Levas
>              Labels: kerberos, lifecycle, security
>             Fix For: 2.0.0
>
>         Attachments: AMBARI-8478_01.patch
>
>
> The Falcon service components should indicate security state when queried by 
> Ambari Agent via STATUS_COMMAND. Each component should determine it's state 
> as follows:
> h3. FALCON_CLIENT
> h4. Indicators
> * Command JSON
> ** config\['configurations']\['cluster-env']\['security_enabled'] 
> *** = “true”
> h4. PseudoCode
> {code}
> if indicators imply security is on and validate
>     state = SECURED_KERBEROS
> else
>     state = UNSECURED
> {code}
> h3. FALCON_SERVER
> h4. Indicators
> * Command JSON
> ** config\['configurations']\['cluster-env']\['security_enabled'] 
> *** = “true”
> * Configuration File: params.falcon_conf_dir + ‘/startup.properties’
> ** *.falcon.authentication.type
> *** = “kerberos”
> ** *.falcon.service.authentication.kerberos.principal
> *** not empty
> *** required
> ** *.falcon.service.authentication.kerberos.keytab
> *** not empty
> *** required
> *** path exists and is readable
> ** *.dfs.namenode.kerberos.principal
> *** not empty
> *** required
> ** *.falcon.http.authentication.type
> *** = “kerberos”
> ** *.falcon.http.authentication.kerberos.principal
> *** not empty
> *** required
> ** *.falcon.http.authentication.kerberos.keytab
> *** not empty
> *** required
> *** path exists and is readable
> h4. Pseudocode
> {code} 
> if indicators imply security is on and validate
>     if kinit(falcon principal) && kinit(http 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.
> _*Note*_: {{kinit}} calls should specify a _temporary_ cache file which 
> should be destroyed after command is executed - BUG-29477



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to