[
https://issues.apache.org/jira/browse/HDDS-9669?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ivan Andika updated HDDS-9669:
------------------------------
Description:
In `OzoneAclUtils` we have this volume check access when the object to access
is not volume
{code:java}
//OzoneNativeAuthorizer differs from Ranger Authorizer as Ranger requires
// only READ access on parent level access. OzoneNativeAuthorizer has
// different parent level access based on the child level access type
IAccessAuthorizer.ACLType parentAclRight = IAccessAuthorizer.ACLType.READ;
if (omMetadataReader.isNativeAuthorizerEnabled() && resType == BUCKET) {
parentAclRight = getParentNativeAcl(aclType, resType);
}
omMetadataReader.checkAcls(OzoneObj.ResourceType.VOLUME, storeType,
parentAclRight, vol, bucket, key, user,
remoteAddress, hostName, true,
volOwner); {code}
>From my understanding, this volume check should be done in the respective
>authorizers (either OzoneNativeAuthorizer or RangerOzoneAuthorizer) and should
>not leak to the general ACL flow (e.g. getParentNativeAcl should be moved the
>OzoneNativeAuthorizer instead).
This patch will remove this check and refactor getNativeAcl to the
OzoneNativeAuthorizer.
was:
In `OzoneAclUtils` we have this volume check access when the object to access
is not volume
{code:java}
//OzoneNativeAuthorizer differs from Ranger Authorizer as Ranger requires
// only READ access on parent level access. OzoneNativeAuthorizer has
// different parent level access based on the child level access type
IAccessAuthorizer.ACLType parentAclRight = IAccessAuthorizer.ACLType.READ;
if (omMetadataReader.isNativeAuthorizerEnabled() && resType == BUCKET) {
parentAclRight = getParentNativeAcl(aclType, resType);
}
omMetadataReader.checkAcls(OzoneObj.ResourceType.VOLUME, storeType,
parentAclRight, vol, bucket, key, user,
remoteAddress, hostName, true,
volOwner); {code}
>From my understanding, this volume check should be done in the respective
>authorizers (either OzoneNativeAuthorizer or RangerOzoneAuthorizer) and should
>not leake to the general ACL flow (e.g. getParentNativeAcl should be moved the
>OzoneNativeAuthorizer instead).
This patch will remove this check and refactor getNativeAcl to the
OzoneNativeAuthorizer.
> Remove unnecessary parent volume check access in OzoneAclUtils
> --------------------------------------------------------------
>
> Key: HDDS-9669
> URL: https://issues.apache.org/jira/browse/HDDS-9669
> Project: Apache Ozone
> Issue Type: Improvement
> Reporter: Ivan Andika
> Assignee: Ivan Andika
> Priority: Minor
>
> In `OzoneAclUtils` we have this volume check access when the object to access
> is not volume
> {code:java}
> //OzoneNativeAuthorizer differs from Ranger Authorizer as Ranger
> requires
> // only READ access on parent level access. OzoneNativeAuthorizer has
> // different parent level access based on the child level access type
> IAccessAuthorizer.ACLType parentAclRight =
> IAccessAuthorizer.ACLType.READ;
> if (omMetadataReader.isNativeAuthorizerEnabled() && resType == BUCKET) {
> parentAclRight = getParentNativeAcl(aclType, resType);
> }
> omMetadataReader.checkAcls(OzoneObj.ResourceType.VOLUME, storeType,
> parentAclRight, vol, bucket, key, user,
> remoteAddress, hostName, true,
> volOwner); {code}
> From my understanding, this volume check should be done in the respective
> authorizers (either OzoneNativeAuthorizer or RangerOzoneAuthorizer) and
> should not leak to the general ACL flow (e.g. getParentNativeAcl should be
> moved the OzoneNativeAuthorizer instead).
> This patch will remove this check and refactor getNativeAcl to the
> OzoneNativeAuthorizer.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]