Docker/Kubernetes 開発・運用のためのセキュリティ実践ガイド

ドッカークバネテスカイハツウンヨウノタメノセキュリティジッセンガイド

Docker/Kubernetes 開発・運用のためのセキュリティ実践ガイドの表紙
セキュリティ
著者:
須田 瑛大 / 五十嵐 綾 / 宇佐美 友也(スダ アキヒロ / イガラシ アヤ / ウサミ トモヤ)
出版社:
マイナビ出版
出版日:
2020年02月27日頃
ISBN:
9784839970505
シリーズ:
Compass Books シリーズ
在庫:
在庫あり
4(1 件 / 楽天ブックス)
DockerKubernetesセキュリティ

なぜ注目されているか

総合176位 ↑ 1 ランクアップ 言及 8 件・うち記事 7 件を掲載
言及数
365位
01220222023202420252026

書籍紹介

Docker や Kubernetes を使ってアプリケーションをデプロイすることは、いまや当たり前になりつつあります。しかしながら、Docker や Kubernetes のセキュリティを確保することはいまだに簡単ではありません。
デフォルトの設定でコンテナを実行していませんか?

Kubernetes のリソースに対する権限を正しく設定できていますか?

本書は、Docker や Kubernetes のセキュリティを強化するための設定方法や、便利なツールの使い方について、網羅的かつ詳細に記しています。また、Docker に代わるコンテナエンジンとして話題の Podman など、最新のソフトウェアに関する情報もふんだんに盛り込みました。

第 1 章 Docker/Kubernetes のおさらい
・Docker や Kubernetes の使い方について簡単におさらいします。

第 2 章 コンテナ運用における脅威の事例
・Docker や Kubernetes を構成するコンポーネントの過去の脆弱性情報や、設定ミスによる攻撃被害事例を紹介します。

第 3 章 ランタイムのセキュリティ Tips
・Docker API エンドポイントを保護する方法、コンテナを非 root ユーザで実行する方法や、SELinux でファイルアクセスを厳しく制限する方法などを紹介します。

第 4 章 イメージのセキュリティ Tips
・Docker イメージの脆弱性を検査する方法や、プライベートイメージレジストリの構築方法などを紹介します。

第 5 章 Kubernetes クラスタのセキュリティ Tips
・Service Account や RBAC の基本的な設定方法から、独自の Admission Webhook の開発方法といった応用的な Tips まで幅広く紹介します。

第 6 章 アプリケーション間通信を守る
・Network Policy や Istio を使って Pod の通信を制御する方法や、SPIFFE でアプリケーションを認証する方法を紹介します。

技書の森解説

『Docker/Kubernetes 開発・運用のためのセキュリティ実践ガイド』 (須田 瑛大、五十嵐 綾、宇佐美 友也 著、マイナビ出版、2020 年 2 月刊) は、Docker と Kubernetes で動かすアプリケーションのセキュリティを強化するための設定方法と、ツールの使い方をまとめた Compass Books シリーズの一冊です。版元の紹介文は、既定の設定のままコンテナを実行していないか、Kubernetes のリソースに対する権限を正しく設定できているかという問いを投げかけています。本編は、ランタイム、イメージ、クラスター、アプリケーション間通信の 4 つの層を順に扱う構成です。コンテナを動かすことはできるようになったものの、安全に運用できているかを自分で点検する手がかりが欲しい開発者とインフラ担当者に向いた一冊です。

全 6 章の構成、脅威の事例からアプリケーション間通信の保護まで

