This is an automated email from the ASF dual-hosted git repository.

abukor pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/master by this push:
     new 9602f77  [docs] Remove Sentry from documentation
9602f77 is described below

commit 9602f77fdf5057627101b19f18d41c48027cadbf
Author: Attila Bukor <[email protected]>
AuthorDate: Wed Jul 22 14:27:55 2020 +0200

    [docs] Remove Sentry from documentation
    
    Apache Sentry integration was recently removed. This patch removes its
    documentation and the mentions for it.
    
    Change-Id: Ibcbb400453063b1f18163dd87cc27db1679d03d5
    Reviewed-on: http://gerrit.cloudera.org:8080/16232
    Tested-by: Kudu Jenkins
    Reviewed-by: Grant Henke <[email protected]>
---
 docs/hive_metastore.adoc |  18 +++---
 docs/security.adoc       | 156 ++++-------------------------------------------
 2 files changed, 22 insertions(+), 152 deletions(-)

diff --git a/docs/hive_metastore.adoc b/docs/hive_metastore.adoc
index ed49ea4..9ec8fe1 100644
--- a/docs/hive_metastore.adoc
+++ b/docs/hive_metastore.adoc
@@ -121,11 +121,11 @@ WARNING: Before enabling the Hive Metastore integration 
on an existing cluster,
 make sure to upgrade any tables that may exist in Kudu's or in the HMS's
 catalog. See <<upgrading-tables>> for more details.
 
-* When the Hive Metastore is configured with fine-grained authorization
-using Apache Sentry and the Sentry HDFS Sync feature is enabled, the Kudu admin
-needs to be able to access and modify directories that are created for Kudu by
-the HMS. This can be done by adding the Kudu admin user to the group of the
-Hive service users, e.g.  by running `usermod -aG hive kudu` on the HMS nodes.
+* When the Hive Metastore is configured with fine-grained authorization, the
+Kudu admin needs to be able to access and modify directories that are created
+for Kudu by the HMS. This can be done by adding the Kudu admin user to the 
group
+of the Hive service users, e.g.  by running `usermod -aG hive kudu` on the HMS
+nodes.
 
 * Configure the Hive Metastore to include the notification event listener and
 the Kudu HMS plugin, to allow altering and dropping columns, and to add full
@@ -195,10 +195,10 @@ able to run the `kudu hms` tools. This can be done by 
configuring the user as a
 trusted user via the `--trusted_user_acl` master configuration. See
 <<security.adoc#trusted-users,here>> for more information about trusted users.
 
-NOTE: If the Hive Metastore is configured with fine-grained authorization using
-Apache Sentry, the Kudu admin user needs to have read and write privileges on
-HMS table entries. Configured this in the Hive Metastore using the
-`sentry.metastore.service.users` property.
+NOTE: If the Hive Metastore is configured with fine-grained authorization, the
+Kudu admin user needs to have read and write privileges on HMS table entries.
+Configured this in the Hive Metastore. For Apache Sentry this can be configured
+using the `sentry.metastore.service.users` property.
 
 ### `kudu hms list`
 
diff --git a/docs/security.adoc b/docs/security.adoc
index 53c58d7..b1346f3 100644
--- a/docs/security.adoc
+++ b/docs/security.adoc
@@ -154,16 +154,10 @@ to access the cluster.
 [[fine_grained_authz]]
 == Fine-Grained Authorization
 
-As of Kudu 1.10.0, Kudu can be configured to enforce fine-grained authorization
+As of Kudu 1.12.0, Kudu can be configured to enforce fine-grained authorization
 across servers. This ensures that users can see only the data they are
