プログラマでありたい

おっさんになっても、プログラマでありつづけたい

AWSのアカウントセキュリティ本を書きました #技術書典

2020年2月29日の技術書典8に発表予定だったAWSのアカウントセキュリティ本こと、『AWSの薄い本Ⅱ アカウントセキュリティのベーシックセオリー』の執筆が完了し、BOOTHで販売開始しました。

f:id:dkfj:20200323084651j:plain

内容

 書名のとおり、セキュリティがテーマです。そしてただのセキュリティを題材にすると、いろいろな方面からまさかりが飛んできそうなので、AWSのアカウントセキュリティと限定しています。で、アカウントセキュリティとはなんぞやという話ですが、前作ではAWSを扱う上での認証認可のサービスであるIAMをテーマにしていました。ここをしっかりしていると、ことAWSのアカウントまわりという点では6〜7割くらいはカバーできているのではと思っています。一方で、長く使っていると気が付かぬ穴や、複数人で使って誰かがやらかす人も出てくる可能性があります。この辺りを仕組みとしてカバーできるようにしようというのが、今回のアカウントセキュリティ本です。

構成

 構成としては、8章構成です。1章でアカウントセキュリティの説明と、AWSでセキュリティを考える際はどういった領域があるのかの分類をしています。2章はガードレール設計としてAWSのControl Towerの説明をしています。ここで、AWSが目指している方向性を見てもらった上で、以降で自分のアカウントにどのように設定していけばよいのかの解説が続きます。
 3章は主要なAWSサービスの説明をし、4章でチュートリアルとしてAWS Organizationsを使って、2アカウント構成での設定をしています。はい。マルチアカウント構成にしています。当初は予定なかったのですが、アカウントセキュリティを語る上で、Organizationsのサービスコントロールポリシー(SCP)は外せないという判断に至りました。個人ユースでマルチアカウントとドン引きされる可能性を恐れましたが、ここは敢えてマルチアカウント構成です。書いてみた感想としては、もう個人でもマルチアカウント構成でやった方がよいのじゃないかなと思うようになりました。その理由が、OrganizationsとCloudFormation StackSetsの組み合わせです。
 5章のテーマががCloudFormationです。ここはサラッと終わらせるつもりだったのですが、執筆途中に前述のOrganizationsとCloudFormation StackSetsが出てきたので、再びチュートリアルを含めて書いています。この組み合わせの何が素晴らしいかというと、OU傘下に入れば自動的にCloudFormation StackSetsを走らせるということが出来るようになったことです。セキュリティ設定は、どこかに穴があればそこからつけこまれます。人間は必ずミスをするので、繰り返しの作業には向きません。じゃあどうすればよいのという解答に、OrganizationsとCloudFormation StackSetsの組み合わせです。これ本当に素晴らしいです。
 6章・7章が書名のタイトルからいくとメインのコンテンツになる、セキュリティと運用の設計の考え方です。ここについても、どういった切り口で解説するのがよいか悩みました。マニアックな話の路線を踏襲するのであれば、具体的な設計・設定集になるのですが、今回はもう少し考え方の方に重きをおきました。そうした時に、じゃあ何を拠り所にすべきかという点で、NIST サイバーセキュリティフレームワークのコアとAWS Well-Architected Frameworkを中心に解説するというスタイルに落ち着きました。賛否あるとは思いますが、まず読んでいただければと思います。
 最後の章はまとめです。それぞれの章のポイントと次回作ですべきことを書いています。マルチアカウント管理です。

次回作

 次回作としては、前々からの宣言通りAWSのマルチアカウント管理を書く予定です。ただSecurity HubやOrganizationsのSCP周りは既に書いているので、次はOrganizationsのOUの構造とかSSO周りを中心に薄くまとめる予定です。
 それ以外に、今回はあまり設定まわりのところを書けなかったので、マニアックな話としてConfig RulesとCloudFormationをそれぞれ独立して書いてもよいかなと思っています。いつ書くかが問題ですが。。。

技術書典8のサークル

 「チームになった佐々木です」というふざけたチーム名で出していましたが、他のメンバーはしっかりと書いて、好評を博しています。技術書典8で発表された中で、ベスト8に全員入っているという快挙です。どれも良い本なので、ぜひ見てみてください。

f:id:dkfj:20200323065655p:plain

booth.pm

booth.pm

booth.pm

まとめ

 今回は特に難産で疲れました。その分、執筆を通じて私自身も随分レベルアップできたかと思います。査読として周りの人に読んでもらうと、AWSでこんな事ができるなんて知らなかったという声が沢山ありました。
 AWSはどんどんと新しく便利な機能が出てきています。それを自分ひとりで追い続けるのは大変です。そういった人の手助けになれるような1冊になれればよいなと思っています。

