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

Anne Yu updated SENTRY-985:
---------------------------
    Description: 
The Hadoop Security book introduces the tool as a good way to check policy 
files for errors and to verify privileges for a given user.  You can also use 
it to import policies from policy files to the Sentry Service.  In the quote 
below it implies that you should use it for Solr policy files to avoid syntax 
errors.

>From O'Reilly Hadoop Security book:

"It is important to point out that while SQL policy files allow for separate 
policy files per database, Solr does not.  This means that Solr policy 
administrators need to be extra careful when modifying the policies because, as 
with the SQL policy files, a syntax error invalidates the entire policy file, 
thus inadvertently denying access to everyone.  A nice feature to help combat 
typos and mistakes is to validate the policy file using the config-tool, which 
leads us into the next section."

However, as I've dug into it I see that config-tool does not support of 
AuthorizableType of "collection", which is the "authorizable" used in Solr 
Sentry policy files.

[nwhite@host-10-17-80-38 ~]$ sentry --command config-tool -l -u nwhite -i 
file:///home/nwhite/sentry-provider.ini -s 
file:///etc/sentry/conf/sentry-site.xml -d
Configuration:

15/12/10 06:58:55 INFO file.SimpleFileProviderBackend: Parsing 
file:/home/nwhite/sentry-provider.ini
15/12/10 06:58:55 INFO file.SimpleFileProviderBackend: Filesystem: file:///
15/12/10 06:58:55 INFO file.PolicyFiles: Opening 
file:/home/nwhite/sentry-provider.ini
15/12/10 06:58:55 ERROR file.SimpleFileProviderBackend: Error processing file, 
ignoring file:/home/nwhite/sentry-provider.ini
org.apache.shiro.config.ConfigurationException: No authorizable found for 
collection=employees
        at 
org.apache.sentry.policy.db.AbstractDBPrivilegeValidator.parsePrivilege(AbstractDBPrivilegeValidator.java:42)
        at 
org.apache.sentry.policy.db.ServersAllIsInvalid.validate(ServersAllIsInvalid.java:29)


>From org.apache.sentry.core.model.db.DBModelAuthorizable:

public enum More ...AuthorizableType {
24    Server,
25    Db,
26    Table,
27    View,
28    URI
29  };


  was:
The Hadoop Security book introduces the tool as a good way to check policy 
files for errors and to verify privileges for a given user.  You can also use 
it to import policies from policy files to the Sentry Service.  In the quote 
below it implies that you should use it for Solr policy files to avoid syntax 
errors.

>From O'Reilly Hadoop Security book:

"It is important to point out that while SQL policy files allow for separate 
policy files per database, Solr does not.  This means that Solr policy 
administrators need to be extra careful when modifying the policies because, as 
with the SQL policy files, a syntax error invalidates the entire policy file, 
thus inadvertently denying access to everyone.  A nice feature to help combat 
typos and mistakes is to validate the policy file using the config-tool, which 
leads us into the next section."

However, as I've dug into it I see that config-tool does not support of 
AuthorizableType of "collection", which is the "authorizable" used in Solr 
Sentry policy files.

[nwhite@host-10-17-80-38 ~]$ sentry --command config-tool -l -u nwhite -i 
file:///home/nwhite/sentry-provider.ini -s 
file:///etc/sentry/conf/sentry-site.xml -d
Configuration:
Sentry package jar: 
file:/opt/cloudera/parcels/CDH-5.4.8-1.cdh5.4.8.p0.4/jars/sentry-binding-hive-1.4.0-cdh5.4.8.jar
Hive config: file:/etc/hive/conf.cloudera.hive/hive-site.xml
15/12/10 06:58:54 INFO conf.HiveAuthzConf: DefaultFS: 
hdfs://host-10-17-80-38.coe.cloudera.com:8020
15/12/10 06:58:54 INFO conf.HiveAuthzConf: DefaultFS: 
hdfs://host-10-17-80-38.coe.cloudera.com:8020
Sentry config: file:/etc/sentry/conf/sentry-site.xml
Sentry Policy: file:///home/nwhite/sentry-provider.ini
Sentry server: HS2
15/12/10 06:58:55 INFO file.SimpleFileProviderBackend: Parsing 
file:/home/nwhite/sentry-provider.ini
15/12/10 06:58:55 INFO file.SimpleFileProviderBackend: Filesystem: file:///
15/12/10 06:58:55 INFO file.PolicyFiles: Opening 
file:/home/nwhite/sentry-provider.ini
15/12/10 06:58:55 ERROR file.SimpleFileProviderBackend: Error processing file, 
ignoring file:/home/nwhite/sentry-provider.ini
org.apache.shiro.config.ConfigurationException: No authorizable found for 
collection=employees
        at 
