Method for New TLS Configuration and Renewal for Gateway URL
このガイドでは、API Gateway URLのTLSを構成する方法について説明します。証明書の準備、Kubernetesシークレットの作成、およびKong Ingress ControllerまたはAPIM Consoleを介してTLSを適用する方法をカバーしています。
初期TLSセットアップ(新規)
最初のステップは、TLS証明書とキーを準備することです。これを行うには、2つのファイルが必要です:
- tls.crt: 公開証明書ファイル
- tls.key: プライベートキーファイル
これらはLet’s Encryptまたはプライベート証明書機関(CA)によって発行されることがあります。
KubernetesシークレットとしてTLS証明書を登録する
KubernetesでTLS証明書を使用するには、Kongがインストールされている名前空間(通常はkong)にシークレットとして登録する必要があります。
コマンドラインの例
kubectl create namespace kong # すでに作成されている場合はスキップ
kubectl create secret tls kong-gateway-cert \
--namespace kong \
--cert=certificate.crt \
--key=private.key
パラメータの説明
Parameter | Description |
---|---|
--cert | 公開証明書ファイルへのパス |
--key | プライベートキーへのパス |
--namespace | Kongがインストールされている名前空間(デフォルトはkong) |
サンプルシークレット(生のYAML形式)
apiVersion: v1
kind: Secret
metadata:
name: kong-gateway-cert
namespace: kong
type: kubernetes.io/tls
data:
tls.crt: <base64エンコードされた証明書>
tls.key: <base64エンコードされたプライベートキー>
Kong GatewayにTLSを適用する
Kongは次の方法でTLS構成をサポートしています:
- Ingress
- Gateway API
- KongIngress
このセクションでは、CLIベースとAPIM Consoleベースの両方の方法について説明します。
Kong Ingress Controllerを使用する(デフォルト)
以前に作成したシークレットを使用して、TLS対応のIngressリソースを定義します。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kong-ingress
namespace: kong
annotations:
kubernetes.io/ingress.class: kong
spec:
tls:
- hosts:
- api.example.com
secretName: kong-gateway-cert
rules:
- host: api.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kong-proxy
port:
number: 80
重要な注意事項:
Point | Explanation |
---|---|
spec.tls.hosts | 使用するDNSを定義します(例:api.example.com) |
spec.tls.secretName | 作成したシークレット名と一致する必要があります(kong-gateway-cert) |
ingress.class | Kongである必要があります(Kong Ingress Controllerを使用する場合のデフォルト) |
backend.service.name | 通常、Helmを介してインストールされた場合はkong-proxy |
APIM Consoleを使用する
APIM Consoleを介して直接証明書を適用することもできます。APIM Console > Gateway Management > Gateway Detail Screen > Gateway URL Settingsに移動します。
入力フィールド:
- Gateway URL: 例:pms.api.skapim.com
- Global BasePath: 例:/
- HTTPS Only: ONに切り替え
- TLS証明書:
- tls.crt: 完全な証明書の内容を貼り付け
- tls.key: 完全なプライベートキーを貼り付け
- Ingress Class: 適切なクラスを選択(例:nginx、kong)
まとめ
ステップ | タスク |
---|---|
1 | TLS証明書を取得して準備する(tls.crt、tls.key) |
2 | Kubernetes TLSシークレットを作成する |
3 | Kong Ingress ControllerまたはAPIM Consoleを介してTLSを適用する |
4 | HTTPSおよび一致するDNSを介してゲートウェイアクセスを確認する |
このガイドは、CLIまたはAPIM ConsoleのUIを介して管理されるかにかかわらず、TLSを使用してAPI Gatewayの安全なHTTPSルーティングを確保します。