drill-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bridg...@apache.org
Subject [3/5] drill git commit: Reorganize content for securing drill updates
Date Thu, 16 Mar 2017 02:21:00 GMT
Reorganize content for securing drill updates


Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/74e0fee7
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/74e0fee7
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/74e0fee7

Branch: refs/heads/gh-pages
Commit: 74e0fee71976fe883d4902a09256c18d13c2f4ce
Parents: 535d518
Author: Bridget Bevens <bbevens@maprtech.com>
Authored: Wed Mar 15 18:22:46 2017 -0700
Committer: Bridget Bevens <bbevens@maprtech.com>
Committed: Wed Mar 15 18:22:46 2017 -0700

----------------------------------------------------------------------
 _data/docs.json                                 | 967 +++++++++++++++++--
 .../070-configuring-user-impersonation.md       | 147 ---
 .../071-configure-inbound-impersonation.md      |  53 -
 ...ser-impersonation-with-hive-authorization.md | 268 -----
 ...-configuring-web-ui-and-rest-api-security.md | 111 ---
 .../010-securing-drill-introduction.md          |  42 +-
 .../070-configuring-user-authentication.md      |  24 +-
 .../080-configuring-plain-authentication.md     | 182 ++--
 ...090-configuring-kerberos-auththentication.md | 172 ++--
 .../015-creating-custom-authenticators.md       | 105 ++
 10 files changed, 1204 insertions(+), 867 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/drill/blob/74e0fee7/_data/docs.json
----------------------------------------------------------------------
diff --git a/_data/docs.json b/_data/docs.json
index 25e3bcc..4148c55 100644
--- a/_data/docs.json
+++ b/_data/docs.json
@@ -1070,8 +1070,8 @@
                         }
                     ], 
                     "children": [], 
-                    "next_title": "Configuring a Multitenant Cluster", 
-                    "next_url": "/docs/configuring-a-multitenant-cluster/", 
+                    "next_title": "Securing Drill", 
+                    "next_url": "/docs/securing-drill/", 
                     "parent": "Configure Drill", 
                     "previous_title": "Configure Drill Introduction", 
                     "previous_url": "/docs/configure-drill-introduction/", 
@@ -1090,6 +1090,234 @@
                         {
                             "breadcrumbs": [
                                 {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Secure Communication Paths", 
+                            "next_url": "/docs/secure-communication-paths/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Securing Drill", 
+                            "previous_url": "/docs/securing-drill/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/010-securing-drill-introduction.md", 
+                            "title": "Securing Drill Introduction", 
+                            "url": "/docs/securing-drill-introduction/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Roles and Privileges", 
+                            "next_url": "/docs/roles-and-privileges/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Securing Drill Introduction", 
+                            "previous_url": "/docs/securing-drill-introduction/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/020-secure-communication-paths.md", 
+                            "title": "Secure Communication Paths", 
+                            "url": "/docs/secure-communication-paths/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring User Impersonation", 
+                            "next_url": "/docs/configuring-user-impersonation/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Secure Communication Paths", 
+                            "previous_url": "/docs/secure-communication-paths/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/030-roles-privileges.md", 
+                            "title": "Roles and Privileges", 
+                            "url": "/docs/roles-and-privileges/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring Inbound Impersonation", 
+                            "next_url": "/docs/configuring-inbound-impersonation/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Roles and Privileges", 
+                            "previous_url": "/docs/roles-and-privileges/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/040-configuring-user-impersonation.md", 
+                            "title": "Configuring User Impersonation", 
+                            "url": "/docs/configuring-user-impersonation/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring User Impersonation with Hive Authorization", 
+                            "next_url": "/docs/configuring-user-impersonation-with-hive-authorization/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Configuring User Impersonation", 
+                            "previous_url": "/docs/configuring-user-impersonation/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/050-configure-inbound-impersonation.md", 
+                            "title": "Configuring Inbound Impersonation", 
+                            "url": "/docs/configuring-inbound-impersonation/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring User Authentication", 
+                            "next_url": "/docs/configuring-user-authentication/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Configuring Inbound Impersonation", 
+                            "previous_url": "/docs/configuring-inbound-impersonation/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/060-configuring-user-impersonation-with-hive-authorization.md", 
+                            "title": "Configuring User Impersonation with Hive Authorization", 
+                            "url": "/docs/configuring-user-impersonation-with-hive-authorization/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring Plain Authentication", 
+                            "next_url": "/docs/configuring-plain-authentication/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Configuring User Impersonation with Hive Authorization", 
+                            "previous_url": "/docs/configuring-user-impersonation-with-hive-authorization/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/070-configuring-user-authentication.md", 
+                            "title": "Configuring User Authentication", 
+                            "url": "/docs/configuring-user-authentication/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring Kerberos Authentication", 
+                            "next_url": "/docs/configuring-kerberos-authentication/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Configuring User Authentication", 
+                            "previous_url": "/docs/configuring-user-authentication/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/080-configuring-plain-authentication.md", 
+                            "title": "Configuring Plain Authentication", 
+                            "url": "/docs/configuring-plain-authentication/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring Web Console and REST API Security", 
+                            "next_url": "/docs/configuring-web-console-and-rest-api-security/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Configuring Plain Authentication", 
+                            "previous_url": "/docs/configuring-plain-authentication/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/090-configuring-kerberos-auththentication.md", 
+                            "title": "Configuring Kerberos Authentication", 
+                            "url": "/docs/configuring-kerberos-authentication/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring a Multitenant Cluster", 
+                            "next_url": "/docs/configuring-a-multitenant-cluster/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Configuring Kerberos Authentication", 
+                            "previous_url": "/docs/configuring-kerberos-authentication/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/091-configuring-web-ui-and-rest-api-security.md", 
+                            "title": "Configuring Web Console and REST API Security", 
+                            "url": "/docs/configuring-web-console-and-rest-api-security/"
+                        }
+                    ], 
+                    "next_title": "Securing Drill Introduction", 
+                    "next_url": "/docs/securing-drill-introduction/", 
+                    "parent": "Configure Drill", 
+                    "previous_title": "Configuring Drill Memory", 
+                    "previous_url": "/docs/configuring-drill-memory/", 
+                    "relative_path": "_docs/configure-drill/031-securing-drill.md", 
+                    "title": "Securing Drill", 
+                    "url": "/docs/securing-drill/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Configure Drill", 
+                            "url": "/docs/configure-drill/"
+                        }
+                    ], 
+                    "children": [
+                        {
+                            "breadcrumbs": [
+                                {
                                     "title": "Configuring a Multitenant Cluster", 
                                     "url": "/docs/configuring-a-multitenant-cluster/"
                                 }, 
@@ -1154,8 +1382,8 @@
                     "next_title": "Configuring a Multitenant Cluster Introduction", 
                     "next_url": "/docs/configuring-a-multitenant-cluster-introduction/", 
                     "parent": "Configure Drill", 
-                    "previous_title": "Configuring Drill Memory", 
-                    "previous_url": "/docs/configuring-drill-memory/", 
+                    "previous_title": "Configuring Web Console and REST API Security", 
+                    "previous_url": "/docs/configuring-web-console-and-rest-api-security/", 
                     "relative_path": "_docs/configure-drill/040-configuring-a-multitenant-cluster.md", 
                     "title": "Configuring a Multitenant Cluster", 
                     "url": "/docs/configuring-a-multitenant-cluster/"
@@ -1433,8 +1661,8 @@
                 }
             ], 
             "children": [], 
-            "next_title": "Configuring a Multitenant Cluster", 
-            "next_url": "/docs/configuring-a-multitenant-cluster/", 
+            "next_title": "Securing Drill", 
+            "next_url": "/docs/securing-drill/", 
             "parent": "Configure Drill", 
             "previous_title": "Configure Drill Introduction", 
             "previous_url": "/docs/configure-drill-introduction/", 
@@ -1462,17 +1690,21 @@
         "Configuring Inbound Impersonation": {
             "breadcrumbs": [
                 {
+                    "title": "Securing Drill", 
+                    "url": "/docs/securing-drill/"
+                }, 
+                {
                     "title": "Configure Drill", 
                     "url": "/docs/configure-drill/"
                 }
             ], 
             "children": [], 
-            "next_title": "Configuring User Authentication", 
-            "next_url": "/docs/configuring-user-authentication/", 
-            "parent": "Configure Drill", 
+            "next_title": "Configuring User Impersonation with Hive Authorization", 
+            "next_url": "/docs/configuring-user-impersonation-with-hive-authorization/", 
+            "parent": "Securing Drill", 
             "previous_title": "Configuring User Impersonation", 
             "previous_url": "/docs/configuring-user-impersonation/", 
-            "relative_path": "_docs/configure-drill/071-configure-inbound-impersonation.md", 
+            "relative_path": "_docs/configure-drill/securing-drill/050-configure-inbound-impersonation.md", 
             "title": "Configuring Inbound Impersonation", 
             "url": "/docs/configuring-inbound-impersonation/"
         }, 
@@ -1497,6 +1729,27 @@
             "title": "Configuring JReport with Drill", 
             "url": "/docs/configuring-jreport-with-drill/"
         }, 