org.apache.sentry.policy.db.AbstractDBPrivilegeValidator.parsePrivilege(AbstractDBPrivilegeValidator.java:42)
        at 
org.apache.sentry.policy.db.ServersAllIsInvalid.validate(ServersAllIsInvalid.java:29)


>From org.apache.sentry.core.model.db.DBModelAuthorizable:

public enum More ...AuthorizableType {
24    Server,
25    Db,
26    Table,
27    View,
28    URI
29  };



> sentry config-tool fails to import Solr sentry-provider.ini
> -----------------------------------------------------------
>
>                 Key: SENTRY-985
>                 URL: https://issues.apache.org/jira/browse/SENTRY-985
>             Project: Sentry
>          Issue Type: Bug
>          Components: Sentry
>    Affects Versions: 1.6.0
>            Reporter: Anne Yu
>
> The Hadoop Security book introduces the tool as a good way to check policy 
> files for errors and to verify privileges for a given user.  You can also use 
> it to import policies from policy files to the Sentry Service.  In the quote 
> below it implies that you should use it for Solr policy files to avoid syntax 
> errors.
> From O'Reilly Hadoop Security book:
> "It is important to point out that while SQL policy files allow for separate 
> policy files per database, Solr does not.  This means that Solr policy 
> administrators need to be extra careful when modifying the policies because, 
> as with the SQL policy files, a syntax error invalidates the entire policy 
> file, thus inadvertently denying access to everyone.  A nice feature to help 
> combat typos and mistakes is to validate the policy file using the 
> config-tool, which leads us into the next section."
> However, as I've dug into it I see that config-tool does not support of 
> AuthorizableType of "collection", which is the "authorizable" used in Solr 
> Sentry policy files.
> [nwhite@host-10-17-80-38 ~]$ sentry --command config-tool -l -u nwhite -i 
> file:///home/nwhite/sentry-provider.ini -s 
> file:///etc/sentry/conf/sentry-site.xml -d
> Configuration:
> 15/12/10 06:58:55 INFO file.SimpleFileProviderBackend: Parsing 
> file:/home/nwhite/sentry-provider.ini
> 15/12/10 06:58:55 INFO file.SimpleFileProviderBackend: Filesystem: file:///
> 15/12/10 06:58:55 INFO file.PolicyFiles: Opening 
> file:/home/nwhite/sentry-provider.ini
> 15/12/10 06:58:55 ERROR file.SimpleFileProviderBackend: Error processing 
> file, ignoring file:/home/nwhite/sentry-provider.ini
> org.apache.shiro.config.ConfigurationException: No authorizable found for 
> collection=employees
>       at 
> org.apache.sentry.policy.db.AbstractDBPrivilegeValidator.parsePrivilege(AbstractDBPrivilegeValidator.java:42)
>       at 
> org.apache.sentry.policy.db.ServersAllIsInvalid.validate(ServersAllIsInvalid.java:29)
> From org.apache.sentry.core.model.db.DBModelAuthorizable:
> public enum More ...AuthorizableType {
> 24    Server,
> 25    Db,
> 26    Table,
> 27    View,
> 28    URI
> 29  };



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

Reply via email to