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

Ramachandran Krishnan updated RANGER-5709:
------------------------------------------
    Description: 
KMS plugin user {{rangerkms}} can download policies and (after fix) roles for 
{{{}dev_kms{}}}, but tags and userstore secure download still fail with HTTP 
400:
Logged in user is not allowed to read service, name: dev_kms
Root cause is the same across endpoints: for KMS services, some REST handlers 
call {{{}svcStore.getServiceByName(){}}}, which enforces service read access 
(keyadmin / audit keyadmin only) before checking download allowlists such as 
{{{}policy.download.auth.users{}}}, {{{}tag.download.auth.users{}}}, and 
{{{}userstore.download.auth.users{}}}.

Policy download already uses {{getServiceByNameForDP()}} for KMS and works. 
Roles download was fixed the same way (Madhan issue #4 — validated). Tags and 
Userstore still need the same change.
h3. Affected code
||Endpoint||REST class / method||Current lookup||Allowlist config||
|Policy|{{ServiceREST.getSecureServicePoliciesIfUpdated()}}|{{getServiceByNameForDP()}}
 ✅|{{policy.download.auth.users}}|
|Roles|{{RoleREST.getSecureRangerRolesIfUpdated()}}|{{getServiceByName()}}{{ 
❌}}|{{policy.download.auth.users}}|
|Tags|{{TagREST.getSecureServiceTagsIfUpdated()}}|{{getServiceByName()}} 
❌|{{tag.download.auth.users}}|
|Userstore|{{XUserREST.getSecureRangerUserStoreIfUpdated()}}|{{getServiceByName()}}
 ❌|{{userstore.download.auth.users}}|

  was:
KMS plugin user {{rangerkms}} can download policies and (after fix) roles for 
{{{}dev_kms{}}}, but tags and userstore secure download still fail with HTTP 
400:
Logged in user is not allowed to read service, name: dev_kms
Root cause is the same across endpoints: for KMS services, some REST handlers 
call {{{}svcStore.getServiceByName(){}}}, which enforces service read access 
(keyadmin / audit keyadmin only) before checking download allowlists such as 
{{{}policy.download.auth.users{}}}, {{{}tag.download.auth.users{}}}, and 
{{{}userstore.download.auth.users{}}}.

Policy download already uses {{getServiceByNameForDP()}} for KMS and works. 
Roles download was fixed the same way (Madhan issue #4 — validated). Tags and 
Userstore still need the same change.


h3. Affected code
||Endpoint||REST class / method||Current lookup||Allowlist config||
|Policy|{{ServiceREST.getSecureServicePoliciesIfUpdated()}}|{{getServiceByNameForDP()}}
 ✅|{{policy.download.auth.users}}|
|Roles|{{RoleREST.getSecureRangerRolesIfUpdated()}}|{{{}{}}}{{{}getServiceByName(){}}}{{
 ❌}}|{{policy.download.auth.users}}|
|Tags|{{TagREST.getSecureServiceTagsIfUpdated()}}|{{getServiceByName()}} 
❌|{{tag.download.auth.users}}|
|Userstore|{{XUserREST.getSecureRangerUserStoreIfUpdated()}}|{{getServiceByName()}}
 ❌|{{userstore.download.auth.users}}|


> KMS secure download APIs: align Tags and Userstore with Policy/Roles — use 
> getServiceByNameForDP() instead of getServiceByName()
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: RANGER-5709
>                 URL: https://issues.apache.org/jira/browse/RANGER-5709
>             Project: Ranger
>          Issue Type: Task
>          Components: Ranger
>    Affects Versions: 3.0.0, 2.8.0
>            Reporter: Ramachandran Krishnan
>            Assignee: Ramachandran Krishnan
>            Priority: Major
>
> KMS plugin user {{rangerkms}} can download policies and (after fix) roles for 
> {{{}dev_kms{}}}, but tags and userstore secure download still fail with HTTP 
> 400:
> Logged in user is not allowed to read service, name: dev_kms
> Root cause is the same across endpoints: for KMS services, some REST handlers 
> call {{{}svcStore.getServiceByName(){}}}, which enforces service read access 
> (keyadmin / audit keyadmin only) before checking download allowlists such as 
> {{{}policy.download.auth.users{}}}, {{{}tag.download.auth.users{}}}, and 
> {{{}userstore.download.auth.users{}}}.
> Policy download already uses {{getServiceByNameForDP()}} for KMS and works. 
> Roles download was fixed the same way (Madhan issue #4 — validated). Tags and 
> Userstore still need the same change.
> h3. Affected code
> ||Endpoint||REST class / method||Current lookup||Allowlist config||
> |Policy|{{ServiceREST.getSecureServicePoliciesIfUpdated()}}|{{getServiceByNameForDP()}}
>  ✅|{{policy.download.auth.users}}|
> |Roles|{{RoleREST.getSecureRangerRolesIfUpdated()}}|{{getServiceByName()}}{{ 
> ❌}}|{{policy.download.auth.users}}|
> |Tags|{{TagREST.getSecureServiceTagsIfUpdated()}}|{{getServiceByName()}} 
> ❌|{{tag.download.auth.users}}|
> |Userstore|{{XUserREST.getSecureRangerUserStoreIfUpdated()}}|{{getServiceByName()}}
>  ❌|{{userstore.download.auth.users}}|



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to