Configurando restrições de contexto de segurança

Com restrições de contexto de segurança (SCCs), é possível controlar as ações e o acesso que os pods em seu cluster do Red Hat® OpenShift® on IBM Cloud® podem executar. Para obter mais informações sobre SCCs, consulte a Red Hat OpenShift documentação.

Por que eu defino restrições de contexto de segurança?
Como um administrador de cluster, você deseja controlar o que acontece em seu cluster, especialmente as ações que afetam a segurança ou a prontidão do cluster. As restrições de contexto de segurança podem ajudar a controlar quais ações e acesso os pods em seu contêiner têm, como o uso de contêineres privilegiados, namespaces raiz, rede de host e portas, tipos de volume, sistemas de arquivo de host, permissões do Linux como somente leitura ou IDs do grupo e mais.
Também posso adicionar usuários ou grupos do sistema aos SCCs?
Para o acesso do usuário aos seus recursos de cluster, não use SCCs. Em vez disso, consulte Designando o acesso ao cluster para configurar as permissões do IBM Cloud IAM e da infraestrutura.
Para grupos do sistema como o system:authenticated, esses grupos já estão designados a SCCs. É possível ver quais grupos estão designados a um SCC descrevendo o SCC. Se você mudar o SCC ao qual um grupo do sistema está designado, os componentes padrão que pertencerem ao grupo do sistema poderão experimentar erros devido à mudança nas permissões.
Existem algum SCC definido por padrão?
Por padrão, os clusters do Red Hat OpenShift on IBM Cloud incluem um conjunto padrão de SCCs do Red Hat OpenShift. Além disso, os clusters possuem SCCs IBM que se assemelham bastante às políticas de segurança de pods Kubernetes dos clusters da comunidade Kubernetes em IBM Cloud Kubernetes Service. Essas SCCs IBM são incluídas para melhor portabilidade com os pacotes do IBM Cloud Private, como Cloud Paks.
Quais SCCs são aplicados aos meus recursos por padrão?
Se você não especificar um contexto de segurança, a restrição de contexto de segurança Red Hat OpenShift restricted (ou restricted-v2 em 4.11 e mais recente) será aplicada por padrão. Para verificar o contexto de segurança de um pod, descreva o pod e procure a anotação SCC, tal como no exemplo a seguir.
oc describe pod <pod_name>
Name:               <pod_name>
Namespace:          <project_name>
...
Annotations:        openshift.io/...
                    openshift.io/scc=restricted
...
Posso usar as políticas de segurança de pods d Kubernetes, em vez disso?
Kubernetes políticas de segurança pod (PSPs) são originalmente baseadas em Red Hat OpenShift SCCs. No entanto, o Red Hat OpenShift suporta apenas SCCs, não PSPs.

As SCCs padrão do Red Hat OpenShift são mais rígidas do que as PSPs padrão em clusters Kubernetes da comunidade. Como tal, implementações de app que são executadas em clusters Kubernetes da comunidade podem precisar ser modificadas para serem executadas no Red Hat OpenShift.

Customizando restrições de contexto de segurança

Para criar, editar, listar, excluir e gerenciar restrições de contexto de segurança, consulte a Red Hat OpenShift documentação. Também é possível autorizar usuários ou grupos para as restrições de contexto de segurança padrão usando controle de acesso baseado em função como clusterroles, clusterrolebindings, roles e rolebindings. Também é possível usar os subcomandos oc adm policy, como oc adm policy add-scc-to-user, para gerenciar essas configurações A versão oc é a mesma do cluster que está sendo gerenciado.

Diretrizes para designar acesso a SCCs

  • Autorize contas de serviço específicas para o SCC que deve ser usado por pods em execução sob essa conta de serviço
  • Se uma conta de serviço precisar de acesso a vários SCCs, considere criar contas de serviço adicionais para que todos os pods em execução em uma conta de serviço usem o mesmo SCC.
  • Não autorize todos os usuários ou todas as contas de serviço a usarem qualquer SCC diferente do restricted (4.10 e anterior) ou restricted-v2 (4.11 e posterior) SCCs.
  • Não mude a autorização de SCC para contas de serviço nos namespaces do openshift-* Os componentes do Red Hat OpenShift são projetados para executar sob SCCs específicos e podem não operar adequadamente sob um SCC diferente.

