CNSC 2022、日立のエンジニアがNISTの仕様をベースにIstioのセキュアな設定を解説

2022年11月29日(火)
松下 康之 - Yasuyuki Matsushita
CloudNative Srcurity Ceonference 2022から、日立のエンジニアによるNISTの仕様の解説とIstioの実装例の詳細を解説。

CloudNative Security Conference 2022から、サービスメッシュ(Istio)におけるセキュリティの詳細な設定を解説するセッションを紹介する。セッションを担当したのは株式会社日立製作所の研究開発グループの井出貴也氏だ。タイトルは「Istioを活用したセキュアなマイクロサービスの実現:アプリ透過型のユーザ及びサービス認証認可」で、前半でマイクロサービスのセキュリティについてNIST(National Institute of Standards and Technology、米国標準技術研究所)のガイドSP800-204について概要と特徴を紹介した後に、サービスメッシュのオープンソースソフトウェアであるIstioについて紹介、Istioの機能のうち、セキュリティに関連する部分、認証と認可について掘り下げるという内容となっている。

井出氏のセッション。所属は研究開発グループだ

井出氏のセッション。所属は研究開発グループだ

マイクロサービスの良さは認めつつもセキュリティの観点からは複雑であり、何からの指針が必要であると述べ、その具体例としてNISTのガイドラインSP800-204を紹介している。

サービスメッシュのセキュリティにおける指針が必要

サービスメッシュのセキュリティにおける指針が必要

NISTが作成したガイドラインを紹介

NISTが作成したガイドラインを紹介

NISTのSP800-204には4つのセクションがあり、今回はそのうちの204、204A、204Bについて触れると説明。マイクロサービスを実装する際の仕組みであるCI/CDパイプラインなどについては触れないと語った。

NIST SP800-204におけるセクションの概要

NIST SP800-204におけるセクションの概要

NISTの仕様については以下のリンクを参照されたい。

NISTの仕様:Security Strategies for Microservices-based Application Systems

マイクロサービスの実装パターンのひとつであるサービスメッシュについて簡単に説明し、アプリケーションを構成する機能をサービスとして分割、そのサービスの通信を担当する部分にProxyという別のプロセスを同居させるいわゆるサイドカー実装をベースに解説している。

Proxyがサービス間通信を担当し、管理はコントロールプレーンとして別プロセスが受け持つ形

Proxyがサービス間通信を担当し、管理はコントロールプレーンとして別プロセスが受け持つ形

サービスメッシュの利用者視点でのセキュリティは4つに分類されるとして、通信の保護と認証認可、耐障害性と回復力の向上、セキュリティ監視、権限の最小化に分けて井出氏が注目するポイントについて解説を行った。

SP800-204に関する井出氏の総括

SP800-204に関する井出氏の総括

ガイドライン全体について、規定値としてセキュアな設定が必要としている点、サービスやユーザーに対する権限を最小限にする点をまとめたのがこのスライドになる。

その上でサービスメッシュのIstioを例に、主としてサービス間通信におけるセキュリティ設定の詳細を解説する後半に移った。

Istioの紹介。Google、Red Hat、IBMが開発をリード

Istioの紹介。Google、Red Hat、IBMが開発をリード

ここからIstioの認証、認可の機能について詳細に解説が始まった。

Istioの認証、認可に関して詳細な解説を行った

Istioの認証、認可に関して詳細な解説を行った

サービス間認証やID、外部の認証局を使った場合のコマンド、ユーザー認証、認可についてIstioの設定内容についても触れながら解説を行った。

外部の認証局を使った場合のコマンドなどを紹介

外部の認証局を使った場合のコマンドなどを紹介

外部認可について、このスライドではOpen Policy Agent(OPA)を使ったケースで紹介。外部の判定については都度、通信が発生するためにレイテンシーが増える可能性があることをコメントしている。

Istioにおける外部認可については2種類の方法があるとして、Extension Provider、Envoy Filterについて説明を行った。

外部認可の設定、2種類を説明

外部認可の設定、2種類を説明

認可についてはOPA連携、ユーザー認証についてはKeycloak/OAuth2 Proxy連携の解説を行った。

アクセス認可についてOPAを使った例の解説

アクセス認可についてOPAを使った例の解説

ユーザー認証についてはKeycloakとOAuth2 Proxyの連携を紹介

ユーザー認証についてはKeycloakとOAuth2 Proxyの連携を紹介

ここでは唐突にKeycloakが登場しているが、Keycloakは日立のエンジニアがメンテナーとしてプロジェクトの統括を行っているIdentity and Access Managementのためのオープンソースソフトウェアだ。

参考:OSS「Keycloak」開発プロジェクトのメンテナに日立の社員が就任

ここではサービスからユーザー認証を行う場合にProxy → OAuth2 Proxy → Keycloakという順番で連携している部分を解説している。IstioとKeycloakの間にOAuth2 Proxyが仲介役として使われている。

このシステム構成でOAuth2 ProxyをOPAに置き換えることができないか? ということを説明しているのが、次のスライドだ。

OAuth2 Proxyの替わりにOPAを使うことは可能か

OAuth2 Proxyの替わりにOPAを使うことは可能か

ここではユーザー認証と認可を同じモジュール(OPA)で行うという試みについて解説している。Keycloakへのリダイレクト処理の実装可能性とセッション管理についても触れ、実験レベルでは実装可能であると説明している。

まとめとしてNISTのガイドラインの要点の紹介、そしてユーザー認証、認可におけるIstioの詳細な設定例、最後にOPA、Keycloakなどとの連携の例を挙げている。

井出氏のセッションのまとめ

井出氏のセッションのまとめ

前半のNISTのガイドライン紹介が後半のIstioの実装例と対比されておらず、Istioの設定における要点の詳細な説明や注意点という構成になっているためにIstioを深く知らないと参考にしづらい点が少々気になった。

またKeycloakやOPA、OAuth2 Proxyなどが唐突に登場しているが、それらのソフトウェアを知っていることが前提の中級者向けと言えばその通りだが、前半が俯瞰的に総括しているのに後半は顕微鏡で観察しているような印象を受けてしまった。研究者的な視点といえばその通りかもしれないが、別の機会により全体的な内容を期待したい。

セッションの動画は以下のリンクから参照して欲しい。

動画:Istioを活用したセキュアなマイクロサービスの実現: アプリ透過型のユーザ及びサービス間の認証認可

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

セキュリティイベント
第8回

CNSC 2022、SBoMの概要と未来を展望するセッションを紹介

2022/12/7
CloudNative Srcurity Ceonference 2022から、OWASPのコントリビュータが解説するSBoMの概要とデモ、そして未来を展望するセッションを紹介。
セキュリティイベント
第7回

CNSC 2022、eBPFをベースにしたコンテナランタイムセキュリティのツールを紹介

2022/12/2
CloudNative Srcurity Ceonference 2022から、クラスメソッドのエンジニアがeBPFをベースにしたコンテナランタイムセキュリティを解説したセッションを紹介する。
セキュリティイベント
第6回

CNSC 2022、日立のエンジニアがNISTの仕様をベースにIstioのセキュアな設定を解説

2022/11/29
CloudNative Srcurity Ceonference 2022から、日立のエンジニアによるNISTの仕様の解説とIstioの実装例の詳細を解説。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています