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(ourestricted-v2em 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?
- Nº 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) ourestricted-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.
| 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.
| 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 |
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. |