Consul コンテナは特権コンテナとして作成されますが、これを変更するにはどうすればよいですか?

Consul コンテナは特権コンテナとして作成されますが、これを変更するにはどうすればよいですか?

Azure ポリシー アドオンが有効になっていると (組織のポリシーに従って)、aks、azure kubernetes に特権コンテナーを作成できません。

私たちのアプリケーションは以下のようにセキュリティ コンテキストに設定されています。

    securityContext:
        allowPrivilegeEscalation: false
        runAsNonRoot: true
        runAsUser: 999

したがって、アプリは特権アクセスなしで作成できます。ただし、consul (アノテーション経由) とリンクすると、consul init コンテナーの作成に失敗します。

 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

Kubernetes の Azure ポリシーの動作方法では、各コンテナーに対してallowPrivilegeEscalationfalse に設定される値を明示的に宣言する必要があります。コンテナーがそれを必要としないだけでは不十分であり、マニフェストでこれを設定する必要があります。

したがって、サイドカー ポッドにこれが設定されていることを確認するために、コンソールのデプロイメントを修正する必要があります。私は Consul にそれほど詳しくありませんが、Helm でデプロイされている場合は、値ファイルのオプションを見て、これを設定できるかどうかを確認してください。

関連情報