на:
                  
                  
                  hostNetwork
                  
                  
                  hostIPC
                  
                  
                  hostPID
                  
                  
                  hostPath
                  
                  
                  hostPorts
                  
                  
                  priveleged
                  
                  
                  allowPrivilegeEscalation
                  
                  
                  capabilities
                  
                  
                  procMount
                  
                  
                  seLinuxOptions
                  
                  
                  
                  
                  
                  runAsUser, runasGroup, fsGroup,supplementalGroups - только с определенного пула uid'ов
                  
                  
                  runAsNonRoot: true
                  
                  
                  разрешены только определенные seccomp/apparmor профили
                  
                  
                  
                  
                  
                  разрешены только определенные tollerations
                  
                  
                  разрешены только определенные домены для ingress
                  
                  
                  разрешены только опеределнные типы волумов
                  
                  
                  разрешены только определенные sysctls
                  
                  
                  разрешены только определенные priorityClassName
                  
                  
                  allow list для аннотаций ingress
                  
                  
                  
                  
                  
                  Что забыл? Мб что-то еще упустил? всякие resource quota/limitrange/network policy не учитываем
                  
                  
                
а зачем домены в ингрессе ограничивать, например?
The BGP backend process (BIRD) is not running не подскажешь в чем может быть трабла ?
что бы не запускали свои пет проекты?
 Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  злой человек допустим получил доступ к другому ns, и у него есть возможность создавать ingress. Он может создать ingress с существующим доменом в кластере, но накрутить свои paths и можно дальше че-то придумать
чому? js вроде гибчей
 Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  не понял
 Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  kyverno достаточно гибкий, там есть jmespath, и фичи понравились
ну ты описал сценарий атаки, от которого хочешь защититься. по сценарию у тебя есть ингрессы для какого-то домена, и ты не хочешь, чтобы злоумышленник насоздавал своих ингрессов на этот же домен, но с другими путями, так?
 Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  json конечно хорошо, но можно ли там полноценную логику сделать, со всякими там if/else?
раз ингресс на этот домен уже есть - значит он в списке разрешённых?
Он может быть только в определенном нс
 Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  там такую логику вполне можно строить
 Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  если злыдень получил доступ к какому-то левому ns
 Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  @gecube посоветуй, ничего критичного не упустил?
Схоронил и в очередь встал, чего еще накидают
А можно делать кроссобъектные валидации? Например не давать создать pdb в комбинации с количеством реплик = 1, чтобы не вставлять палки в колёса с обновлением нод (evict не будет возможен). Или проверять чтобы minAvailable percent != ReplicaAmount.
 Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  я такого не делал, но я думаю это можно провернуть через external data source https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls Что нибудь такое rules: - match: any: - resources: kinds: - PodDistributionBudget context: - name: replicas apiCall: urlPath: "/apis/apps/v1/namespaces/{{request.namespace}}/deployments/{{request.name}}" jmesPath: "spec.replicas" validate: deny: conditions: any: - key: '{{replicas}}' operator: Equals value: 1 Но я не тестил
 Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dmitry
                          Sergeev 🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  тут еще мб preconditions надо сделать, ну или как минимум несколько ресурсов проверять, а не только deplouments
Обсуждают сегодня