Ao ativar as
políticas de segurança do pod,
você garante que os namespaces comprometidos (exceto istio-system
) não afetem
a segurança de outros namespaces que compartilham os mesmos nós. Os
arquivos de recursos PodSecurityPolicy
de amostra que funcionam com o Mesh CA são
fornecidos com o Anthos Service Mesh. É possível modificar esses arquivos conforme necessário. A seguir,
primeiro aplique as políticas de segurança do pod e, em seguida, ative a
política de segurança do pod
para o cluster do GKE.
Como ativar as políticas de segurança de pods
Verifique se o sistema já tem políticas de segurança de pods definidas:
kubectl get psp --all-namespaces
Se o comando retornar uma lista de políticas existentes, isso significará que o sistema já tem políticas de segurança de pods aplicadas. Recomendamos que os arquivos YAML
PodSecurityPolicy
estejam disponíveis caso seja necessário fazer a rollback. Você precisa adicionar a seção a seguir à partespec
em cada uma das políticas de segurança do pod existentes, exceto aquelas que começam comgce
.allowedHostPaths: - pathPrefix: "/var/run/sds" readOnly: true allowedCapabilities: - NET_ADMIN - NET_RAW
Essas linhas permitem a leitura do caminho do host
/var/run/sds
e permitem a injeção automática do arquivo secundário.Use
kubectl
para editar e aplicar as políticas de segurança de pods no Kubernetes:kubectl edit psp YOUR_EXISTING_POD_SECURITY_POLICY
Se o comando retornar
No resources found
, você não tem uma política de segurança de pod definida. Ainda é necessário modificar o arquivosamples/security/psp/all-pods-psp.yaml
para garantir que ele não entre em conflito com as cargas de trabalho atuais. Para mais detalhes, consulte o guia de política de segurança de pods. Depois de modificar o arquivo, aplique-o:kubectl apply -f "samples/security/psp/all-pods-psp.yaml"
Aplique a política de segurança do pod para proteger o serviço de descoberta secreta (SDS, na sigla em inglês):
kubectl apply -f "samples/security/psp/citadel-agent-psp.yaml"
Isso dá ao agente do Citadel (também conhecido como o agente de nó) o privilégio para criar o caminho UDS
/var/run/sds
na VM do host.Execute o seguinte comando para ativar a política de segurança do pod:
gcloud beta container clusters update ${CLUSTER_NAME} \ --enable-pod-security-policy
A ativação das políticas de segurança do pod pode levar vários minutos. Durante esse processo, as cargas de trabalho atuais não poderão se conectar ao mestre do Kubernetes. Aguarde o mestre do Kubernetes ficar ativo. Verifique o status do cluster no console do Google Cloud na página de clusters do Kubernetes.
Para mais informações, consulte Como usar políticas de segurança de pods.
Como verificar as políticas de segurança do pod
Se você tiver cargas de trabalho atuais, recomendamos que verifique se elas podem ser implantadas com as novas políticas de segurança de pods.
Escolha as implantações que você quer verificar e aumente as réplicas delas. Por exemplo, se o serviço especificado tiver uma réplica, aumente-a em 1:
kubectl scale deployment YOUR_DEPLOYMENT --replicas=2 -n YOUR_NAMESPACE
Verifique se a implantação é escalonada:
kubectl get deploy
Verifique se a nova carga de trabalho pode ser implantada. Isso significa que a política de segurança do pod não afeta a implantação de uma carga de trabalho do serviço.
kubectl get deployment YOUR_SERVICE -n YOUR_NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE YOUR_SERVICE 2/2 2 2 ...
Reduza as réplicas do serviço:
kubectl scale deployment YOUR_SERVICE --replicas=1 -n YOUR_NAMESPACE
Se as cargas de trabalho não forem implantadas com êxito, será possível desativar temporariamente a política de segurança do pod ao corrigir os arquivos YAML:
gcloud beta container clusters update ${CLUSTER_NAME} \ --no-enable-pod-security-policy