GKE IngressへのアクセスをCloud ArmorでIP制限を行う

技術

目的

  • GKE上のWEBアプリを社内からのアクセスに限定したい。
  • Ingressへのアクセスをホワイトリスト方式で、IP制限行いたい。

手順

セキュリティポリシーの作成

GCPコンソールより、「ネットワークセキュリティ」→「Cloud Armor」よりセキュリティポリシーを作成する

以下のように、デフォルトでは、全てIPアドレスにて許可になっている。

設定を一旦全てDenyに変更する。コンソール上からは設定が変えられないようなので、gcloudコマンドで変更する。

gcloud compute security-policies rules update 2147483647 --security-policy ingress-security-policy --action "deny-403"

「ルールの追加」で優先度を0にし、許可したいIPアドレスを追加する。

セキュリティポリシーをサービスに紐付ける

BackendConfigを使い、以下のように紐つけて完成。

apiVersion: v1
kind: Service
metadata:
  name: app-service
  annotations:
    cloud.google.com/backend-config: '{"ports": {"80":"backend-config"}}'
spec:
  ports:
  - port: 80
    targetPort: 3000
    protocol: TCP
    name: http
  selector:
    app: app
  type: NodePort

apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
  name: backend-config
spec:
  securityPolicy:
    name: ingress-security-policy

タイトルとURLをコピーしました