¿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.
-
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
-
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
-
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)>
-
Añada el usuario o el grupo a la SCC con los permisos adecuados.
oc adm policy add-scc-to-group <scc> <(user|group)>
-
Suprima el pod para que el pod se vuelva a programar con los nuevos permisos de SCC.
oc delete pod -n <project> <pod>