-explicitly authorized to see. Kudu supports this by leveraging policies
-defined in Apache Sentry 2.2 and later. In addition, starting from Kudu
-1.12.0, Kudu can support fine-grained authorization by leveraging policies
-defined in Apache Ranger 2.1 and later.
-
-WARNING: Since support for Apache Sentry authorization has been deprecated 
since
-Kudu 1.12.0 and may be completely removed, fine-grained authorization via 
Apache
-Ranger is preferred going forward.
+explicitly authorized to see. Kudu supports this by leveraging policies defined
+in Apache Ranger 2.1 and later.
 
 WARNING: Fine-grained authorization policies are not enforced when accessing
 the web UI. User data may appear on various pages of the web UI (e.g. in logs,
@@ -219,8 +213,8 @@ it does not imply that user has `SELECT` privileges on 
every table belonging to
 that database. On the other hand, Ranger supports privilege wildcard matching.
 For example, `db=a->table=\*` matches all the tables that belong to database 
`a`.
 Therefore, in Ranger users actually need the `SELECT` privilege on
-`db=a->table=*->column=*` to match the semantics of the `SELECT` privilege on
-`db=a` in Sentry.
+`db=a->table=*->column=*` to allow `SELECT` on every table and every column in
+database `a`.
 
 Nevertheless, with Ranger integration, when a Kudu master receives a request,
 it consults Ranger to determine what privileges a user has. And the required
@@ -231,67 +225,14 @@ action or not.
 NOTE: Even though Kudu table names remain case sensitive with Ranger 
integration,
 policies authorization is considered case-insensitive.
 
-=== Apache Sentry
-
-Apache Sentry models tabular objects in the following hierarchy:
-
-* *Server* - indicated by the Kudu configuration flag `--server_name`.
-Everything stored in a Kudu cluster falls within the given "server".
-
-* *Database* - indicated as a prefix of table names with the format
-`<database>.<table>`.
-
-* *Table* - a single Kudu table.
-
-* *Column* - a column within a Kudu table.
-
-Each level of this hierarchy defines a "scope" on which privileges can be
-granted. Privileges granted on a higher scope imply privileges on a lower
-scope. For example, if a user has `SELECT` privilege on a database, that user
-implicitly has `SELECT` privileges on every table belonging to that database.
-
-Privileges are also associated with specific actions. Access to Kudu tables may
-rely on privileges on the following actions:
-
-* `ALTER`
-* `CREATE`
-* `DELETE`
-* `DROP`
-* `INSERT`
-* `UPDATE`
-* `SELECT`
-
-Additionally, there are three special actions recognized by Kudu: `ALL`,
-`OWNER`, and `METADATA`. If a user has the `ALL` or `OWNER` privileges on a
-given table, that user has all of the above privileges on the table.
-`METADATA` privilege is not an actual privilege per se, rather, it is a
-conceptual privilege with which Kudu models any privilege. If a user has any
-privilege on a given table, that user has `METADATA` privileges on the table,
-i.e. a privilege granted on any action on a table implies that the user has
-the `METADATA` privilege on that table.
-
-For more details about Sentry privileges, see the Apache Sentry
-link:https://cwiki.apache.org/confluence/display/SENTRY/Sentry+Privileges[documentation].
-
-NOTE: Depending on the value of the `sentry.db.explicit.grants.permitted`
-configuration in Sentry, certain privileges may not be grantable in Sentry. For
-example, in Sentry deployments that don't support `UPDATE` privileges, to
-perform an operation that requires `UPDATE` privileges, a user must instead
-have `ALL` privileges.
-
-When a Kudu master receives a request, it consults Sentry to determine what
-privileges a user has. If the user is not authorized to perform the requested
-action, the request is rejected. Kudu leverages the authenticated identity of a
-user to decide whether to perform or reject a request.
-
 === Authorization Tokens
 
 Rather than having every tablet server communicate directly with the underlying
-authorization service (e.g. Sentry or Ranger), privileges are propagated and 
checked
-via *authorization tokens*. These tokens encapsulate what privileges a user has
-on a given table. Tokens are generated by the master and returned to Kudu 
clients
-upon opening a Kudu table. Kudu clients automatically attach authorization 
tokens
-when sending requests to tablet servers.
+authorization service (Ranger), privileges are propagated and checked via
+*authorization tokens*. These tokens encapsulate what privileges a user has on 
a
+given table. Tokens are generated by the master and returned to Kudu clients
+upon opening a Kudu table. Kudu clients automatically attach authorization
+tokens when sending requests to tablet servers.
 
 NOTE: Authorization tokens are a means to limiting the number of nodes directly
 accessing the authorization service to retrieve privileges. As such, since the
@@ -332,14 +273,12 @@ Impala's
 
link:https://impala.apache.org/docs/build/html/topics/impala_authorization.html#authorization[authorization
 documentation].
 
+[[ranger-configuration]]
 === Configuring the Integration with Apache Ranger
 
 NOTE: Ranger is often configured with Kerberos authentication. See
 <<configuration>> for how to configure Kudu to authenticate via Kerberos.
 
