Por que meu pod não é criado com um erro de permissão negada devido à restrição de contexto de segurança (SCC)?
Nuvem privada virtual Infraestrutura clássica
Saiba como resolver erros de permissão negada relacionados a restrições de contexto de segurança (SCC) ao criar ou executar pods.
Um pod do sistema ou outro pod que use uma restrição de contexto de segurança (SCC) tem uma operação que continua sendo tentada novamente, mas falha com um erro permission denied. Por exemplo, você pode fazer login no pod interno
image-registry e tentar executar um comando docker push.
Exemplo de mensagem de erro ao enviar uma imagem para o registro interno.
error: build error: Failed to push image: error copying layers and metadata
O pod pode usar um SCC ou pertencer a um grupo de sistemas que usa um SCC sem as permissões corretas. Você pode ter adicionado um grupo de sistemas a um SCC executando o comando oc adm policy add-scc-to-group <scc> system:<group>.
Se o pod montar um volume, as permissões do pod que são autorizadas pelo SCC poderão não mais permitir que o pod leia ou grave dados no volume.
Por exemplo, o registro interno monta um volume para ler e escrever dados de imagem para uma instância de armazenamento de arquivo. Se o grupo system:authenticated ao qual o registro interno pertence mudar o SCC de restricted para anyuid, o pod será executado com um UID diferente. O UID diferente evita que o pod do registro interno envie por push ou extraia imagens do dispositivo de armazenamento.
Mude as permissões do SCC do pod.
-
Descreva o pod e verifique a restrição de contexto de segurança
openshift.io/scc: <scc>na seção Anotações.oc describe pod -n <project> <pod>Saída de exemplo
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 -
Descreva a restrição de contexto de segurança e marque o usuário e os grupos na seção Acesso.
oc describe scc <scc>Saída de exemplo
NAME: anyuid Priority: <none> Access: Users: <none> Groups: system:authenticated -
Se você não deseja que o usuário ou grupo tenha as permissões do SCC, remova o usuário ou grupo do SCC. Para obter mais informações, revise as SCCs padrão do Red Hat OpenShift e da IBM Cloud que estão configuradas no cluster.
oc adm policy remove-scc-from-group <scc> <(user|group)> -
Inclua o usuário ou grupo no SCC com as permissões apropriadas.
oc adm policy add-scc-to-group <scc> <(user|group)> -
Exclua o pod para que o pod seja replanejado com as novas permissões do SCC.
oc delete pod -n <project> <pod>