O Policy Controller inclui uma biblioteca predefinida de modelos de restrições que podem ser usados com o conjunto do CIS para auditar a conformidade do seu cluster com a CIS Kubernetes Benchmark v1.7.1. Esta referência é um conjunto de recomendações para configurar o Kubernetes de forma a suportar uma postura de segurança forte.
Esta página contém instruções para aplicar manualmente um pacote de políticas. Em alternativa, pode aplicar pacotes de políticas diretamente.
Esta página destina-se a administradores de TI e operadores que querem garantir que todos os recursos executados na plataforma de nuvem cumprem os requisitos de conformidade da organização, fornecendo e mantendo a automatização para auditar ou aplicar. Para saber mais sobre as funções comuns e as tarefas de exemplo a que fazemos referência no Google Cloud conteúdo, consulte o artigo Funções e tarefas comuns de utilizadores do GKE.
Este conjunto de restrições aborda e aplica políticas nos seguintes domínios:
- RBAC e contas de serviço
- Políticas de segurança de agrupamentos
- Políticas de rede e CNI
- Gestão de segredos
- Extensible Admission Control
- Políticas gerais
Restrições do pacote de políticas do CIS Kubernetes v1.7.1
Nome da restrição | Descrição da restrição | IDs de controlo |
---|---|---|
cis-k8s-v1.7.1-restrict-system-masters-group | Não permite a utilização do grupo system:masters . Não tem efeito durante a auditoria.
|
5.1.7 |
cis-k8s-v1.7.1-restrict-env-var-secrets | Restringe a utilização de segredos como variáveis de ambiente em definições de contentores. | 5.4.1 |
cis-k8s-v1.7.1-restrict-capabilities | Os contentores têm de remover a capacidade NET_RAW e não podem adicionar novamente capacidades.
|
5.2.8, 5.2.9 e 5.2.10 |
cis-k8s-v1.7.1-require-admission-controller | Requer a Pod Security Admission ou um sistema de controlo de políticas externo. | 5.2.1 |
cis-k8s-v1.7.1-require-binauthz | Requer o webhook de admissão de validação da autorização binária. | 5.5.1 |
cis-k8s-v1.7.1-require-namespace-networkpolicy | Requer que cada espaço de nomes definido no cluster tenha um NetworkPolicy .
|
5.3.2 |
cis-k8s-v1.7.1-require-seccomp-default | Requer que os pods tenham o perfil seccomp definido como runtime/default ou docker/default .
|
5.7.2 |
cis-k8s-v1.7.1-require-securitycontext | Requer que os agrupamentos definam securityContext .
|
5.7.3 |
cis-k8s-v1.7.1-restrict-aggregation-controller | Restringe a utilização da função clusterrole-aggregation-controller .
|
5.1.8 |
cis-k8s-v1.7.1-restrict-automountserviceaccounttoken | Restringe a utilização de tokens de contas de serviço. | 5.1.5 e 5.1.6 |
cis-k8s-v1.7.1-restrict-bind-escalate-impersonate | Restringe o acesso à associação, à escalada e à representação no Roles e no ClusterRoles .
|
5.1.8 |
cis-k8s-v1.7.1-restrict-certificatesigningrequests-approval | Restringe o acesso à API de aprovação de certificados de cliente. | 5.1.11 |
cis-k8s-v1.7.1-restrict-cluster-admin-role | Restringe a utilização da função cluster-admin .
|
5.1.1, 5.1.8 |
cis-k8s-v1.7.1-restrict-creation-with-default-serviceaccount | Restringe a criação de recursos através de uma conta de serviço predefinida. Não tem efeito durante a auditoria. | 5.1.5 |
cis-k8s-v1.7.1-restrict-default-namespace | Impede que os pods usem o espaço de nomes predefinido. | 5.7.1, 5.7.4 |
cis-k8s-v1.7.1-restrict-host-namespace | Restringe recipientes com hostPID ou hostIPC definidos como true .
|
5.2.3, 5.2.4 |
cis-k8s-v1.7.1-restrict-host-port | Restringe a execução de contentores com o hostPort configurado.
|
5.2.13 |
cis-k8s-v1.7.1-restrict-hostpath-volumes | Restringe a utilização de volumes hostPath .
|
5.2.12 |
cis-k8s-v1.7.1-restrict-hostnetwork | Impede a execução de contentores com a flag hostNetwork definida como true .
|
5.2.5 |
cis-k8s-v1.7.1-restrict-nodes-proxy | Restringe o acesso ao sub-recurso de proxy de nós em Roles e ClusterRoles .
|
5.1.10 |
cis-k8s-v1.7.1-restrict-persistent-volume | Restringe a criação de persistentvolumes em Roles e ClusterRoles .
|
5.1.9 |
cis-k8s-v1.7.1-restrict-pods-create | Restringe a criação de pods em Roles e ClusterRoles .
|
5.1.4 |
cis-k8s-v1.7.1-restrict-privilege-escalation | Restringe contentores com allowPrivilegeEscalation definido como true .
|
5.2.6 |
cis-k8s-v1.7.1-restrict-privileged-containers | Restringe contentores com securityContext.privileged definido como true .
|
5.2.2 |
cis-k8s-v1.7.1-restrict-role-secrets | Restringe a utilização de segredos em Roles e ClusterRoles .
|
5.1.2 |
cis-k8s-v1.7.1-restrict-role-wildcards | Restringe a utilização de carateres universais em Roles e ClusterRoles .
|
5.1.3 |
cis-k8s-v1.7.1-restrict-root-containers | Impede que os contentores sejam executados como utilizador root. | 5.2.7 |
cis-k8s-v1.7.1-restrict-secrets-of-type-basic-auth | Restringe a utilização de segredos do tipo basic-auth .
|
5.4.2 |
cis-k8s-v1.7.1-restrict-serviceaccounts-token | Restringe a criação de tokens de contas de serviço no Roles e no ClusterRoles .
|
5.1.13 |
cis-k8s-v1.7.1-restrict-webhook-config | Restringe o acesso a objetos de configuração de webhook em Roles e ClusterRoles .
|
5.1.12 |
cis-k8s-v1.7.1-restrict-windows-hostprocess | Restringe a execução de contentores ou pods do Windows hostProcess .
|
5.2.11 |
Antes de começar
- Instale e inicialize a CLI do Google Cloud, que fornece os comandos
gcloud
ekubectl
usados nestas instruções. Se usar a Cloud Shell, a Google Cloud CLI é pré-instalada. - Instale o Policy Controller no seu cluster com a biblioteca predefinida de modelos de restrições. Também tem de ativar o suporte para restrições referenciais, uma vez que este pacote contém restrições referenciais.
Configure para restrições referenciais
Guarde o seguinte manifesto YAML num ficheiro como
policycontroller-config.yaml
. O manifesto configura o Policy Controller para monitorizar tipos específicos de objetos.apiVersion: config.gatekeeper.sh/v1alpha1 kind: Config metadata: name: config namespace: "gatekeeper-system" spec: sync: syncOnly: - group: "admissionregistration.k8s.io" version: "v1" kind: "ValidatingWebhookConfiguration" - group: "networking.k8s.io" version: "v1" kind: "NetworkPolicy"
Aplique o manifesto
policycontroller-config.yaml
:kubectl apply -f policycontroller-config.yaml
Configure o cluster e a carga de trabalho
- A ativação e a configuração da
autorização binária são necessárias no
cis-k8s-v1.7.1-require-binauthz
.
Audite o pacote de políticas CIS Kubernetes v1.7.1
O Policy Controller permite-lhe aplicar políticas ao seu cluster do Kubernetes. Para ajudar a testar as suas cargas de trabalho e a respetiva conformidade no que diz respeito às políticas do CIS Kubernetes v1.7.1 descritas na tabela anterior, pode implementar estas restrições no modo "auditoria" para revelar e resolver violações.
Pode aplicar estas políticas com spec.enforcementAction
definido como dryrun
através do kubectl,
kpt,
ou
Config Sync.
kubectl
(Opcional) Pré-visualize as restrições de políticas com o kubectl:
kubectl kustomize https://github.com/GoogleCloudPlatform/gke-policy-library.git/anthos-bundles/cis-k8s-v1.7.1
Aplique as restrições de políticas com o kubectl:
kubectl apply -k https://github.com/GoogleCloudPlatform/gke-policy-library.git/anthos-bundles/cis-k8s-v1.7.1
O resultado é o seguinte:
k8savoiduseofsystemmastersgroup.constraints.gatekeeper.sh/cis-k8s-v1.7.1-avoid-use-of-system-masters-group created k8sblockcreationwithdefaultserviceaccount.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-creation-with-default-serviceaccount created k8sblockobjectsoftype.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-secrets-of-type-basic-auth created k8snoenvvarsecrets.constraints.gatekeeper.sh/cis-k8s-v1.7.1-no-secrets-as-env-vars created k8spspallowprivilegeescalationcontainer.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-privilege-escalation created k8spspallowedusers.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-root-containers created k8spspcapabilities.constraints.gatekeeper.sh/cis-k8s-v1.7.1-psp-capabilities created k8spsphostfilesystem.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-hostpath-volumes created k8spsphostnamespace.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-host-namespace created k8spsphostnetworkingports.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-host-port created k8spsphostnetworkingports.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-hostnetwork created k8spspprivilegedcontainer.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-privileged-containers created k8spspseccomp.constraints.gatekeeper.sh/cis-k8s-v1.7.1-require-seccomp-default created k8spspwindowshostprocess.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-windows-hostprocess created k8spodsrequiresecuritycontext.constraints.gatekeeper.sh/cis-k8s-v1.7.1-require-securitycontext created k8sprohibitrolewildcardaccess.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-role-wildcards created k8srequireadmissioncontroller.constraints.gatekeeper.sh/cis-k8s-v1.7.1-require-admission-controller created k8srequirebinauthz.constraints.gatekeeper.sh/cis-k8s-v1.7.1-require-binauthz created k8srequirenamespacenetworkpolicies.constraints.gatekeeper.sh/cis-k8s-v1.7.1-require-namespace-networkpolicy created k8srestrictautomountserviceaccounttokens.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-automountserviceaccounttoken created k8srestrictnamespaces.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-default-namespace created k8srestrictrolebindings.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-aggregation-controller created k8srestrictrolebindings.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-cluster-admin-role created k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-bind-escalate-impersonate created k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-certificatesigningrequests-approval created k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-nodes-proxy created k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-persistent-volume created k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-pods-create created k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-role-secrets created k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-serviceaccounts-token created k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-webhook-config created
Confirme se as restrições de políticas foram instaladas e verifique se existem violações no cluster:
kubectl get constraints -l policycontroller.gke.io/bundleName=cis-k8s-v1.7.1
O resultado é semelhante ao seguinte:
NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8spspallowprivilegeescalationcontainer.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-privilege-escalation dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8sblockcreationwithdefaultserviceaccount.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-creation-with-default-serviceaccount dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8sprohibitrolewildcardaccess.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-role-wildcards dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8srequirebinauthz.constraints.gatekeeper.sh/cis-k8s-v1.7.1-require-binauthz dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8srequireadmissioncontroller.constraints.gatekeeper.sh/cis-k8s-v1.7.1-require-admission-controller dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8spspwindowshostprocess.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-windows-hostprocess dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8spsphostnetworkingports.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-host-port dryrun 0 k8spsphostnetworkingports.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-hostnetwork dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8srestrictautomountserviceaccounttokens.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-automountserviceaccounttoken dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8spodsrequiresecuritycontext.constraints.gatekeeper.sh/cis-k8s-v1.7.1-require-securitycontext dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8spsphostfilesystem.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-hostpath-volumes dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8spspprivilegedcontainer.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-privileged-containers dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8spspseccomp.constraints.gatekeeper.sh/cis-k8s-v1.7.1-require-seccomp-default dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8srestrictrolebindings.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-aggregation-controller dryrun 0 k8srestrictrolebindings.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-cluster-admin-role dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-bind-escalate-impersonate dryrun 0 k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-certificatesigningrequests-approval dryrun 0 k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-nodes-proxy dryrun 0 k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-persistent-volume dryrun 0 k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-pods-create dryrun 0 k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-role-secrets dryrun 0 k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-serviceaccounts-token dryrun 0 k8srestrictrolerules.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-webhook-config dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8spspallowedusers.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-root-containers dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8srequirenamespacenetworkpolicies.constraints.gatekeeper.sh/cis-k8s-v1.7.1-require-namespace-networkpolicy dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8savoiduseofsystemmastersgroup.constraints.gatekeeper.sh/cis-k8s-v1.7.1-avoid-use-of-system-masters-group dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8snoenvvarsecrets.constraints.gatekeeper.sh/cis-k8s-v1.7.1-no-secrets-as-env-vars dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8sblockobjectsoftype.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-secrets-of-type-basic-auth dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8spsphostnamespace.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-host-namespace dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8srestrictnamespaces.constraints.gatekeeper.sh/cis-k8s-v1.7.1-restrict-default-namespace dryrun 0 NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONS k8spspcapabilities.constraints.gatekeeper.sh/cis-k8s-v1.7.1-psp-capabilities dryrun 0
kpt
Instale e configure o kpt. O kpt é usado nestas instruções para personalizar e implementar recursos do Kubernetes.
Transfira o pacote de políticas da CIS do GitHub através do kpt:
kpt pkg get https://github.com/GoogleCloudPlatform/gke-policy-library.git/anthos-bundles/cis-k8s-v1.7.1
Execute a função
set-enforcement-action
kpt para definir a ação de aplicação das políticas comodryrun
:kpt fn eval cis-k8s-v1.7.1 -i gcr.io/kpt-fn/set-enforcement-action:v0.1 \ -- enforcementAction=dryrun
Inicialize o diretório de trabalho com o kpt, que cria um recurso para monitorizar as alterações:
cd cis-k8s-v1.7.1 kpt live init
Aplique as restrições de políticas com o kpt:
kpt live apply
Confirme se as restrições de políticas foram instaladas e verifique se existem violações no cluster:
kpt live status --output table --poll-until current
O estado
CURRENT
confirma a instalação bem-sucedida das restrições.
Config Sync
- Instale e configure o kpt. O kpt é usado nestas instruções para personalizar e implementar recursos do Kubernetes.
Os operadores que usam o Config Sync para implementar políticas nos respetivos clusters podem usar as seguintes instruções:
Altere para o diretório de sincronização do Config Sync:
cd SYNC_ROOT_DIR
Para criar ou acrescentar
.gitignore
comresourcegroup.yaml
:echo resourcegroup.yaml >> .gitignore
Crie um diretório
policies
dedicado:mkdir -p policies
Transfira o pacote de políticas CIS Kubernetes v1.7.1 do GitHub através do kpt:
kpt pkg get https://github.com/GoogleCloudPlatform/gke-policy-library.git/anthos-bundles/cis-k8s-v1.7.1 policies/cis-k8s-v1.7.1
Execute a função
set-enforcement-action
kpt para definir a ação de aplicação das políticas comodryrun
:kpt fn eval policies/cis-k8s-v1.7.1 -i gcr.io/kpt-fn/set-enforcement-action:v0.1 -- enforcementAction=dryrun
(Opcional) Pré-visualize as restrições de políticas a serem criadas:
kpt live init policies/cis-k8s-v1.7.1 kpt live apply --dry-run policies/cis-k8s-v1.7.1
Se o diretório de sincronização do Config Sync usar o Kustomize, adicione
policies/cis-k8s-v1.7.1
aokustomization.yaml
raiz. Caso contrário, remova o ficheiropolicies/cis-k8s-v1.7.1/kustomization.yaml
:rm SYNC_ROOT_DIR/policies/cis-k8s-v1.7.1/kustomization.yaml
Envie alterações para o repositório do Config Sync:
git add SYNC_ROOT_DIR/policies/cis-k8s-v1.7.1 git commit -m 'Adding CIS Kubernetes v1.7.1 policy bundle' git push
Valide o estado da instalação:
watch gcloud beta container fleet config-management status --project PROJECT_ID
O estado
SYNCED
confirma a instalação das políticas.
Veja as violações de políticas
Depois de instaladas no modo de auditoria, as restrições de políticas no cluster podem ser vistas na IU através do painel de controlo do Policy Controller.
Também pode usar kubectl
para ver violações no cluster através do seguinte comando:
kubectl get constraint -l policycontroller.gke.io/bundleName=cis-k8s-v1.7.1 -o json | jq -cC '.items[]| [.metadata.name,.status.totalViolations]'
Se existirem violações, pode ver uma lista das mensagens de violação por restrição com o seguinte comando:
kubectl get constraint -l policycontroller.gke.io/bundleName=cis-k8s-v1.7.1 -o json | jq -C '.items[]| select(.status.totalViolations>0)| [.metadata.name,.status.violations[]?]'
Altere a ação de aplicação do pacote de políticas CIS Kubernetes v1.7.1
Depois de rever as violações de políticas no seu cluster, pode considerar alterar o modo de aplicação para que o controlador de admissão warn
permita
ou até mesmo deny
impeça que o recurso não conforme seja aplicado ao cluster.
kubectl
Use o kubectl para definir a ação de aplicação das políticas como
warn
:kubectl get constraint -l policycontroller.gke.io/bundleName=cis-k8s-v1.7.1 -o name | xargs -I {} kubectl patch {} --type='json' -p='[{"op":"replace","path":"/spec/enforcementAction","value":"warn"}]'
Verifique se a ação de aplicação das restrições de políticas foi atualizada:
kubectl get constraints -l policycontroller.gke.io/bundleName=cis-k8s-v1.7.1
kpt
Execute a função
set-enforcement-action
kpt para definir a ação de aplicação das políticas comowarn
:kpt fn eval -i gcr.io/kpt-fn/set-enforcement-action:v0.1 -- enforcementAction=warn
Aplique as restrições de políticas:
kpt live apply
Config Sync
Os operadores que usam o Config Sync para implementar políticas nos respetivos clusters podem usar as seguintes instruções:
Altere para o diretório de sincronização do Config Sync:
cd SYNC_ROOT_DIR
Execute a função
set-enforcement-action
kpt para definir a ação de aplicação das políticas comowarn
:kpt fn eval policies/cis-k8s-v1.7.1 -i gcr.io/kpt-fn/set-enforcement-action:v0.1 -- enforcementAction=warn
Envie alterações para o repositório do Config Sync:
git add SYNC_ROOT_DIR/policies/cis-k8s-v1.7.1 git commit -m 'Adding CIS Kubernetes v1.7.1 policy bundle warn enforcement' git push
Valide o estado da instalação:
nomos status
O cluster deve apresentar o estado
SYNCED
com as políticas instaladas.
Teste a aplicação de políticas
Crie um recurso não compatível no cluster com o seguinte comando:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
namespace: default
name: wp-non-compliant
labels:
app: wordpress
spec:
containers:
- image: wordpress
name: wordpress
ports:
- containerPort: 80
name: wordpress
EOF
O controlador de admissão deve produzir um aviso que liste as violações de políticas que este recurso viola, conforme mostrado no exemplo seguinte:
Warning: [cis-k8s-v1.7.1-restrict-default-namespace] <default> namespace is restricted Warning: [cis-k8s-v1.7.1-restrict-root-containers] Container wordpress is attempting to run without a required securityContext/runAsNonRoot or securityContext/runAsUser != 0 Warning: [cis-k8s-v1.7.1-restrict-privilege-escalation] Privilege escalation container is not allowed: wordpress Warning: [cis-k8s-v1.7.1-require-seccomp-default] Seccomp profile 'not configured' is not allowed for container 'wordpress'. Found at: no explicit profile found. Allowed profiles: {"RuntimeDefault", "docker/default", "runtime/default"} Warning: [cis-k8s-v1.7.1-psp-capabilities] container <wordpress> is not dropping all required capabilities. Container must drop all of ["NET_RAW"] or "ALL" Warning: [cis-k8s-v1.7.1-require-securitycontext] securityContext must be defined for all Pod containers pod/wp-non-compliant created
Remova o pacote de políticas CIS Kubernetes v1.7.1
Se necessário, o pacote de políticas CIS Kubernetes v1.7.1 pode ser removido do cluster.
kubectl
Use o kubectl para remover as políticas:
kubectl delete constraint -l policycontroller.gke.io/bundleName=cis-k8s-v1.7.1
kpt
Remova as políticas:
kpt live destroy
Config Sync
Os operadores que usam o Config Sync para implementar políticas nos respetivos clusters podem usar as seguintes instruções:
Envie alterações para o repositório do Config Sync:
git rm -r SYNC_ROOT_DIR/policies/cis-k8s-v1.7.1 git commit -m 'Removing CIS Kubernetes v1.7.1 policy bundle' git push
Valide o estado:
nomos status
O cluster deve apresentar o estado
SYNCED
com os recursos removidos.