Rushabh Shah created HBASE-28508: ------------------------------------ Summary: Remove the need for ADMIN permissions for RSRpcServices#execRegionServerService Key: HBASE-28508 URL: https://issues.apache.org/jira/browse/HBASE-28508 Project: HBase Issue Type: Bug Components: acl Reporter: Rushabh Shah Assignee: Rushabh Shah
We have introduced a new regionserver coproc within phoenix and all the permission related tests are failing with the following exception. {noformat} Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.security.AccessDeniedException): org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions for user 'groupUser_N000042' (global, action=ADMIN) at org.apache.hadoop.hbase.security.access.AccessChecker.requireGlobalPermission(AccessChecker.java:152) at org.apache.hadoop.hbase.security.access.AccessChecker.requirePermission(AccessChecker.java:125) at org.apache.hadoop.hbase.regionserver.RSRpcServices.requirePermission(RSRpcServices.java:1318) at org.apache.hadoop.hbase.regionserver.RSRpcServices.rpcPreCheck(RSRpcServices.java:584) at org.apache.hadoop.hbase.regionserver.RSRpcServices.execRegionServerService(RSRpcServices.java:3804) at org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:45016) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:415) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124) at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:102) at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:82) {noformat} This check is failing. [RSRpcServices|https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java#L3815] {code} @Override public CoprocessorServiceResponse execRegionServerService(RpcController controller, CoprocessorServiceRequest request) throws ServiceException { rpcPreCheck("execRegionServerService"); return server.execRegionServerService(controller, request); } private void rpcPreCheck(String requestName) throws ServiceException { try { checkOpen(); requirePermission(requestName, Permission.Action.ADMIN); } catch (IOException ioe) { throw new ServiceException(ioe); } } {code} Why do we need ADMIN permissions to call region server coproc? We don't need ADMIN permissions to call all region co-procs. We require ADMIN permissions to execute some region coprocs (compactionSwitch, clearRegionBlockCache). Can we change the permission to READ? -- This message was sent by Atlassian Jira (v8.20.10#820010)