[ 
https://issues.apache.org/jira/browse/YARN-7516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16310344#comment-16310344
 ] 

Eric Badger commented on YARN-7516:
-----------------------------------

{quote}
+  public static final String TRUSTED_DOCKER_REGISTRY = YARN_PREFIX +
+      "docker.trusted.registry";
{quote}
Is there a reason this doesn't use {{DOCKER_CONTAINER_RUNTIME_PREFIX}}?

I'm also wondering if this approach is consistent with what we went through 
with YARN-6623. In that JIRA we moved all sensitive configs into 
container-executor.cfg so that they could only be modified by root. By putting 
this property in yarn-site.xml, it is modifiable if the yarn user is 
compromised. So, if we assume a compromised yarn user, then this property won't 
stop an attacker from running arbitrary untrusted images. I think we should add 
this config to container-executor.cfg so that the property is guaranteed to be 
safe unless the attacker has gained root access. 

[[email protected]], [~vvasudev], [[email protected]], thoughts 
on this?

> Security check for untrusted docker image
> -----------------------------------------
>
>                 Key: YARN-7516
>                 URL: https://issues.apache.org/jira/browse/YARN-7516
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Eric Yang
>            Assignee: Eric Yang
>         Attachments: YARN-7516.001.patch, YARN-7516.002.patch, 
> YARN-7516.003.patch, YARN-7516.004.patch
>
>
> Hadoop YARN Services can support using private docker registry image or 
> docker image from docker hub.  In current implementation, Hadoop security is 
> enforced through username and group membership, and enforce uid:gid 
> consistency in docker container and distributed file system.  There is cloud 
> use case for having ability to run untrusted docker image on the same cluster 
> for testing.  
> The basic requirement for untrusted container is to ensure all kernel and 
> root privileges are dropped, and there is no interaction with distributed 
> file system to avoid contamination.  We can probably enforce detection of 
> untrusted docker image by checking the following:
> # If docker image is from public docker hub repository, the container is 
> automatically flagged as insecure, and disk volume mount are disabled 
> automatically, and drop all kernel capabilities.
> # If docker image is from private repository in docker hub, and there is a 
> white list to allow the private repository, disk volume mount is allowed, 
> kernel capabilities follows the allowed list.
> # If docker image is from private trusted registry with image name like 
> "private.registry.local:5000/centos", and white list allows this private 
> trusted repository.  Disk volume mount is allowed, kernel capabilities 
> follows the allowed list.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to