-NOTE: Sentry integration can not be enabled at the same time with Ranger
-integration.
-
 * After building Kudu from source, find the `kudu-subprocess.jar` under the 
build
 directory (e.g. `build/release/bin`). Note its path, as it is the one to the
 JAR file containing the Ranger subprocess, which houses the Ranger client that
@@ -454,75 +393,7 @@ Admin web UI:
 </property>
 ```
 
-[[sentry-configuration]]
-=== Configuring the Integration with Apache Sentry
-
-NOTE: Sentry is often configured with Kerberos authentication. See
-<<configuration>> for how to configure Kudu to authenticate via Kerberos.
-
-NOTE: In order to enable integration with Sentry, a cluster must first be
-integrated with the Apache Hive Metastore. See the
-<<hive_metastore.adoc#enabling-the-hive-metastore-integration,documentation>>
-for how to configure Kudu to synchronize its internal catalog with the Hive
-Metastore.
-
-The following configurations must be set on the master:
-
-```
---sentry_service_rpc_addresses=<Sentry RPC address>
---server_name=<value of HiveServer2's hive.sentry.server configuration>
---kudu_service_name=kudu
---sentry_service_kerberos_principal=sentry
---sentry_service_security_mode=kerberos
-
-# This example ACL setup allows the 'impala' user to access all data stored in
-# Kudu, assuming Impala will authorize requests on its own. The 'hadoopadmin'
-# user is also granted access to all Kudu data, which may facilitate testing
-# and debugging.
---trusted_user_acl=impala,hadoopadmin
-```
-
-The following configurations must be set on the tablet servers:
-
-```
---tserver_enforce_access_control=true
-```
-
-The following configurations must be set in `sentry-site.xml` on the Sentry 
servers:
-```xml
-# This example setup configures the Kudu service user as a privileged user to 
be
-# able to retrieve authorization policies stored in Sentry.
-<property>
-  <name>sentry.service.allow.connect</name>
-  <value>kudu</value>
-</property>
-
-<property>
-  <name>sentry.service.admin.group</name>
-  <value>kudu</value>
-</property>
-```
-
 [[privilege-caching]]
-=== Kudu Master Caching for Sentry
-
-To avoid overwhelming Sentry with requests to fetch user privileges, the Kudu
-master can be configured to cache user privileges. A by-product of this caching
-is that when privileges are changed in Sentry, they may not be reflected in
-Kudu for a configurable amount of time, defined by the following Kudu master
-configurations:
-
-`--sentry_privileges_cache_ttl_factor * --authz_token_validity_interval_secs`
-
-The default value is fifty minutes. If privilege updates need to be reflected
-in Kudu sooner than this, the Kudu CLI tool can be used to invalidate the
-cached privileges to force Kudu to fetch new ones from Sentry:
-
-[source,bash]
-----
-kudu master authz_cache reset <master-addresses>
-----
-
 === Ranger Client Caching
 On the other hand, privilege cache in Kudu master is disabled with Ranger 
integration,
 since Ranger provides client side cache the use privileges and can 
periodically poll
@@ -543,7 +414,6 @@ The following authorization policy is enforced by Kudu 
masters.
 |===
 | Operation | Required Privilege
 | `CreateTable` | `CREATE ON DATABASE`
-| `CreateTable` with a different owner specified than the requesting user | 
`ALL ON DATABASE` with the Sentry `GRANT OPTION` (see 
link:https://cwiki.apache.org/confluence/display/SENTRY/Support+Delegated+GRANT+and+REVOKE+in+Hive+and+Impala[here])
 | `DeleteTable` | `DROP ON TABLE`
 | `AlterTable` (with no rename) | `ALTER ON TABLE`
 | `AlterTable` (with rename) | `ALL ON TABLE <old-table>` and `CREATE ON 
DATABASE <new-database>`
@@ -665,8 +535,8 @@ tablet server) in order to ensure that a Kudu cluster is 
secure:
 --superuser_acl=hadoopadmin
 ```
 
-See <<sentry-configuration>> to see an example of how to enable fine-grained
-authorization via Apache Sentry.
+See <<ranger-configuration>> to see an example of how to enable fine-grained
+authorization via Apache Ranger.
 
 Further information about these flags can be found in the configuration
 flag reference.

Reply via email to