AWS Organizations × CloudFormation StackSetsの組み合わせが素晴らしい
AWSのアカウントセキュリティ本を書いて気がついた、これからのセキュリティ対策

目次

はじめに
 本書の目的
 対象読者
 本書で得られること
 本書で得られないこと
 お問い合わせ先
 免責事項

第1章 AWSアカウントセキュリティ
1.1 AWSのセキュリティとサービスの概念図
 AWS上に構築するシステムのセキュリティ
 AWSアカウント自体の管理(IAMの設計・運用)
 セキュリティを維持管理するための施策
1.2 責任共有モデル
1.3 AWS上に構築するシステムのセキュリティ
1.4 AWSアカウントの管理
1.5 セキュリティを維持管理するための施策
1.6 マルチアカウント管理

第2章 ガードレールという設計と思想
 2.1 Control Towerの全体像
 2.2 ガードレールの設計と思想
 2.3 予防と検知の実体

第3章 AWSのセキュリティサービス
 3.1 NISTサイバーセキュリティフレームワーク
  CSF コア
 3.2 AWSのセキュリティサービスの全体像と対象領域
 3.3 CloudTrail
  CloudTrailの注意点
  CloudTrailのログ集約
 3.4 Config
  Config
  Config Rules
 3.5 GuardDuty
  GuardDutyの分析対象
  脅威の重要度と通知・対処
 3.6 Security Hub
  Security Hubの集約対象
 3.7 AWS Organizations
  AWS Organizationsの構成要素
  組織単位(OU)と階層構造
  サービスコントロールポリシー(SCP)
  SCPとIAMのアクセス許可の境界
 3.8 Trusted Advisor

第4章 サンドボックスアカウントの作成のチュートリアル
 4.1 サンドボックス環境の要件
 4.2 サンドボックス環境の全体像
 4.3 設定の流れ
 4.4 Organizationsの設定
  Organizationの作成
  サンドボックスアカウントの作成
  組織単位(OU)の作成
  OU配下にアカウントを移動
 4.5 マスターアカウントでの設定
  設定用のIAMユーザー作成
  IAMのアクセスアナライザーの設定
  組織に対するCloudTrailの設定
  Configの有効化
  Configのアグリゲータの設定
  Security Hubの有効化
 4.6 サンドボックスアカウントの設定
  Organizationsで作成したAWSアカウントへのログイン
  設定用のIAMユーザー作成
  監視・監査ログの収集と集約
 4.7 問題の検知と通知
  セキュリティグループの全開放を検知するConfig Rule
 4.8 問題検知時の復旧
  SSMで利用するIAMロールの作成
  自動修復の設定
  修復の確認
 4.9 アカウントのサンドボックス化
  サービスコントロールポリシー(SCP)の有効化と設定
  禁止行為を抑制するポリシーを作成する
  サンドボックスアカウントにポリシーを適用する

第5章 CloudFormationを利用した構成管理
 5.1 CloudFormationで管理する理由
 5.2 CloudFormationで管理する範囲
 5.3 複数アカウントに適用するCFn StackSets
  CFn StackSetsとOrganizationsの連携
 5.4 StackSetsのチュートリアル
  StackSetsの作成
  テンプレートの選択
  StackSetsの権限設定
  デプロイターゲットの設定
  動作確認
 5.5 テンプレートの設計
  サービスのセットアップとルール設定の分離
  アカウント共通設定と個別設定の境界
  CloudFormationの具体的な構造
 5.6 CloudFormationのまとめ

第6章 アカウントセキュリティの設計の考え方の原則
 6.1 CSFコアとAWSの設計原則にみるセキュリティ
 6.2 AWSのセキュリティ ベストプラクティス
  アイデンティティ管理とアクセス管理
  発見的統制
  インフラストラクチャ保護
  データ保護
  インシデント対応
 6.3 セキュリティ設計のまとめ

第7章 障害の検知と復旧の考え方
 7.1 AWSの運用の原則を知る
 7.2 AWSのサービスを使った検知と復旧
 7.3 統合サービス Security Hubの位置づけ
 7.4 Security Hubと個別検知の使い分け
 7.5 監視と検知
 7.6 通知
 7.7 対応と復旧
  AWSの自動復旧のパターン
 7.8 Security Hubの活用

第8章 まとめとマルチアカウント管理への道
 8.1 セキュリティ設計と運用
 8.2 Organizationsのサービスコントロールポリシー
 8.3 Security Hubの導入
 8.4 マルチアカウント管理への道
 8.5 まとめ

あとがき
 著者紹介
 既刊一覧