クライアント証明書をiPhoneに入れる - 839の日記 の続きです。
k8s側にセットするのも書いておきます。
とは言ってもingressにクライアント証明書をセットするのは非常に簡単です。
まず先の記事で作成したkey/certを使ってk8sのsecretを作成します。
kubectl create secret tls hoge-secret --key client.key --cert client-ca.crt
作成したsecretをもとにingressを設定します。
apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: hoge-ing annotations: nginx.ingress.kubernetes.io/auth-tls-verify-client: "on" nginx.ingress.kubernetes.io/auth-tls-secret: hoge-secret spec: rules: - host: hoge.com http: paths: - backend: serviceName: hoge-svc servicePort: 80
上記の設定で指定したホストにアクセスしたときにクライアント認証が走ります。
OAuth認証やBasic認証などの代替手段もありますが、クライアント認証が一番手軽でセキュアにできるので個人的によく使っています。