Ajay Kumar commented on HDFS-13081:

Hi [~xyao], 
{quote}Line 137: It seems the logic to set isHttpPrivileged is dependent on 
whether Ppc Privileged port is bound successfully. If we throw here when 
failing to bind privilege RPC, we won't attempt to bind privilege HTTP. As a 
result, the SASL + privilege HTTP only won't be possible.{quote}
Yes, you are right. Even if RPC port is not secure, DN should be able to bind 
to it for startup.

{quote}Line 1488-1498: this handles the case: Privilege RPC is always true 
With this change we are not throwing exception from 
{{SecureDataNodeStarter#getSecureResources}} if RPC port is non-privileged. So 
{{resources!=null}} doesn't mean privilege RPC anymore.

{quote}Line 1502-1504: this handled the case: SASL + HTTPS{quote}
Yes, this handles the case when HDFS_DATANODE_SECURE_USER and JSVC are not set 
in shell startup scripts.

{quote}If we don't support SASL and privilege HTTP only, we should document it 
I think with this change we support this.

Will update patch for suggested {{SecureMode.md}} and {{SecureDataNodeStarter}} 
Line:177 changes.

> Datanode#checkSecureConfig should check HTTPS and SASL encryption
> -----------------------------------------------------------------
>                 Key: HDFS-13081
>                 URL: https://issues.apache.org/jira/browse/HDFS-13081
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: datanode, security
>    Affects Versions: 3.0.0
>            Reporter: Xiaoyu Yao
>            Assignee: Ajay Kumar
>            Priority: Major
>         Attachments: HDFS-13081.000.patch, HDFS-13081.001.patch, 
> HDFS-13081.002.patch
> Datanode#checkSecureConfig currently check the following to determine if 
> secure datanode is enabled. 
>  # The server has bound to privileged ports for RPC and HTTP via 
> SecureDataNodeStarter.
>  # The configuration enables SASL on DataTransferProtocol and HTTPS (no plain 
> HTTP) for the HTTP server. The SASL handshake guarantees authentication of 
> the RPC server before a client transmits a secret, such as a block access 
> token. Similarly, SSL guarantees authentication of the
>  HTTP server before a client transmits a secret, such as a delegation token.
> For the 2nd case, HTTPS_ONLY means all the traffic between REST client/server 
> will be encrypted. However, the logic to check only if SASL property resolver 
> is configured does not mean server requires an encrypted RPC. 
> This ticket is open to further check and ensure datanode SASL property 
> resolver has a QoP that includes auth-conf(PRIVACY). Note that the SASL QoP 
> (Quality of Protection) negotiation may drop RPC protection level from 
> auth-conf(PRIVACY) to auth-int(integrity) or auth(authentication) only, which 
> should be fine by design.
> cc: [~cnauroth] , [~daryn], [~jnpandey] for additional feedback.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to