Restrições de contexto de segurança padrão do Red Hat OpenShift

Os clusters do Red Hat OpenShift on IBM Cloud vêm com as restrições de contexto de segurança a seguir por padrão.

Não edite as configurações existentes do Red Hat OpenShift ou das SCCs da IBM, exceto para os campos priority, users ou groups.

Padrão Red Hat OpenShift restrições de contexto de segurança
Nome da SCC Descrição
anyuid Nega o acesso semelhante à SCC restricted, mas permite que os usuários sejam executados com qualquer UID e qualquer GID.
hostaccess Permite acesso a todos os namespaces de host, mas ainda requer que os pods sejam executados com um UID e contexto SELinux alocados para o namespace.

Importante: conceda este SCC apenas a pods confiáveis que requerem acesso de host a namespaces, sistemas de arquivos e IDs de processo.

hostmount-anyuid Nega o acesso semelhante à SCC restricted, mas permite que montagens de host e qualquer UID por um pod. Essa SCC é principalmente usada pelo reciclador de volume persistente.

Importante: Conceda este SCC apenas a pods que requerem acesso ao sistema de arquivos host como qualquer UID, incluindo o UID 0.

hostnetwork Permite o uso da rede do host e portas do host, mas ainda requer que os pods sejam executados com um UID e um contexto de SELinux que são alocados para o namespace.

Importante: Conceda este SCC apenas a pods que requerem acesso à rede host.

node-exporter Fornece o acesso apropriado para o exportador do nó Prometheus integrado.
nonroot Nega o acesso semelhante à SCC restricted, mas permite que os usuários sejam executados com qualquer UID não raiz. O usuário ou o manifest do tempo de execução do contêiner deve especificar o UID.
privileged Permite o acesso a todos os recursos privilegiados e do host, além da capacidade de executar como qualquer usuário, qualquer grupo, qualquer configuração de “ fsGroup ” e com qualquer contexto do SELinux.

Importante: Conceda este SCC apenas para a administração de clusters que exija o máximo de acesso possível.

restricted Nega o acesso a todos os recursos do host e requer que os pods sejam executados com um UID e um contexto do SELinux que são alocados para o namespace. Essa é a SCC mais restritiva e é usada por padrão para usuários autenticados.
hostnetwork-v2 Semelhante ao hostnetwork SCC, mas modificado para minimizar diferenças do perfil Pod Security Standards Restricted.
nonroot-v2 Semelhante ao nonroot SCC, mas modificado para minimizar diferenças do perfil Pod Security Standards Restricted.
restricted-v2 Semelhante ao restricted SCC, mas modificado para satisfazer o perfil do Pod Security Standards Restricted

Restrições padrão de contexto de segurança da IBM

Os clusters do Red Hat OpenShift on IBM Cloud vêm com as restrições de contexto de segurança da IBM a seguir por padrão.

Não edite as configurações existentes do Red Hat OpenShift ou das SCCs da IBM, exceto para os campos priority, users ou groups.

Restrições padrão de contexto de segurança da IBM
Nome da SCC Descrição
ibm-anyuid-hostaccess-scc Permite que os pods sejam executados com qualquer UID e GID, qualquer volume e acesso integral ao host.

Importante: Conceda este SCC apenas a pods que requerem acesso total ao host e à rede.

ibm-anyuid-hostpath-scc Permite que os pods sejam executados com qualquer UID e GID e qualquer volume, incluindo o caminho do host.

Importante: Conceda este SCC apenas a pods que requerem acesso a volumes hostPath.

ibm-anyuid-scc Permite que os pods sejam executados com qualquer UID e GID, mas impede o acesso ao host.
ibm-privileged-scc Concede acesso a todos os recursos de host privilegiados e permite que um pod seja executado com qualquer UID e GID e qualquer volume.

Importante: Conceda este SCC apenas à administração de cluster que requer o máximo de acesso possível.

ibm-restricted-scc Nega o acesso a todos os recursos do host e requer que os pods sejam executados com um UID e um contexto do SELinux que são alocados para o namespace. Essa SCC é a SCC IBM mais restritiva.