IBM Cloud Docs
¿Por qué no se crea el pod con un error de permiso denegado debido a una restricción de contexto de seguridad (SCC)?

¿Por qué no se crea el pod con un error de permiso denegado debido a una restricción de contexto de seguridad (SCC)?

Virtual Private Cloud Infraestructura clásica

Un pod del sistema u otro pod que utiliza una restricción de contexto de seguridad (SCC) tiene una operación que se sigue reintentando pero falla con un error de permission denied. Por ejemplo, puede iniciar una sesión en el pod interno image-registry e intentar ejecutar docker push.

Mensaje de error de ejemplo cuando se envía una imagen al registro interno:

error: build error: Failed to push image: error copying layers and metadata

El pod puede utilizar una SCC o puede pertenecer a un grupo de sistemas que utiliza una SCC sin el permiso correcto. Es posible que haya añadido un grupo de sistemas a una SCC ejecutando oc adm policy add-scc-to-group <scc> system:<group>.

Si el pod monta un volumen, es posible que los permisos del pod autorizados por la SCC no permitan que el pod lea o escriba datos en el volumen.

Por ejemplo, el registro interno monta un volumen para leer y escribir datos de imágenes en una instancia de almacenamiento de archivos. Si el grupo system:authenticated al que pertenece el registro interno cambia la SCC de restricted a anyuid, el pod se ejecuta con otro UID. El UID diferente impide que el pod de registro interno envíe o extraiga imágenes del dispositivo de almacenamiento.

Cambie los permisos de SCC del pod.

  1. Describa el pod y compruebe la restricción de contexto de seguridad de openshift.io/scc: <scc> en la sección Anotaciones.

    oc describe pod -n <project> <pod>
    

    Salida de ejemplo

    NAME:               image-registry-1234567
    Namespace:          openshift-image-registry
    Priority:           2000000000
    PriorityClassName:  system-cluster-critical
    Node:               10.xxx.xx.xxx/10.xxx.xx.xxx
    Start Time:         Wed, 19 Feb 2020 15:38:53 -0500
    Labels:             docker-registry=default
    Annotations:        openshift.io/scc: anyuid
    
  2. Describa la restricción de contexto de seguridad y compruebe el usuario y los grupos en la sección Acceso.

    oc describe scc <scc>
    

    Salida de ejemplo

    NAME:                        anyuid
    Priority:                    <none>
    Access:                        
        Users:                    <none>
        Groups:                    system:authenticated
    
  3. Si no desea que el usuario o grupo tenga los permisos de la SCC, elimine el usuario o grupo de la SCC. Para obtener más información, revise las SCC de Red Hat OpenShift y IBM Cloud predeterminadas que se han establecido en el clúster.

    oc adm policy remove-scc-from-group <scc> <(user|group)>
    
  4. Añada el usuario o el grupo a la SCC con los permisos adecuados.

    oc adm policy add-scc-to-group <scc> <(user|group)>
    
  5. Suprima el pod para que el pod se vuelva a programar con los nuevos permisos de SCC.

    oc delete pod -n <project> <pod>