第 1 章で Docker と Kubernetes の使い方を簡単におさらいし、第 2 章では API エンドポイントの設定ミス、ランタイムやカーネルの脆弱性、イメージの脆弱性という 3 つの観点から、過去の脆弱性情報と設定ミスによる攻撃被害の事例を紹介します。第 3 章「ランタイムのセキュリティ Tips」は、Docker API エンドポイントの保護、コンテナの実行ユーザーの変更、ケーパビリティやシステムコールの制限、ファイルアクセスの制御、リソースの制限、代替ランタイムの利用、コンテナの監視、設定の検証までを扱います。第 4 章はイメージの側で、Dockerfile からプライベートな Git や S3 にアクセスする方法、コンテナ内で安全にイメージをビルドする方法、脆弱性の検査、改竄されたイメージのデプロイを防ぐ方法、Harbor によるプライベートレジストリの構築が並びます。第 5 章はクラスターの章で、API のアクセス制御、認証モジュールと認可モジュール、Service Account、Admission コントローラーと Webhook による独自のアクセス制御、システムコンポーネント間通信の保護、割り当てノードの制御、秘密情報の管理と GitOps のための Secret 管理を扱い、第 6 章は Network Policy、Istio、SPIFFE によるアプリケーションの認証、クラスター外部との通信の保護で締めくくります。

コンテナのセキュリティを層ごとに分けて考える理由

コンテナは仮想マシンのように独立したカーネルを持たず、ホストのカーネルを共有しながら Namespace と cgroup といったカーネルの機能でプロセスを隔離し、使える資源を制限しています。そのため、コンテナの中で root として動くプロセスや、必要以上のケーパビリティを持つプロセスは、ランタイムやカーネルに脆弱性があったときにホストへ影響が及ぶ経路になりえます。一方で、イメージに含まれるライブラリの脆弱性はビルドの時点で、クラスターの API に対する権限の付けすぎは認可の設定で、Pod どうしの不要な通信はネットワークの層で、それぞれ別の手段で抑える必要があります。どこか一か所を固めれば済む話ではなく、層ごとに 最小権限の原則 を当てはめていく作業になる点が、コンテナのセキュリティの難しさです。本書の目次がランタイム、イメージ、クラスター、通信の順に章を分けているのは、この層の区切りに沿って点検の範囲を整理する並びと読めます。第 6 章で扱う Istio のような サービスメッシュ と SPIFFE は、ネットワークの位置ではなくアプリケーションの身元で通信を許可するという考え方を、Pod 間通信に持ち込む道具です。

2020 年 2 月刊の前提と、読む前に必要な知識

本書は 2020 年 2 月の刊行で、記述は刊行時点の Docker と Kubernetes、周辺ツールを前提としています。Kubernetes は版を重ねるごとに機能の追加や廃止があり、セキュリティ関連の仕組みも例外ではないため、設定例を手元のクラスターへ適用する前に、使っているバージョンの公式ドキュメントと照らし合わせる読み方が向いています。一方で、層ごとに脅威を整理し、それぞれに対応する手段を選ぶという考え方そのものは、バージョンが変わっても通用します。第 1 章のおさらいは簡単なものなので、Dockerfile の記述やコンテナの起動、Kubernetes の Pod や Service といった基本的なリソースの扱いには、あらかじめ慣れておく必要があります。コンテナそのものを初めて学ぶ段階であれば、入門書で基本操作を固めてから読むほうが内容を活かせます。セキュリティ分野の中で自分の課題に合う本を探し直したい場合は、セキュリティ本ガイド も参考になります。

著者の 3 名は、刊行時の版元の紹介によれば、Moby や BuildKit、containerd のメンテナ、Kubernetes 管理基盤の研究開発、Zero Trust Network やサービス認証の研究開発と、それぞれ本書の扱う層に関わる仕事をしてきた人たちです。コンテナで本番のサービスを運用していて、既定の設定のまま動かしている箇所がどこにあるのかを洗い出したい人、クラスターの権限設計や Pod 間通信の制御をどこから手を付けるべきか迷っている人にとって、ランタイムから通信までを章ごとの点検項目として通せる本書は、運用を見直す際の手元の参照先として元が取りやすい一冊です。

言及した記事 (7 件)

この本は技書デッキのカードです (備え 14 / 気力 +5) 図鑑でこの本を見る

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: