魂の生命の領域

AWS とか Python とか本読んだ感想とか哲学とか書きます

ゼロトラストネットワーク読んでる 〜その1〜

概要

  • ゼロトラストネットワーク読んでるけど全然わからんので随時まとめていく
  • 今8章の半分ぐらい読んだけど導入の概念的なところ意外全然記憶に残っていないのでブログに書きながらまた最初から振り返ります

導入

ゼロトラストネットワーク − 境界防御の限界を超えるためのセキュアなシステム設計 という本を見かけて表紙のエビ?がカッコ良かったので買いました。

早く帰れた日は本屋さんに言って技術書コーナーを眺めてなんとなくモチベーションを高める(玩具屋さんでテンションが上がるのと同じ原理)生活を送っているので、実は邦訳が出版された直後ぐらいに買って読み始めていましたが、基本的なコンセプトはまぁイメージなのでわかるのものの細かい用語などが全然わからんのです。

もう少し真面目な話をすると、そもそも私はコンピューターやインターネッツのことを一切知らないままSIerの会社に入ってその後偶然 AWS に触れてインフラの基礎的なことを学んだ(といってもメインの業務はサーバーレス系)のですが、いわゆるオンプレの苦労を知らない クラウドゆとり世代 として初っ端からゼロトラストネットワークを学んで実践してやるぞ!という意気込みで買って読み始めました。

ゼロトラストネットワーク

本書を読んでない方は「いや、だからゼロトラストネットワークってなに」という感じだと思うので、早速第1章の内容に入って概要を眺めてみます。

本書で挙げられているゼロトラストネットワークの基本的な原則は5つあります。 引用します。

  • ネットワーク上は常に安全ではないと考える。
  • ネットワーク上には外部および内部の脅威が常に存在する。
  • ネットワークを信用できると判断するには、ローカルネットワークでは不十分である。
  • バイス、ユーザー、ネットワークフローは1つ残らず認証および認可される。
  • ポリシーは動的であり、できるだけ多くの情報源に基づいて作成されなければならない。

一つ目と二つ目は何となく神経質な考え方をすればそうなのかなぁと何となく同意してしまいそうですが、従来のネットワークセキュリティの考え方と比較して特に重要なのは三つ目だと思います。

従来のアーキテクチャ、本書では 境界モデル と呼ばれていますが、これはネットワークやサブネットをいくつかのゾーンに分割し、ファイヤウォールで侵入を防御するようなやつでした。 いわゆる DMZ (非武装地帯)でトラフィックを検査して「いいよ」となったトラフィックのみを AP サーバーなどに接続できるようになるやつです。 この壁を何重にも設置することでいい感じに厳重にトラフィックの監視や制御ができています。

ただし、この壁の内側ではトラフィックが検査されなかったり壁となるシステムが単一障害点になったりなどの欠点があります。一度壁をすり抜けてしまうとあとは何でもできてしまいますからね。

そこでゼロトラストネットワークではすべてがインターネットに接したパブリックな場所にサーバーが配置されていると考えて誰も信用しないし、誰もが自分をしっかり守護(まも)るようにするんだそうです。

へ〜凄いっすね〜

ゼロトラストネットワークは、コントロールプレーンデータプレーン によって構成されます。 保護されているリソースへのアクセスリクエストは、まず最初にコントロールプレーンに送信されます。 そこではデバイスとユーザーの両方によって認証および認可される必要があります。 リクエストしたユーザーの組織内での役割や時刻、デバイスの種類(スマホでこのサイトが見たいってのはなんか怪しくね?とかありますよね)など様々な要素に基づいてアクセスできる範囲を規定したポリシーが適用したりとか。 そのポリシーをもってしてデータプレーンのデータへアクセスするわけです。

この接続情報では一回限りのクレデンシャルやアクセスキー、ポート番号と言った一時的な情報が使われることもあります。

なんとなく私はこの辺を読んでいて AWS の IAM Role ベースのアクセス制限をイメージしました。

構成要素

ゼロトラストネットワークは以下の三つの重要な要素で構成されます。

  • ユーザー / アプリケーション認証
  • バイス認証
  • 信用

ユーザー / アプリケーション認証 で一つの項目にしてあるのは、全てのアクションがユーザーによって実行されているとは限らないからのようです。 つまりユーザーの素性が信用に足るか調べることがそのままリクエスト元のアプリケーションを検証することになる場合とアプリケーションが自動で何かしらのリクエストを送ってきている場合を想定しているというわけです。

バイスの認証と認可は、境界モデルではあまり出てこない考え方らしいです(知らない)。 あれですかね、境界モデルでは IP アドレスが事前に許可したものであれば OK みたいな感じなんですかね(適当)?

あと重要なのが「信用スコア」です。先ほども述べたようにリクエスト元のいろんな要素を加味してこのリクエストを通しても良いかどうかを判断するための指標です。このスコアの計算方法を柔軟にすることでいい感じにメンテナンス性を確保してセキュアなネットワークが実現できる、という寸法のようです。

まとめ(られていない)

とりあえず1章は導入なので概論的な記述がメインでした。 次の2章からはここで書いた内容をそれぞれ深く掘り下げていきます。 第2章は「信頼と信用の管理」です。 主に鍵の話です。 そのうちまとめます。 図無しだとしんどくなってきた。