ChenSammi commented on PR #10742:
URL: https://github.com/apache/ozone/pull/10742#issuecomment-5191637358

   Thanks @spacemonkd raising this proposal.  I see there are three auth 
providers proposed in the design, 
     - KerberosProvider
       Mainly this part is moving the Kerberos authentication and delegation 
creation function from OzoneManager into this new Custos service. The left part 
in OzoneManager is delegation token verification. 
     - S3SecretProvider
       This part plans to move the AWS S3 SigV4 signature HMAC verification 
from OzoneManager to Custos. 
     - OidcProvider
       This part has no corresponding support in Ozone. 
   
      For KerberosProvider, the biggest challenge I can see is how it can be 
integrated within Hadoop ecosystem, since it reinvent a new authentication 
flow.  In the previous company I worked for, we developed a new private 
authentication protocol for Hadoop ecosystem used globally in the company, to 
replace Kerberos, to overcome the performance bottleneck and maintenance effort 
of Kerberos. The protocol itself implementation is quite quick and 
straightforward, after that, we spent close to a year time to integrate the new 
authentication flow with all Hadoop ecosystem services, spark, hive, yarn, 
hbase, presto, etc.  So there is a heavy cost of changing the authentication 
way of Hadoop ecosystem, that's why Ozone chooses using Kerberos in the first 
place, to avoid extra integration effort.  Now if we propose this change in the 
upstream, which means we need to have new commits in each popular compute 
engine to integrate this new flow. Since it's not an industry standard protocol 
or fl
 ow, we must have very strong reasons to persuade compute engine code 
maintainers to accept the change.  
     For S3SecretProvider, move the AWS S3 SigV4 signature HMAC verification 
from OzoneManager to Custos, will reduce the workload of OzoneManager, that's 
the benefit.  But in the meanwhile, there is one new hop introduced in the S3 
path. Previously, it is s3-client -> s3 gateway -> OM, now it is s3-client -> 
s3 gateway -> Custos -> OM.  This one new hop will increase the latency, 
especially when s3-client tries to get small data or just head operations.  
     For OidcProvider, there is no detail, so not clear about what's the 
expected function.  
     
     I also spent some time to explore how the most modern AI training and 
inference accessing data. Gemini said for most AI training and inference today, 
S3-compatible object storage APIs (HTTP/REST under the hood) are the default, 
not the Java/Go native storage clients talking directly to a proprietary 
filesystem protocol. Our UCX POC by @sumitagrawl also shows the S3 API is used 
in cuObject library.  If this is true, then for Ozone, the typical path will be 
"Python/S3 SDK -> S3 Gateway -> OM", since we cannot update S3 SDK to make it 
support the new authentication flow/protocol, it looks to me that support OIDC 
identity(AssumeRoleWithWebIdentity) in OM is the right direction to go, if the 
major gap  which motivated this proposal is to support OIDC JWT,  to enable 
Ozone in AI workload ecosystem. 
   
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to