Контейнеры Consul создаются как привилегированные контейнеры. Как это изменить?

Контейнеры Consul создаются как привилегированные контейнеры. Как это изменить?

При включенном дополнении Azure Policy (согласно политике организации) мы не можем создавать привилегированные контейнеры в aks, Azure Kubernetes.

Наше приложение настроено на контекст безопасности, как показано ниже.

    securityContext:
        allowPrivilegeEscalation: false
        runAsNonRoot: true
        runAsUser: 999

Итак, наше приложение может создавать без привилегированного доступа. Но при связывании с consul (через аннотации) контейнеры init consul не могут быть созданы.

 Warning  FailedCreate  6s (x15 over 90s)  replicaset-controller  Error creating: admission webhook "validation.gatekeeper.sh" denied the request: [azurepolicy-psp-container-no-privilege-esc-30132221bc21e5b724da] Privilege escalation container is not allowed: envoy-sidecar
[azurepolicy-psp-container-no-privilege-esc-30132221bc21e5b724da] Privilege escalation container is not allowed: consul-sidecar
[azurepolicy-psp-container-no-privilege-esc-30132221bc21e5b724da] Privilege escalation container is not allowed: consul-connect-inject-init

решение1

То, как работает политика Azure для Kubernetes, заключается в том, что вам необходимо явно объявить для каждого контейнера значение, allowPrivilegeEscalationкоторое будет установлено как false. Недостаточно, чтобы контейнер не требовал этого, это должно быть установлено в манифесте.

Итак, вам нужно изменить развертывание консоли, чтобы убедиться, что это установлено на подах sidecar. Я не очень хорошо знаком с Consul, но если он развертывается с Helm, посмотрите на параметры в файле значений, чтобы узнать, можно ли это установить.

Связанный контент