+        "Configuring Kerberos Authentication": {
+            "breadcrumbs": [
+                {
+                    "title": "Securing Drill", 
+                    "url": "/docs/securing-drill/"
+                }, 
+                {
+                    "title": "Configure Drill", 
+                    "url": "/docs/configure-drill/"
+                }
+            ], 
+            "children": [], 
+            "next_title": "Configuring Web Console and REST API Security", 
+            "next_url": "/docs/configuring-web-console-and-rest-api-security/", 
+            "parent": "Securing Drill", 
+            "previous_title": "Configuring Plain Authentication", 
+            "previous_url": "/docs/configuring-plain-authentication/", 
+            "relative_path": "_docs/configure-drill/securing-drill/090-configuring-kerberos-auththentication.md", 
+            "title": "Configuring Kerberos Authentication", 
+            "url": "/docs/configuring-kerberos-authentication/"
+        }, 
         "Configuring Multitenant Resources": {
             "breadcrumbs": [
                 {
@@ -1704,6 +1957,27 @@
             "title": "Configuring ODBC on Windows", 
             "url": "/docs/configuring-odbc-on-windows/"
         }, 
+        "Configuring Plain Authentication": {
+            "breadcrumbs": [
+                {
+                    "title": "Securing Drill", 
+                    "url": "/docs/securing-drill/"
+                }, 
+                {
+                    "title": "Configure Drill", 
+                    "url": "/docs/configure-drill/"
+                }
+            ], 
+            "children": [], 
+            "next_title": "Configuring Kerberos Authentication", 
+            "next_url": "/docs/configuring-kerberos-authentication/", 
+            "parent": "Securing Drill", 
+            "previous_title": "Configuring User Authentication", 
+            "previous_url": "/docs/configuring-user-authentication/", 
+            "relative_path": "_docs/configure-drill/securing-drill/080-configuring-plain-authentication.md", 
+            "title": "Configuring Plain Authentication", 
+            "url": "/docs/configuring-plain-authentication/"
+        }, 
         "Configuring Resources for a Shared Drillbit": {
             "breadcrumbs": [
                 {
@@ -1749,23 +2023,31 @@
         "Configuring User Authentication": {
             "breadcrumbs": [
                 {
+                    "title": "Securing Drill", 
+                    "url": "/docs/securing-drill/"
+                }, 
+                {
                     "title": "Configure Drill", 
                     "url": "/docs/configure-drill/"
                 }
             ], 
             "children": [], 
-            "next_title": "Configuring User Impersonation with Hive Authorization", 
-            "next_url": "/docs/configuring-user-impersonation-with-hive-authorization/", 
-            "parent": "Configure Drill", 
-            "previous_title": "Configuring Inbound Impersonation", 
-            "previous_url": "/docs/configuring-inbound-impersonation/", 
-            "relative_path": "_docs/configure-drill/075-configuring-user-authentication.md", 
+            "next_title": "Configuring Plain Authentication", 
+            "next_url": "/docs/configuring-plain-authentication/", 
+            "parent": "Securing Drill", 
+            "previous_title": "Configuring User Impersonation with Hive Authorization", 
+            "previous_url": "/docs/configuring-user-impersonation-with-hive-authorization/", 
+            "relative_path": "_docs/configure-drill/securing-drill/070-configuring-user-authentication.md", 
             "title": "Configuring User Authentication", 
             "url": "/docs/configuring-user-authentication/"
         }, 
         "Configuring User Impersonation": {
             "breadcrumbs": [
                 {
+                    "title": "Securing Drill", 
+                    "url": "/docs/securing-drill/"
+                }, 
+                {
                     "title": "Configure Drill", 
                     "url": "/docs/configure-drill/"
                 }
@@ -1773,44 +2055,52 @@
             "children": [], 
             "next_title": "Configuring Inbound Impersonation", 
             "next_url": "/docs/configuring-inbound-impersonation/", 
-            "parent": "Configure Drill", 
-            "previous_title": "Configuring Resources for a Shared Drillbit", 
-            "previous_url": "/docs/configuring-resources-for-a-shared-drillbit/", 
-            "relative_path": "_docs/configure-drill/070-configuring-user-impersonation.md", 
+            "parent": "Securing Drill", 
+            "previous_title": "Roles and Privileges", 
+            "previous_url": "/docs/roles-and-privileges/", 
+            "relative_path": "_docs/configure-drill/securing-drill/040-configuring-user-impersonation.md", 
             "title": "Configuring User Impersonation", 
             "url": "/docs/configuring-user-impersonation/"
         }, 
         "Configuring User Impersonation with Hive Authorization": {
             "breadcrumbs": [
                 {
+                    "title": "Securing Drill", 
+                    "url": "/docs/securing-drill/"
+                }, 
+                {
                     "title": "Configure Drill", 
                     "url": "/docs/configure-drill/"
                 }
             ], 
             "children": [], 
-            "next_title": "Configuring Web Console and REST API Security", 
-            "next_url": "/docs/configuring-web-console-and-rest-api-security/", 
-            "parent": "Configure Drill", 
-            "previous_title": "Configuring User Authentication", 
-            "previous_url": "/docs/configuring-user-authentication/", 
-            "relative_path": "_docs/configure-drill/076-configuring-user-impersonation-with-hive-authorization.md", 
+            "next_title": "Configuring User Authentication", 
+            "next_url": "/docs/configuring-user-authentication/", 
+            "parent": "Securing Drill", 
+            "previous_title": "Configuring Inbound Impersonation", 
+            "previous_url": "/docs/configuring-inbound-impersonation/", 
+            "relative_path": "_docs/configure-drill/securing-drill/060-configuring-user-impersonation-with-hive-authorization.md", 
             "title": "Configuring User Impersonation with Hive Authorization", 
             "url": "/docs/configuring-user-impersonation-with-hive-authorization/"
         }, 
         "Configuring Web Console and REST API Security": {
             "breadcrumbs": [
                 {
+                    "title": "Securing Drill", 
+                    "url": "/docs/securing-drill/"
+                }, 
+                {
                     "title": "Configure Drill", 
                     "url": "/docs/configure-drill/"
                 }
             ], 
             "children": [], 
-            "next_title": "Configuring Drill to Read Web Server Logs", 
-            "next_url": "/docs/configuring-drill-to-read-web-server-logs/", 
-            "parent": "Configure Drill", 
-            "previous_title": "Configuring User Impersonation with Hive Authorization", 
-            "previous_url": "/docs/configuring-user-impersonation-with-hive-authorization/", 
-            "relative_path": "_docs/configure-drill/078-configuring-web-ui-and-rest-api-security.md", 
+            "next_title": "Configuring a Multitenant Cluster", 
+            "next_url": "/docs/configuring-a-multitenant-cluster/", 
+            "parent": "Securing Drill", 
+            "previous_title": "Configuring Kerberos Authentication", 
+            "previous_url": "/docs/configuring-kerberos-authentication/", 
+            "relative_path": "_docs/configure-drill/securing-drill/091-configuring-web-ui-and-rest-api-security.md", 
             "title": "Configuring Web Console and REST API Security", 
             "url": "/docs/configuring-web-console-and-rest-api-security/"
         }, 
@@ -1889,8 +2179,8 @@
             "next_title": "Configuring a Multitenant Cluster Introduction", 
             "next_url": "/docs/configuring-a-multitenant-cluster-introduction/", 
             "parent": "Configure Drill", 
-            "previous_title": "Configuring Drill Memory", 
-            "previous_url": "/docs/configuring-drill-memory/", 
+            "previous_title": "Configuring Web Console and REST API Security", 
+            "previous_url": "/docs/configuring-web-console-and-rest-api-security/", 
             "relative_path": "_docs/configure-drill/040-configuring-a-multitenant-cluster.md", 
             "title": "Configuring a Multitenant Cluster", 
             "url": "/docs/configuring-a-multitenant-cluster/"
@@ -8832,6 +9122,27 @@
             "title": "Review the Java Stack Trace", 
             "url": "/docs/review-the-java-stack-trace/"
         }, 
+        "Roles and Privileges": {
+            "breadcrumbs": [
+                {
+                    "title": "Securing Drill", 
+                    "url": "/docs/securing-drill/"
+                }, 
+                {
+                    "title": "Configure Drill", 
+                    "url": "/docs/configure-drill/"
+                }
+            ], 
+            "children": [], 
+            "next_title": "Configuring User Impersonation", 
+            "next_url": "/docs/configuring-user-impersonation/", 
+            "parent": "Securing Drill", 
+            "previous_title": "Secure Communication Paths", 
+            "previous_url": "/docs/secure-communication-paths/", 
+            "relative_path": "_docs/configure-drill/securing-drill/030-roles-privileges.md", 
+            "title": "Roles and Privileges", 
+            "url": "/docs/roles-and-privileges/"
+        }, 
         "S3 Storage Plugin": {
             "breadcrumbs": [
                 {
@@ -11363,60 +11674,330 @@
             "title": "Sample Datasets", 
             "url": "/docs/sample-datasets/"
         }, 
-        "Selecting Flat Data": {
+        "Secure Communication Paths": {
             "breadcrumbs": [
                 {
-                    "title": "Querying Complex Data", 
-                    "url": "/docs/querying-complex-data/"
+                    "title": "Securing Drill", 
+                    "url": "/docs/securing-drill/"
                 }, 
                 {
-                    "title": "Query Data", 
-                    "url": "/docs/query-data/"
+                    "title": "Configure Drill", 
+                    "url": "/docs/configure-drill/"
                 }
             ], 
             "children": [], 
-            "next_title": "Using SQL Functions, Clauses, and Joins", 
-            "next_url": "/docs/using-sql-functions-clauses-and-joins/", 
-            "parent": "Querying Complex Data", 
-            "previous_title": "Sample Data: Donuts", 
-            "previous_url": "/docs/sample-data-donuts/", 
-            "relative_path": "_docs/query-data/querying-complex-data/020-selecting-flat-data.md", 
-            "title": "Selecting Flat Data", 
-            "url": "/docs/selecting-flat-data/"
+            "next_title": "Roles and Privileges", 
+            "next_url": "/docs/roles-and-privileges/", 
+            "parent": "Securing Drill", 
+            "previous_title": "Securing Drill Introduction", 
+            "previous_url": "/docs/securing-drill-introduction/", 
+            "relative_path": "_docs/configure-drill/securing-drill/020-secure-communication-paths.md", 
+            "title": "Secure Communication Paths", 
+            "url": "/docs/secure-communication-paths/"
         }, 
-        "Selecting Multiple Columns Within Nested Data": {
+        "Securing Drill": {
             "breadcrumbs": [
                 {
-                    "title": "Querying Complex Data", 
-                    "url": "/docs/querying-complex-data/"
-                }, 
-                {
-                    "title": "Query Data", 
-                    "url": "/docs/query-data/"
+                    "title": "Configure Drill", 
+                    "url": "/docs/configure-drill/"
                 }
             ], 
-            "children": [], 
-            "next_title": "Querying Hive", 
-            "next_url": "/docs/querying-hive/", 
-            "parent": "Querying Complex Data", 
-            "previous_title": "Selecting Nested Data for a Column", 
-            "previous_url": "/docs/selecting-nested-data-for-a-column/", 
-            "relative_path": "_docs/query-data/querying-complex-data/050-selecting-multiple-columns-within-nested-data.md", 
-            "title": "Selecting Multiple Columns Within Nested Data", 
-            "url": "/docs/selecting-multiple-columns-within-nested-data/"
-        }, 
-        "Selecting Nested Data for a Column": {
-            "breadcrumbs": [
-                {
-                    "title": "Querying Complex Data", 
-                    "url": "/docs/querying-complex-data/"
-                }, 
+            "children": [
                 {
-                    "title": "Query Data", 
-                    "url": "/docs/query-data/"
-                }
-            ], 
-            "children": [], 
+                    "breadcrumbs": [
+                        {
+                            "title": "Securing Drill", 
+                            "url": "/docs/securing-drill/"
+                        }, 
+                        {
+                            "title": "Configure Drill", 
+                            "url": "/docs/configure-drill/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Secure Communication Paths", 
+                    "next_url": "/docs/secure-communication-paths/", 
+                    "parent": "Securing Drill", 
+                    "previous_title": "Securing Drill", 
+                    "previous_url": "/docs/securing-drill/", 
+                    "relative_path": "_docs/configure-drill/securing-drill/010-securing-drill-introduction.md", 
+                    "title": "Securing Drill Introduction", 
+                    "url": "/docs/securing-drill-introduction/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Securing Drill", 
+                            "url": "/docs/securing-drill/"
+                        }, 
+                        {
+                            "title": "Configure Drill", 
+                            "url": "/docs/configure-drill/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Roles and Privileges", 
+                    "next_url": "/docs/roles-and-privileges/", 
+                    "parent": "Securing Drill", 
+                    "previous_title": "Securing Drill Introduction", 
+                    "previous_url": "/docs/securing-drill-introduction/", 
+                    "relative_path": "_docs/configure-drill/securing-drill/020-secure-communication-paths.md", 
+                    "title": "Secure Communication Paths", 
+                    "url": "/docs/secure-communication-paths/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Securing Drill", 
+                            "url": "/docs/securing-drill/"
+                        }, 
+                        {
+                            "title": "Configure Drill", 
+                            "url": "/docs/configure-drill/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Configuring User Impersonation", 
+                    "next_url": "/docs/configuring-user-impersonation/", 
+                    "parent": "Securing Drill", 
+                    "previous_title": "Secure Communication Paths", 
+                    "previous_url": "/docs/secure-communication-paths/", 
+                    "relative_path": "_docs/configure-drill/securing-drill/030-roles-privileges.md", 
+                    "title": "Roles and Privileges", 
+                    "url": "/docs/roles-and-privileges/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Securing Drill", 
+                            "url": "/docs/securing-drill/"
+                        }, 
+                        {
+                            "title": "Configure Drill", 
+                            "url": "/docs/configure-drill/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Configuring Inbound Impersonation", 
+                    "next_url": "/docs/configuring-inbound-impersonation/", 
+                    "parent": "Securing Drill", 
+                    "previous_title": "Roles and Privileges", 
+                    "previous_url": "/docs/roles-and-privileges/", 
+                    "relative_path": "_docs/configure-drill/securing-drill/040-configuring-user-impersonation.md", 
+                    "title": "Configuring User Impersonation", 
+                    "url": "/docs/configuring-user-impersonation/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Securing Drill", 
+                            "url": "/docs/securing-drill/"
+                        }, 
+                        {
+                            "title": "Configure Drill", 
+                            "url": "/docs/configure-drill/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Configuring User Impersonation with Hive Authorization", 
+                    "next_url": "/docs/configuring-user-impersonation-with-hive-authorization/", 
+                    "parent": "Securing Drill", 
+                    "previous_title": "Configuring User Impersonation", 
+                    "previous_url": "/docs/configuring-user-impersonation/", 
+                    "relative_path": "_docs/configure-drill/securing-drill/050-configure-inbound-impersonation.md", 
+                    "title": "Configuring Inbound Impersonation", 
+                    "url": "/docs/configuring-inbound-impersonation/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Securing Drill", 
+                            "url": "/docs/securing-drill/"
+                        }, 
+                        {
+                            "title": "Configure Drill", 
+                            "url": "/docs/configure-drill/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Configuring User Authentication", 
+                    "next_url": "/docs/configuring-user-authentication/", 
+                    "parent": "Securing Drill", 
+                    "previous_title": "Configuring Inbound Impersonation", 
+                    "previous_url": "/docs/configuring-inbound-impersonation/", 
+                    "relative_path": "_docs/configure-drill/securing-drill/060-configuring-user-impersonation-with-hive-authorization.md", 
+                    "title": "Configuring User Impersonation with Hive Authorization", 
+                    "url": "/docs/configuring-user-impersonation-with-hive-authorization/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Securing Drill", 
+                            "url": "/docs/securing-drill/"
+                        }, 
+                        {
+                            "title": "Configure Drill", 
+                            "url": "/docs/configure-drill/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Configuring Plain Authentication", 
+                    "next_url": "/docs/configuring-plain-authentication/", 
+                    "parent": "Securing Drill", 
+                    "previous_title": "Configuring User Impersonation with Hive Authorization", 
+                    "previous_url": "/docs/configuring-user-impersonation-with-hive-authorization/", 
+                    "relative_path": "_docs/configure-drill/securing-drill/070-configuring-user-authentication.md", 
+                    "title": "Configuring User Authentication", 
+                    "url": "/docs/configuring-user-authentication/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Securing Drill", 
+                            "url": "/docs/securing-drill/"
+                        }, 
+                        {
+                            "title": "Configure Drill", 
+                            "url": "/docs/configure-drill/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Configuring Kerberos Authentication", 
+                    "next_url": "/docs/configuring-kerberos-authentication/", 
+                    "parent": "Securing Drill", 
+                    "previous_title": "Configuring User Authentication", 
+                    "previous_url": "/docs/configuring-user-authentication/", 
+                    "relative_path": "_docs/configure-drill/securing-drill/080-configuring-plain-authentication.md", 
+                    "title": "Configuring Plain Authentication", 
+                    "url": "/docs/configuring-plain-authentication/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Securing Drill", 
+                            "url": "/docs/securing-drill/"
+                        }, 
+                        {
+                            "title": "Configure Drill", 
+                            "url": "/docs/configure-drill/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Configuring Web Console and REST API Security", 
+                    "next_url": "/docs/configuring-web-console-and-rest-api-security/", 
+                    "parent": "Securing Drill", 
+                    "previous_title": "Configuring Plain Authentication", 
+                    "previous_url": "/docs/configuring-plain-authentication/", 
+                    "relative_path": "_docs/configure-drill/securing-drill/090-configuring-kerberos-auththentication.md", 
+                    "title": "Configuring Kerberos Authentication", 
+                    "url": "/docs/configuring-kerberos-authentication/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Securing Drill", 
+                            "url": "/docs/securing-drill/"
+                        }, 
+                        {
+                            "title": "Configure Drill", 
+                            "url": "/docs/configure-drill/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Configuring a Multitenant Cluster", 
+                    "next_url": "/docs/configuring-a-multitenant-cluster/", 
+                    "parent": "Securing Drill", 
+                    "previous_title": "Configuring Kerberos Authentication", 
+                    "previous_url": "/docs/configuring-kerberos-authentication/", 
+                    "relative_path": "_docs/configure-drill/securing-drill/091-configuring-web-ui-and-rest-api-security.md", 
+                    "title": "Configuring Web Console and REST API Security", 
+                    "url": "/docs/configuring-web-console-and-rest-api-security/"
+                }
+            ], 
+            "next_title": "Securing Drill Introduction", 
+            "next_url": "/docs/securing-drill-introduction/", 
+            "parent": "Configure Drill", 
+            "previous_title": "Configuring Drill Memory", 
+            "previous_url": "/docs/configuring-drill-memory/", 
+            "relative_path": "_docs/configure-drill/031-securing-drill.md", 
+            "title": "Securing Drill", 
+            "url": "/docs/securing-drill/"
+        }, 
+        "Securing Drill Introduction": {
+            "breadcrumbs": [
+                {
+                    "title": "Securing Drill", 
+                    "url": "/docs/securing-drill/"
+                }, 
+                {
+                    "title": "Configure Drill", 
+                    "url": "/docs/configure-drill/"
+                }
+            ], 
+            "children": [], 
+            "next_title": "Secure Communication Paths", 
+            "next_url": "/docs/secure-communication-paths/", 
+            "parent": "Securing Drill", 
+            "previous_title": "Securing Drill", 
+            "previous_url": "/docs/securing-drill/", 
+            "relative_path": "_docs/configure-drill/securing-drill/010-securing-drill-introduction.md", 
+            "title": "Securing Drill Introduction", 
+            "url": "/docs/securing-drill-introduction/"
+        }, 
+        "Selecting Flat Data": {
+            "breadcrumbs": [
+                {
+                    "title": "Querying Complex Data", 
+                    "url": "/docs/querying-complex-data/"
+                }, 
+                {
+                    "title": "Query Data", 
+                    "url": "/docs/query-data/"
+                }
+            ], 
+            "children": [], 
+            "next_title": "Using SQL Functions, Clauses, and Joins", 
+            "next_url": "/docs/using-sql-functions-clauses-and-joins/", 
+            "parent": "Querying Complex Data", 
+            "previous_title": "Sample Data: Donuts", 
+            "previous_url": "/docs/sample-data-donuts/", 
+            "relative_path": "_docs/query-data/querying-complex-data/020-selecting-flat-data.md", 
+            "title": "Selecting Flat Data", 
+            "url": "/docs/selecting-flat-data/"
+        }, 
+        "Selecting Multiple Columns Within Nested Data": {
+            "breadcrumbs": [
+                {
+                    "title": "Querying Complex Data", 
+                    "url": "/docs/querying-complex-data/"
+                }, 
+                {
+                    "title": "Query Data", 
+                    "url": "/docs/query-data/"
+                }
+            ], 
+            "children": [], 
+            "next_title": "Querying Hive", 
+            "next_url": "/docs/querying-hive/", 
+            "parent": "Querying Complex Data", 
+            "previous_title": "Selecting Nested Data for a Column", 
+            "previous_url": "/docs/selecting-nested-data-for-a-column/", 
+            "relative_path": "_docs/query-data/querying-complex-data/050-selecting-multiple-columns-within-nested-data.md", 
+            "title": "Selecting Multiple Columns Within Nested Data", 
+            "url": "/docs/selecting-multiple-columns-within-nested-data/"
+        }, 
+        "Selecting Nested Data for a Column": {
+            "breadcrumbs": [
+                {
+                    "title": "Querying Complex Data", 
+                    "url": "/docs/querying-complex-data/"
+                }, 
+                {
+                    "title": "Query Data", 
+                    "url": "/docs/query-data/"
+                }
+            ], 
+            "children": [], 
             "next_title": "Selecting Multiple Columns Within Nested Data", 
             "next_url": "/docs/selecting-multiple-columns-within-nested-data/", 
             "parent": "Querying Complex Data", 
@@ -13585,8 +14166,8 @@
                         }
                     ], 
                     "children": [], 
-                    "next_title": "Configuring a Multitenant Cluster", 
-                    "next_url": "/docs/configuring-a-multitenant-cluster/", 
+                    "next_title": "Securing Drill", 
+                    "next_url": "/docs/securing-drill/", 
                     "parent": "Configure Drill", 
                     "previous_title": "Configure Drill Introduction", 
                     "previous_url": "/docs/configure-drill-introduction/", 
@@ -13605,6 +14186,234 @@
                         {
                             "breadcrumbs": [
                                 {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Secure Communication Paths", 
+                            "next_url": "/docs/secure-communication-paths/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Securing Drill", 
+                            "previous_url": "/docs/securing-drill/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/010-securing-drill-introduction.md", 
+                            "title": "Securing Drill Introduction", 
+                            "url": "/docs/securing-drill-introduction/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Roles and Privileges", 
+                            "next_url": "/docs/roles-and-privileges/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Securing Drill Introduction", 
+                            "previous_url": "/docs/securing-drill-introduction/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/020-secure-communication-paths.md", 
+                            "title": "Secure Communication Paths", 
+                            "url": "/docs/secure-communication-paths/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring User Impersonation", 
+                            "next_url": "/docs/configuring-user-impersonation/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Secure Communication Paths", 
+                            "previous_url": "/docs/secure-communication-paths/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/030-roles-privileges.md", 
+                            "title": "Roles and Privileges", 
+                            "url": "/docs/roles-and-privileges/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring Inbound Impersonation", 
+                            "next_url": "/docs/configuring-inbound-impersonation/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Roles and Privileges", 
+                            "previous_url": "/docs/roles-and-privileges/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/040-configuring-user-impersonation.md", 
+                            "title": "Configuring User Impersonation", 
+                            "url": "/docs/configuring-user-impersonation/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring User Impersonation with Hive Authorization", 
+                            "next_url": "/docs/configuring-user-impersonation-with-hive-authorization/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Configuring User Impersonation", 
+                            "previous_url": "/docs/configuring-user-impersonation/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/050-configure-inbound-impersonation.md", 
+                            "title": "Configuring Inbound Impersonation", 
+                            "url": "/docs/configuring-inbound-impersonation/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring User Authentication", 
+                            "next_url": "/docs/configuring-user-authentication/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Configuring Inbound Impersonation", 
+                            "previous_url": "/docs/configuring-inbound-impersonation/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/060-configuring-user-impersonation-with-hive-authorization.md", 
+                            "title": "Configuring User Impersonation with Hive Authorization", 
+                            "url": "/docs/configuring-user-impersonation-with-hive-authorization/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring Plain Authentication", 
+                            "next_url": "/docs/configuring-plain-authentication/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Configuring User Impersonation with Hive Authorization", 
+                            "previous_url": "/docs/configuring-user-impersonation-with-hive-authorization/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/070-configuring-user-authentication.md", 
+                            "title": "Configuring User Authentication", 
+                            "url": "/docs/configuring-user-authentication/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring Kerberos Authentication", 
+                            "next_url": "/docs/configuring-kerberos-authentication/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Configuring User Authentication", 
+                            "previous_url": "/docs/configuring-user-authentication/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/080-configuring-plain-authentication.md", 
+                            "title": "Configuring Plain Authentication", 
+                            "url": "/docs/configuring-plain-authentication/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring Web Console and REST API Security", 
+                            "next_url": "/docs/configuring-web-console-and-rest-api-security/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Configuring Plain Authentication", 
+                            "previous_url": "/docs/configuring-plain-authentication/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/090-configuring-kerberos-auththentication.md", 
+                            "title": "Configuring Kerberos Authentication", 
+                            "url": "/docs/configuring-kerberos-authentication/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Securing Drill", 
+                                    "url": "/docs/securing-drill/"
+                                }, 
+                                {
+                                    "title": "Configure Drill", 
+                                    "url": "/docs/configure-drill/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Configuring a Multitenant Cluster", 
+                            "next_url": "/docs/configuring-a-multitenant-cluster/", 
+                            "parent": "Securing Drill", 
+                            "previous_title": "Configuring Kerberos Authentication", 
+                            "previous_url": "/docs/configuring-kerberos-authentication/", 
+                            "relative_path": "_docs/configure-drill/securing-drill/091-configuring-web-ui-and-rest-api-security.md", 
+                            "title": "Configuring Web Console and REST API Security", 
+                            "url": "/docs/configuring-web-console-and-rest-api-security/"
+                        }
+                    ], 
+                    "next_title": "Securing Drill Introduction", 
+                    "next_url": "/docs/securing-drill-introduction/", 
+                    "parent": "Configure Drill", 
+                    "previous_title": "Configuring Drill Memory", 
+                    "previous_url": "/docs/configuring-drill-memory/", 
+                    "relative_path": "_docs/configure-drill/031-securing-drill.md", 
+                    "title": "Securing Drill", 
+                    "url": "/docs/securing-drill/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Configure Drill", 
+                            "url": "/docs/configure-drill/"
+                        }
+                    ], 
+                    "children": [
+                        {
+                            "breadcrumbs": [
+                                {
                                     "title": "Configuring a Multitenant Cluster", 
                                     "url": "/docs/configuring-a-multitenant-cluster/"
                                 }, 
@@ -13669,8 +14478,8 @@
                     "next_title": "Configuring a Multitenant Cluster Introduction", 
                     "next_url": "/docs/configuring-a-multitenant-cluster-introduction/", 
                     "parent": "Configure Drill", 
-                    "previous_title": "Configuring Drill Memory", 
-                    "previous_url": "/docs/configuring-drill-memory/", 
+                    "previous_title": "Configuring Web Console and REST API Security", 
+                    "previous_url": "/docs/configuring-web-console-and-rest-api-security/", 
                     "relative_path": "_docs/configure-drill/040-configuring-a-multitenant-cluster.md", 
                     "title": "Configuring a Multitenant Cluster", 
                     "url": "/docs/configuring-a-multitenant-cluster/"

http://git-wip-us.apache.org/repos/asf/drill/blob/74e0fee7/_docs/configure-drill/070-configuring-user-impersonation.md
----------------------------------------------------------------------
diff --git a/_docs/configure-drill/070-configuring-user-impersonation.md b/_docs/configure-drill/070-configuring-user-impersonation.md
deleted file mode 100644
index efa0949..0000000
--- a/_docs/configure-drill/070-configuring-user-impersonation.md
+++ /dev/null
@@ -1,147 +0,0 @@
----
-title: "Configuring User Impersonation"
-date: 2016-05-05 21:44:32 UTC
-parent: "Configure Drill"
----
-Impersonation allows a service to act on behalf of a client while performing the action requested by the client. By default, user impersonation is disabled in Drill. You can configure user impersonation in the <DRILLINSTALL_HOME>/conf/drill-override.conf file.
- 
-When you enable impersonation, Drill executes client requests as the user logged in to the client. Drill passes the user credentials to the file system, and the file system checks to see if the user has permission to access the data. When you enable authentication, Drill uses the pluggable authentication module (PAM) to authenticate a user’s identity before the user can access the Drillbit process. See User Authentication.
- 
-If impersonation is not configured, Drill executes all of the client requests against the file system as the user that started the Drillbit service on the node. This is typically a privileged user. The file system verifies that the system user has permission to access the data.
-
-
-## Example
-When impersonation is disabled and user Bob issues a query through the SQLLine client, SQLLine passes the query to the connecting Drillbit. The Drillbit executes the query as the system user that started the Drill process on the node. For the purpose of this example, we will assume that the system user has full access to the file system. Drill executes the query and returns the results back to the client.
-![](http://i.imgur.com/4XxQK2I.png)
-
-When impersonation is enabled and user Bob issues a query through the SQLLine client, the Drillbit uses Bob's credentials to access data in the file system. The file system checks to see if Bob has permission to access the data. If so, Drill returns the query results to the client. If Bob does not have permission, Drill returns an error.
-![](http://i.imgur.com/oigWqVg.png)
-
-## Impersonation Support
-The following table lists the clients, storage plugins, and types of queries that you can use with impersonation in Drill:
-
-| Type            | Supported                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Not Supported               |
-|-----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
-| Clients         | SQLLine, ODBC, JDBC                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Drill Web Console, REST API |
-| Storage Plugins | File System, Hive, MapR-DB                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | HBase                       |
-| Queries         | When you enable impersonation, the setting applies to queries on data and metadata. For example, if you issue the SHOW SCHEMAS command, Drill impersonates the user logged into the client to access the requested metadata. If you issue a SELECT query on a workspace, Drill impersonates the user logged in to the client to access the requested data. Drill applies impersonation to queries issued using the following commands: SHOW SCHEMAS, SHOW DATABASES, SHOW TABLES, CTAS, SELECT, CREATE VIEW, DROP VIEW, SHOW FILES. To successfully run the CTAS and CREATE VIEW commands, a user must have write permissions on the directory where the table or view will exist. Running these commands creates artifacts on the file system. |                             |
-
-## Impersonation and Views
-You can use views with impersonation to provide granular access to data and protect sensitive information. When you create a view, Drill stores the view definition in a file and suffixes the file with .drill.view. For example, if you create a view named myview, Drill creates a view file named myview.drill.view and saves it in the current workspace or the workspace specified, such as dfs.views.myview. See [CREATE VIEW]({{site.baseurl}}/docs/create-view) Command.
-
-You can create a view and grant read permissions on the view to give other users access to the data that the view references. When a user queries the view, Drill impersonates the view owner to access the underlying data. If the user tries to access the data directory, Drill returns a permission denied error. A user with read access to a view can create new views from the originating view to further restrict access on data.
-
-### View Permissions
-A user must have write permission on a directory or workspace to create a view, as well as read access on the table(s) and/or view(s) that the view references. When a user creates a view, permission on the view is set to owner by default. Users can query an existing view or create new views from the view if they have read permissions on the view file and the directory or workspace where the view file is stored. 
-
-When users query a view, Drill accesses the underlying data as the user that created the view. If a user does not have permission to access a view, the query fails and Drill returns an error. Only the view owner or a superuser can modify view permissions to change them from owner to group or world. 
- 
-The view owner or a superuser can modify permissions on the view file directly or they can set view permissions at the system or session level prior to creating any views. Any user that alters view permissions must have write access on the directory or workspace in which they are working. See Modifying Permissions on a View File and Modifying SYSTEM|SESSION Level View Permissions. 
-
-### Modifying Permissions on a View File
-
-Only a view owner or a super user can modify permissions on a view file to change them from owner to group or world readable. Before you grant permission to users to access a view, verify that they have access to the directory or workspace in which the view file is stored.
-
-Use the `chmod` and `chown` commands with the appropriate octal code to change permissions on a view file:
-
-    hadoop fs –chmod <octal code> <file_name>
-    hadoop fs –chown <user>:<group> <file_name>
-Example: `hadoop fs –chmod 750 employees.drill.view`
-
-### Modifying SYSTEM|SESSION Level View Permissions
-
-Use the `ALTER SESSION|SYSTEM` command with the `new_view_default_permissions` parameter and the appropriate octal code to set view permissions at the system or session level prior to creating a view.
- 
-    ALTER SESSION SET `new_view_default_permissions` = '<octal_code>';
-    ALTER SYSTEM SET `new_view_default_permissions` = '<octal_code>';
- 
-Example: ``ALTER SESSION SET `new_view_default_permissions` = '777';``
- 
-After you set this parameter, Drill applies the same permissions on each view created during the session or across all sessions if set at the system level.
-
-## Chained Impersonation
-You can configure Drill to allow chained impersonation on views when you enable impersonation in the `drill-override.conf` file. Chained impersonation controls the number of identity transitions that Drill can make when a user queries a view. Each identity transition is equal to one hop.
- 
-An administrator can set the maximum number of hops on views to limit the number of times that Drill can impersonate a different user when other users query a view. The default maximum number of hops is set at 3. When the maximum number of hops is set to 0, Drill does not allow impersonation chaining, and a user can only read data for which they have direct permission to access. An administrator may set the chain length to 0 to protect highly sensitive data. 
- 
-The following example depicts a scenario where the maximum hop number is set to 3, and Drill must impersonate three users to access data when Chad queries a view that Jane created:
-
-![]({{ site.baseurl }}/docs/img/drill_imp_simple.PNG)
-
-In the previous example, Joe created V2 from the view that user Frank created. In the following example, Joe created V3 by joining a view that Frank created with a view that Bob created. 
- 
-![]({{ site.baseurl }}/docs/img/user_hops_joined_view.PNG)  
-
-Although V3 was created by joining two different views, the number of hops remains at 3 because Drill does not read the views at the same time. Drill reads V2 first and then reads V1.  
-
-In the next example, Bob queries V4 which was created by Frank. Frank's view was created from several underlying views. Charlie created V2 by joining Jane's V1 with Kris's V1.2. Kris's V1.2 was created from Amy's V1.1, increasing the complexity of the chaining. Assuming that the hop limit is set at 4, this scenario exceeds the limit.  
-
-![]({{ site.baseurl }}/docs/img/user_hops_four.PNG)  
-
-When Bob queries Franks’s view, Drill returns an error stating that the query cannot complete because the number of hops required to access the data exceeds the maximum hop setting of 4.
-
-If users encounter this error, the administrator can increase the maximum hop setting to accommodate users running queries on views.
-
-### Configuring Impersonation and Chaining
-Chaining is a system-wide setting that applies to all views. Currently, Drill does not provide an option to  allow different chain lengths for different views.
-
-Complete the following steps on each Drillbit node to enable user impersonation, and set the maximum number of chained user hops that Drill allows:
-
-1. Navigate to `<drill_installation_directory>/conf/` and edit `drill-override.conf`.
-2. Under `drill.exec`, add the following:
-
-          drill.exec.impersonation: {
-                enabled: true,
-                 max_chained_user_hops: 3
-          }
-
-       Alternatively, you can nest impersonation within the `drill.exec` block, as shown in the following example: 
-
-              drill.exec: {
-                   cluster-id: "cluster_name",
-                   zk.connect: "<hostname>:<port>,<hostname>:<port>,<hostname>:<port>",
-                   sys.store.provider.zk.blobroot: "hdfs://",
-                   impersonation: {
-                     enabled: true,
-                     max_chained_user_hops: 3
-                   }
-                 }
-
- 
-3. Verify that enabled is set to `‘true’`.
-4. Set the maximum number of chained user hops that you want Drill to allow.
-5. Restart the Drillbit process on each Drill node.
-
-         <DRILLINSTALL_HOME>/bin/drillbit.sh restart
-
-## Impersonation and Chaining Example
-Frank is a senior HR manager at a company. Frank has access to all of the employee data because he is a member of the hr group. Frank created a table named “employees” in his home directory to store the employee data he uses. Only Frank has access to this table.
- 
-drwx------      frank:hr     /user/frank/employees
- 
-Each record in the employees table consists of the following information:
-emp_id, emp_name, emp_ssn, emp_salary, emp_addr, emp_phone, emp_mgr
- 
-Frank needs to share a subset of this information with Joe who is an HR manager reporting to Frank. To share the employee data, Frank creates a view called emp_mgr_view that accesses a subset of the data. The emp_mgr_view filters out sensitive employee information, such as the employee social security numbers, and only shows data for the employees that report directly to Joe. Frank and Joe both belong to the mgr group. Managers have read permission on Frank’s directory.
- 
-rwxr-----     frank:mgr   /user/frank/emp_mgr_view.drill.view
- 
-The emp_mgr_view.drill.view file contains the following view definition:
-
-(view definition: SELECT emp_id, emp_name, emp_salary, emp_addr, emp_phone FROM \`/user/frank/employee\` WHERE emp_mgr = 'Joe')
- 
-When Joe issues SELECT * FROM emp_mgr_view, Drill impersonates Frank when accessing the employee data, and the query returns the data that Joe has permission to see based on the view definition. The query results do not include any sensitive data because the view protects that information. If Joe tries to query the employees table directly, Drill returns an error or null values.
- 
-Because Joe has read permissions on the emp_mgr_view, he can create new views from it to give other users access to the employee data even though he does not own the employees table and cannot access the employees table directly.
- 
-Joe needs to share employee contact data with his direct reports, so he creates a special view called emp_team_view to share the employee contact information with his team. Joe creates the view and writes it to his home directory. Joe and his reports belong to a group named joeteam. The joeteam group has read permissions on Joe’s home directory so they can query the view and create new views from it.
- 
-rwxr-----     joe:joeteam   /user/joe/emp_team_view.drill.view
- 
-The emp_team_view.drill.view file contains the following view definition:
- 
-(view definition: SELECT emp_id, emp_name, emp_phone FROM \`/user/frank/emp_mgr_view.drill\`);
- 
-When anyone on Joe’s team issues SELECT * FROM emp_team_view, Drill impersonates Joe to access the emp_team_view and then impersonates Frank to access the emp_mgr_view and the employee data. Drill returns the data that Joe’s team has can see based on the view definition. If anyone on Joe’s team tries to query the emp_mgr_view or employees table directly, Drill returns an error or null values.
- 
-Because Joe’s team has read permissions on the emp_team_view, they can create new views from it and write the views to any directory for which they have write access. Creating views can continue until Drill reaches the maximum number of impersonation hops.

http://git-wip-us.apache.org/repos/asf/drill/blob/74e0fee7/_docs/configure-drill/071-configure-inbound-impersonation.md
----------------------------------------------------------------------
diff --git a/_docs/configure-drill/071-configure-inbound-impersonation.md b/_docs/configure-drill/071-configure-inbound-impersonation.md
deleted file mode 100644
index 01b5efb..0000000
--- a/_docs/configure-drill/071-configure-inbound-impersonation.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: "Configuring Inbound Impersonation"
-date: 2016-03-16 19:05:49 UTC
-parent: "Configure Drill"
----  
-
-Drill supports [user impersonation]({{site.baseurl}}/docs/configuring-user-impersonation/)  where queries run as the user that created a connection. However, this user is not necessarily the end user who submits the queries. For example, in a classic three-tier architecture, the end user interacts with Tableau Desktop, which communicates with a Tableau Server, which in turn communicates with a Drill cluster. In this scenario, a proxy user creates a connection, and the queries are submitted to Drill by the proxy user on behalf of the end user, and not by the end user directly. In this particular case, the query needs to be run as the end user.  
-
-As of Drill 1.6, an administrator can define inbound impersonation policies to impersonate the end user. The proxy user needs to be authorized to submit queries on behalf of the specified end user. Otherwise, any user can impersonate another user. Then, the query runs as the end user, and data authorization is based on this user’s access permissions. Note that without [authentication]({{site.baseurl}}/docs/configuring-user-authentication/) enabled in both communication channels, a user can impersonate any other user.
-
-Drill trusts proxy users to provide the correct end user identity information. Drill does not authenticate the end user. The proxy user (application) is responsible for end user authentication, which is usually enabled.
-
-![]({{ site.baseurl }}/docs/img/inboundImpersonation.PNG)  
-
-This image shows how identity is propagated through various layers (with authentication enabled). The flow on the left is Drill with user impersonation enabled, and the flow on the right is Drill with user impersonation and inbound impersonation enabled. `t:euser` is a property on the connection (`u` is `username`, `p`is `password`, `t` is `impersonation_target`).  
-
-
-##Configuring Inbound Impersonation
-You must be an administrator to configure inbound impersonation. You can define administrative users through the `security.admin.user_groups` and `security.admin.users` options. See [Configuration Options]({{site.baseurl}}/docs/configuration-options-introduction/#system-options). 
-
-[User impersonation]({{site.baseurl}}/docs/configuring-user-impersonation/) must be enabled before you can configure inbound impersonation.
-
-Complete the following steps to enable inbound impersonation:  
-
-1. In `drill-override.conf`, set user impersonation to true:
-  
-              {
-              drill.exec.impersonation.enabled: true,
-              ...
-              }
-
-2. Define inbound impersonation policies. For example, the following ALTER SYSTEM statement authorizes:
-       * `puser1` to impersonate any user (use * as a wildcard character)
-       * `puser2` to impersonate `euser1` and all users in `egroup2` 
-       * all users in `pgroup3` to impersonate all users in `egroup3`  
-      
-              ALTER SYSTEM SET `exec.impersonation.inbound_policies`=‘[
-              { proxy_principals : { users: [“puser1”] },
-                target_principals: { users: [“*”] } },
-              { proxy_principals : { users: [“puser2”] }, 
-                target_principals: { users: [“euser1”], groups :  [“egroup2”] } },
-              { proxy_principals : { groups: [“pgroup3”] },
-                target_principals: { groups: [“egroup3”] } } ]’;  
-Policy format:
-
-              { proxy_principals : { users : [“...”, “...”], groups : [“...”, “...”] },
-              target_principals: { users : [“...”, “...”], groups : [“...”, “...”] } }
-
-3. Ensure that the proxy user (application) passes the username of the impersonation target user to Drill when creating a connection through the `impersonation_target` connection property. For example, through sqlline:  
-
-        bin/sqlline –u “jdbc:drill:schema=dfs;zk=myclusterzk;impersonation_target=euser1” -n puser1 -p ppass1  
-
-In this example, `puser1` is the user submitting the queries. This user is authenticated. Since this user is authorized to impersonate any user, queries through the established connection are run as `euser1`.


Mime
View raw message