1.3K Views
November 17, 25
スライド概要
https://event.cloudnativedays.jp/cndw2025/talks/2703
プラットフォームエンジニア/Kubernetes/Golang
Hitachi Group Company Gateway API導入で失敗しない! KuadrantとKeycloakで実現する セキュアバイデフォルト設計 2025/11/18 株式会社日立製作所 マネージド&プラットフォームサービス事業部 AIサービス本部 アーキテクチャセンタ 松田 元輝 ©Hitachi, Ltd. 2025. All rights reserved
Introduction 自己紹介 松田 元輝 (まつだ げんき) @maki_644 島根県在住 Kubestronaut 最近はキーボード沼にハマってる https://www.cncf.io/training/kubestronaut/ 2 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
Introduction 今回の前提 3 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
Introduction 今回の前提 あなたは家族と共に暮らすプラットフォームエンジニア。 あなた 優しい伴侶 娘: クベ子 画像: いらすとや https://www.irasutoya.com/ 4 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
Introduction 今回の前提 あなたは家庭と共に暮らすプラットフォームエンジニア。 休日の過ごし方は家庭仲良くアプリケーション開発 をすること。 5 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
Introduction 今回の前提 しかし、クベ子が思春期に入り 「パパと同じNamespaceはイヤ!」 というようになりました。 ※クベ子(中学生) 6 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
Introduction 今回の前提 そこであなたはクベ子に専用のNamespaceを与える ことにしました。 7 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
Introduction 今回の前提 そこであなたはクベ子に専用のNamespaceを与える ことにしました。 問題はIngress。親として過干渉はしたくないが、クベ 子にアプリケーションの公開を全て任せることに不安な あなた。 ああ~、どうにかして基本的なセキュリティを担保しつつ、 アプリケーションの公開をクベ子に任せることはできないものか。。。 こんな時、イクメン プラットフォームエンジニアまつださえいれば。。。 8 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
Introduction 今回の前提 そこであなたはクベ子に専用のNamespaceを与える ことにしました。 問題はIngress。親として過干渉はしたくないが、クベ 子にアプリケーションの公開を全て任せることに不安な あなた。 Gateway API Kuadrant Keycloak で解決してみせましょう 9 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
Contents - 現状の課題とめざしたい姿 - Gateway API概要説明 - デモ - KuadrantとKeycloakの概要説明 - デモ - まとめ 10 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
現状の課題とめざしたい姿 11 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
現状の課題とめざしたい姿 現状の課題: - アプリケーションのルーティングや細かいセキュリ ティ設定はクベ子にやらせたい - ただ、クベ子にIngressの全機能を触らせるの は避けたい めざしたい姿: デフォルトで最低限のセキュリティが担保されてる 状態を作りつつ、クベ子がアプリケーションの公開 やルーティング、細かいセキュリティの設定を自分で やれるようにする。 12 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
現状の課題とめざしたい姿 現状の課題: - アプリケーションのルーティングや細かいセキュリ ティ設定はクベ子にやらせたい - ただ、クベ子にIngressの全機能を触らせるの は避けたい プラットフォームエンジニアリングでも同じようなこと言えませんか? めざしたい姿: デフォルトで最低限のセキュリティが担保されてる 状態を作りつつ、クベ子がアプリケーションの公開 やルーティング、細かいセキュリティの設定を自分で やれるようにする。 13 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
プラットフォームエンジニアリングとは? 現代のソフトウェア開発は様々なツールが出てきて便利になった 反面、プロダクトチームがプロダクトの開発だけでなく、インフラの 構築、デプロイ、運用まで幅広い業務を担う必要が出てきた。 これにより、プロダクトチームの業務内容や使用するツールが多 岐にわたり、学習コストが高くなる。結果、プロダクトチームがプ ロダクトの開発に集中できなくなる。 プロダクトチーム: アプリケーションやサービスを開発するチーム 14 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
プラットフォームエンジニアリングとは? 現代のソフトウェア開発は様々なツールが出てきて便利になった 反面、プロダクトチームがプロダクトの開発だけでなく、インフラの 構築、デプロイ、運用まで幅広い業務を担う必要が出てきた。 これにより、プロダクトチームの業務内容や使用するツールが多 岐にわたり、学習コストが高くなる。結果、プロダクトチームがプ ロダクトの開発に集中できなくなる。 プラットフォームエンジニアリングはこの課題を解決するアプローチ で、インフラ管理をはじめとする各種機能を、セルフサービスで 使えるプラットフォームという形でプロダクトチームに提供ことによ り、プロダクトチームが自分たちのプロダクト開発に集中できるよ うにする。 プロダクトチーム: アプリケーションやサービスを開発するチーム プラットフォームチーム: プロダクトチームのためのプラットフォームを 開発するチーム 15 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
現状の課題とめざしたい姿 (プラットフォームエンジニアリングで置き換えて考える) 現状の課題: プラットフォームチーム - アプリケーションのルーティングや細かいセキュリ ティ設定はクベ子(プロダクトチーム)にやらせたい - ただ、クベ子(プロダクトチーム)にIngressの全機 能を触らせるのは避けたい めざしたい姿: デフォルトで最低限のセキュリティが担保されてる 状態を作りつつ、クベ子(プロダクトチーム)がアプリ ケーションの公開やルーティング、細かいセキュリティ の設定を自分でやれるようにする。 16 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 プロダクトチーム ©Hitachi, Ltd. 2025. All rights reserved
Gateway API概要説明 17 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
Gateway APIの概要説明 Gateway APIとは Gateway APIはIngressに代わるKubernetesの新しいネットワークAPIで、より柔軟で拡張性の高いトラフィック管理を実現する。 Ingressでは権限分離が難しい - プロダクトチームがIngressを作成する権限を持つ場合、認証がかかっていない状態でアプリケーションを公開される可能性がある。 - 対して、プラットフォームチームがIngressの権限を握ってしまうと、プロダクトチームが細かいルーティングを設定できない。 Gateway APIはロール指向で、プラットフォームチームとプロダクトチームの管理するリソースを分けている。 18 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
Gateway APIの概要説明 Gateway APIの構成要素 クライアント Gateway: ロードバランサーをデプロイする。プラットフォームチームが 管理する。 HTTPRoute: GatewayからServiceへのルーティングを定義する リソース。プロダクトチームが管理する。 リクエスト プラットフォームチームがメンテ Gateway プロダクトチームがメンテ HTTP Route 19 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
Gateway APIの概要説明 補足: Gateway APIの実装 Gateway APIの実装一覧 (2025/11/3時点) https://gateway-api.sigs.k8s.io/implementations/ Ingressと同様、Gateway APIはあくまでインターフェースなので、実際 の挙動は各Gatewayコントローラーの実装に依存する。今回のデモで はEnvoy Gatewayを利用する。 20 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
デモ 21 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
デモ クライアント Gateway APIのマニフェスト リクエスト 【ワイルドカードDNSサービス】 kubeko.172.32.28.120.nip.io → 172.32.28.120 Gateway HTTP Route 22 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
デモ クライアント Gateway APIのマニフェスト リクエスト Gateway HTTP Route 23 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
デモ クライアント HTTPRouteのマニフェスト リクエスト Gateway HTTP Route 24 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
KuadrantとKeycloakの概要説明 25 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
KuadrantとKeycloakの概要説明 クライアント Kuadrant: Gateway APIのGatewayやHTTPRouteに、認証認可、 レートリミットなどのポリシーをかけることのできるOSSプロジェクト。DNS のレコード追加や、cert-managerと連携したTLS設定も可能。 AuthPolicy: GatewayやHTTPRouteそれぞれに対し、認証認可の ポリシーを設定することができる。例えば、プラットフォームチームが Gatewayにトークン検証をするポリシーを適用するとこで、デフォルトで セキュリティが担保される状態を作ることができる。その上で、クベ子 (プロダクトチーム)が細かいポリシーを設定していく。 リクエスト トークン発行リクエスト /w トークン プラットフォームチームがメンテ Auth Policy Gateway 認可 Authorino In Kuadrant トークン検証 Keycloak トークン検証 プロダクトチームがメンテ Authorino: Kuadrantの認証認可エンジン。実際にGatewayへのト ラフィックに対して、AuthPolicyに書かれた認証認可ポリシーに従って いるか判断する。つまり、Policy Decision Pointとして動作する。 Auth Policy HTTP Route 細かいポリシー Keycloak: オープンソースのIDアクセス管理システム。Kuadrantと連 携し、APIの認可を提供する。また、トークンの発行を行う。 26 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
デモ 27 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
デモ クライアント Gatewayに対するAuthPolicy リクエスト Gateway APIの機能だけでは、認可がかかっていないため、 リクエストが素通りしている状態。 デフォルトで最低限のセキュリティが担保されるよう、 Gatewayに対してトークン検証(今回はトークンイントロス ペクション)をするAuthPolicyを適用する。 Auth Policy Gateway 認可 Authorino In Kuadrant トークン イントロスペクション Keycloak HTTP Route 28 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
デモ クライアント Gatewayに対するAuthPolicy トークン発行リクエスト リクエスト /w トークン Auth Policy Gateway 認可 Authorino In Kuadrant トークン イントロスペクション Keycloak AuthPolicyの適用対象 を指定 HTTP Route トークン検証の設定 29 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
pappa クライアント kubeko クライアント デモ Gatewayに対するAuthPolicy トークン発行リクエスト リクエスト リクエスト /w トークン 〇 × Auth Policy Gateway Auth Policy HTTP Route /w トークン 認可 Authorino In Kuadrant トークン イントロスペクション Keycloak 実はpappaクライアント(パパ)がアクセスしてた kubekoクライアント(クベ子)のみに絞りたい (# ゚Д゚) 30 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
pappa クライアント kubeko クライアント デモ HTTPRouteに対するAuthPolicy トークン発行リクエスト リクエスト リクエスト /w トークン HTTPRouteにクライアントkubekoだけ許可する設定をする。 31 〇 × Auth Policy Gateway Auth Policy HTTP Route Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 /w トークン 認可 Authorino In Kuadrant トークン イントロスペクション Keycloak ©Hitachi, Ltd. 2025. All rights reserved
pappa クライアント kubeko クライアント デモ HTTPRouteに対するAuthPolicy トークン発行リクエスト リクエスト リクエスト /w トークン HTTPRouteにクライアントkubekoだけ許可する設定をする。 〇 × Auth Policy Gateway Auth Policy HTTP Route /w トークン 認可 Authorino In Kuadrant トークン イントロスペクション Keycloak ♪ 32 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
まとめ 33 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
pappa クライアント kubeko クライアント Ending まとめ トークン発行リクエスト リクエスト リクエスト /w トークン Namespaceの管理をクベ子に移譲しつつ、API公 開の基本的なセキュリティを担保することができました。 今回のポイント: 〇 × Auth Policy Gateway Auth Policy HTTP Route /w トークン 認可 Authorino In Kuadrant トークン イントロスペクション Keycloak – プラットフォームエンジニアリングのようなプラットフォー ムチームとプロダクトチームの役割を明確に区別した い場合、Gateway APIが有効な手段となる。 – さらに、Kuadrantを使うことで、APIのセキュリティが デフォルトで担保された状態を作ることができる。 34 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
Ending 紹介しきれなかった機能 Gateway API GatewayClass: Gatewayコントローラー(実装)を指定したり、コントローラーのパラメーターを指定する。 GRPCRoute, TLSRoute, TCPRoute, UDPRoute: HTTP以外にもgRPCなどのRouteリソースがある。 ReferenceGrant: 他のNamespaceのServiceへルーティングするための仕組み Kuadrant RateLimitPolicy: GetewayやRouteリソースにレート制限を設定する。 DNSPolicy: DNSレコードのライフサイクルを管理する。 TLSPolicy: cert-managerと連携しTLS証明書のライフサイクルを管理する。 35 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
Ending 商標表示 KubernetesはThe Linux Foundationの登録商標です。 KubestronautはThe Linux Foundationの商標です。 KeycloakはThe Linux Foundationの商標です。 KuadrantはThe Linux Foundationの商標です。 EnvoyはThe Linux Foundationの商標です。 Open Policy Agent (OPA)はThe Linux Foundationの商標です。 その他記載の会社名、製品名などは、それぞれの会社の商標もしくは登録商標です。 36 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved
連載記事: Kubernetesで始める 実践プラットフォームエンジニアリング @maki_644 ※本資料は大西配列で書かれました。 Cloud Native Days Winter 2025 | Gateway API導入で失敗しない!KuadrantとKeycloakで実現するセキュアバイデフォルト設計 ©Hitachi, Ltd. 2025. All rights reserved