『クラウド破産を回避するAWS実践ガイド』を試し読みできるようにしました #技術書典

技術書典 応援祭で頒布している『クラウド破産を回避するAWS実践ガイド』ですが、多くの方に手にとっていただいています。 本当にありがとうございます。

techbookfest.org

またクラメソさんに書評記事を書いていただける幸運にも恵まれ、Twitterでの反応も良好です。

dev.classmethod.jp

ただ技術書典と違って立ち読みできなくてツライという声も聞こえるので、遅まきながら試し読みできるようにしました。 ちょっと中身を確認しないとなんとも…という人はぜひ試し読みしていただけると嬉しいです。

試し読みコーナー

御託はいいから読ませろーというせっかちな方は↓をどうぞ。 本書は6部構成なので、各部から1〜2章ほど面白そうなトコロをピックアップしました。

本書の見どころ

AWSセキュリティに関して網羅的に記載しています。 本書ではAWSアカウント作成後に、実践すべきプラクティスを体系的に学びます。 スクショや図を豊富に用意して、読みながらハンズオンするだけでセキュアな環境になります。 初級者でも読めるように配慮してあるので、AWSをはじめたばかりという人もぜひ読んでみてください。

第I部 基礎知識

クラウド破産とAWSに関する前提知識を学びます。 本文にもあるとおり「クラウド破産」は俗語で、明確な定義がある言葉ではありません。 にも関わらず多くの人が恐れている言葉でもあります。 そこでクラウド破産の事例と原因を説明し、回避戦略について最初に学びます。

第II部 AWSアカウントの保護

AWSをはじめたばかりの人はぜひ第II部を読んでみてください。 すべての手順がスクショ付きで解説されており、とりあえず同じように実践するだけで最低限のセキュリティは確保できます。第II部では、

  • パスワードマネージャーやMFAアプリケーションを使ったルートユーザーの保護
  • IAMユーザーのセットアップとパスワードポリシーの厳格化
  • 請求管理の最適化とAWS Budgetsによる使いすぎのアラート通知
  • 電話番号などの連絡先情報の最新化

などを学びます。 スクショ付きでここまで体系的に説明している資料は見たことがないので、AWSが右も左もわからない人には非常に役立ちます。

また、意外と学ぶ機会が少ないパスワードマネージャーやMFAアプリケーションについても説明しています。 実はパスワードを使いまわしているような人はこの機会に、ぜひこういったツールにも慣れましょう。 この手のコトはやってて当然なのか分かりませんが、もはや誰も教えてくれませんw

第III部 ガードレールの構築

GuardDutyやIAM Access Analyzer、Security Hubなどのセキュリティサービスを触ったことがない人はぜひ第III部を読みましょう。 AWSで本番サービスを運用するならぜひ取り入れたいサービス群を一気に学べます。 第III部では、

  • CloudTrailやAWS Configによるトレーサビリティの向上
  • GuardDutyやIAM Access Analyzerによる問題の兆候の発見
  • Security Hubによる情報の集約とコンプライアンス標準への準拠
  • AWS Artifactによる準拠法の日本法への変更

などを学びます。 AWSは多少使えるようになったけどセキュリティサービスのキャッチアップはできてないな〜という貴方のために第III部は書きました。 コンテナやk8sもいいですが、AWSを使うならセキュリティサービスにも慣れておきましょう。

第IV部 タイムリーなアラート通知

第III部ではAWSのさまざまなセキュリティサービスをサービスを紹介していますが、本番運用を想定するとこれだけでは足りません。 問題が起きそう、あるいは実際に問題が起きたときのアラート通知が不可欠です。 第IV部では、

  • メトリクスフィルターとCloudWatch Alarmsによるルートユーザーの操作アラート
  • CloudFormationによるCIS AWS Foundations Benchmarkのアラート一括作成
  • Security Hubで集約したアラートのChatbotによる通知
  • CloudTrail Insightsによる異常アクティビティ検知

などを学びます。 アラートはただ飛ばせば良いわけではなく、適切な流量になるようにコントロールが必要です。 特にSecurity Hubの通知については、AWS公式ドキュメントにすら記載のない設定例も紹介しています。 ぜひ第IV部を参考に、アラート通知が機能しつづける環境構築に挑戦しましょう。

第V部 セキュアなローカル環境

AWSセキュリティで見落とされやすいのがローカル環境でのアクセスキーの扱いです。 アクセスキーの扱いをしくじってセキュリティインシデントにつながるケースが非常に多いです。 AWS利用者が自ら公開してしまい悪用されるケースはあとを絶ちません。 そこで第V部では、

  • git-secretsによる誤ったアクセスキーのコミットの抑止
  • AWS Vaultによるアクセスキーの暗号化
  • AWS Vaultを活用したパスワードレスサインイン環境の構築

などを学びます。 git-secretsはそれなりに知名度が高いですが、AWS Vaultはご存知でしょうか。 その有用性に反してAWS Vaultは意外と知られていないので、試したことがなければぜひ使ってみましょう。

また本書でもっとも複雑かつ面白いのが、AWS Vaultによるサインイン環境の構築です。 AWS Vaultでアクセスキーを暗号化したうえでMFAを必須にしたり、アクセスキーのみでサインインできる設定をしてサインインパスワードの管理を不要にしたり、参照のみ可能な状態でAWSを操作したりします。 非常に歯ごたえのある内容ですが、すべての手順を詳細に解説しているのでぜひチャレンジしてほしいです。

第VI部 学び方を学ぶ

本書の中でも異彩を放つのが第VI部です。 AWS自体の学び方をテーマに、独立した部を設けています。 AWSはできることが多岐にわたり進化も早いため、はじめたばかりの人は途方に暮れてしまいます。 そこで第VI部では、

  • オススメの書籍やWebサイトの紹介
  • AWSのベストっプラクティスやCIS Benchmarksなどのセキュリティガイドラインの解説
  • AWSサポートとの上手な付き合い方

などを学びます。 AWSでは膨大な情報がネットなどから収集可能ですが、必要な情報を選び出すことは意外と難しいです。 第VI部ではどこから学べばいいかわからないという人のためのヒントが満載です。 少しづつでいいので、AWSの情報収集スキルを向上させましょう。 継続的に学ぶ技術があれば、AWSと付き合いのがもっと楽しくなります。

目次

PDFにも載ってるんですが、一覧性が高いほうが見やすい人もいると思うので改めて目次を掲載します。

1章 クラウド破産
    1.1 クラウド破産の事例
    1.2 クラウド破産の原因
        1.2.1 認証情報の奪取
        1.2.2 異常な兆候の見逃し
        1.2.3 利用者のノウハウ不足
    1.3 クラウド破産の回避戦略
        1.3.1 アカウントの保護
        1.3.2 リスク検知
        1.3.3 正しい知識の習得
2章 AWS
    2.1 責任共有モデル
    2.2 課金モデル
        2.2.1 料金体系
        2.2.2 無料利用枠
        2.2.3 高額請求の免責をあてにしない
3章 AWSアカウント保護戦略
    3.1 AWSアカウント保護のポイント
    3.2 ルートユーザーの保護
    3.3 IAMの利用
    3.4 適切な請求管理
    3.5 正確な登録情報の維持
4章 ルートユーザーのパスワード管理
    4.1 パスワード
        4.1.1 パスワード作成のベストプラクティス
        4.1.2 パスワードマネージャー
        4.1.3 パスワードの自動生成
    4.2 ルートユーザーのパスワード要件
    4.3 ルートユーザーによるサインイン
    4.4 ルートユーザーのパスワード変更
5章 ルートユーザーのMFAによる保護
    5.1 MFA
        5.1.1 認証要素
        5.1.2 AWSにおけるMFA
    5.2 仮想MFAデバイス
        5.2.1 仮想MFAアプリケーションの導入
        5.2.2 仮想MFAアプリケーションのデータバックアップ
    5.3 ルートユーザーのMFA設定
    5.4 MFAの設定確認
6章 IAMによるアクセス管理
    6.1 IAMとは
        6.1.1 IAMユーザー
        6.1.2 IAMグループ
        6.1.3 IAMポリシー
    6.2 IAMユーザーの作成
    6.3 IAMユーザーのMFAによる保護
    6.4 IAMユーザーによるサインイン
7章 パスワードポリシーの厳格化
    7.1 パスワードポリシーとは
    7.2 パスワードポリシーの設定
        7.2.1 パスワードの長さ
        7.2.2 パスワードの文字種
        7.2.3 パスワード変更許可
        7.2.4 パスワードの再利用禁止
        7.2.5 パスワードの有効期限
    7.3 セキュリティステータスの確認
    7.4 Trusted Advisorの確認
8章 請求管理の最適化
    8.1 請求管理のポイント
    8.2 IAMユーザーへの請求情報のアクセス許可
    8.3 通貨設定
    8.4 請求情報のメール通知
    8.5 コストエクスプローラー
9章 AWS Budgetsによるコスト管理
    9.1 AWS Budgetsとは
    9.2 AWS Budgetsの設定
    9.3 予算の確認とアラートメール
10章 登録情報の最新化
    10.1 登録情報の用途
    10.2 連絡先情報の最新化
    10.3 代替の連絡先の最新化
    10.4 マーケティングメールの無効化
11章 ガードレール構築戦略
    11.1 AWSにおけるガードレール
    11.2 トレーサビリティの向上
    11.3 問題の兆候の発見
    11.4 情報の集約とコンプライアンス標準への準拠
    11.5 契約と準拠法の理解
12章 CloudTrailによる証跡管理
    12.1 CloudTrailとは
    12.2 CloudTrailの設定
    12.3 CloudWatch Logs連携
        12.3.1 CloudTrailからCloudWatch Logsへの配信
        12.3.2 CloudWatch Logsの保持期間を変更
    12.4 証跡ログの確認
13章 AWS Configによる構成管理
    13.1 AWS Configとは
    13.2 AWS Configの設定
    13.3 リソース変更履歴の確認
14章 S3による安全なログ管理
    14.1 S3とは
    14.2 ログバケットの設計
    14.3 ブロックパブリックアクセス
    14.4 バージョニング
    14.5 デフォルト暗号化
    14.6 ライフサイクルルール
15章 GuardDutyによる脅威検知
    15.1 GuardDutyとは
    15.2 GuardDutyの設定
    15.3 異常検知の確認と結果サンプルの生成
16章 IAM Access Analyzerによる公開リソースの検出
    16.1 IAM Access Analyzerとは
    16.2 IAM Access Analyzerの設定
    16.3 公開リソースの確認
17章 Security Hubによる集約
    17.1 Security Hubとは
    17.2 Security Hubの設定
    17.3 集約された情報の確認
    17.4 コンプライアンス標準の確認
    17.5 コンプライアンス標準の無効化
18章 AWS Artifactによる準拠法の変更
    18.1 AWS Artifactとは
    18.2 AWS Artifactによる契約変更
19章 アラート通知戦略
    19.1 アラートで大切なたったひとつのこと
    19.2 アラートの実装順序
    19.3 ルートユーザーの操作
    19.4 CIS AWS Foundations Benchmarkのアラート
    19.5 集約したセキュリティイベント
    19.6 通常時とは異なるアクティビティ
    19.7 オオカミ少年には要注意
20章 SNSによるメール通知
    20.1 SNSとは
    20.2 SNSトピックの作成
    20.3 サブスクリプションの作成
    20.4 メッセージのメール送信
21章 ルートユーザーのアラート通知
    21.1 アラート通知の設計
    21.2 メトリクスフィルターの作成
    21.3 CloudWatch Alarmsの作成
    21.4 アラートメールの確認
22章 CloudFormationによるアラートの一括作成
    22.1 CloudFormationとは
    22.2 CloudFormationで作成するアラート
    22.3 CloudFormationの設定
    22.4 作成されたアラートの確認
    22.5 CloudFormationテンプレートに含まれないアラート
23章 ChatbotによるSecurity Hubのアラート通知
    23.1 Chatbotとは
    23.2 Chatbotによる通知設計
    23.3 Chatbot用のSNSトピック作成
    23.4 Security HubとCloudWatch Eventsとの連携
    23.5 Chatbotの設定
    23.6 セキュリティイベントの通知
24章 CloudTrail Insightsのアラート通知
    24.1 CloudTrail Insightsとは
    24.2 CloudTrail Insightsの通知設計
    24.3 CloudWatch Eventsとの連携
    24.4 異常なアクティビティの通知
25章 AWS CLIによるオペレーション
    25.1 AWS CLIとは
    25.2 アクセスキー
    25.3 アクセスキーの払い出し
    25.4 AWS CLIのセットアップ
        25.4.1 AWS CLIのインストール
        25.4.2 対話的なAWS CLIの設定
    25.5 AWS CLIの設定ファイル
        25.5.1 認証情報
        25.5.2 構成情報
26章 git-secretsによるアクセスキーのコミット抑制
    26.1 git-secretsとは
    26.2 git-secretsのインストール
    26.3 既存リポジトリの設定
    26.4 git-secretsの使い方
    26.5 履歴のスキャン
27章 AWS Vaultによるアクセスキーの安全な管理
    27.1 AWS Vaultとは
    27.2 AWS Vaultのインストール
    27.3 AWS Vaultの設定
    27.4 AWS Vaultの使い方
        27.4.1 コマンドの実行
        27.4.2 AWSマネジメントコンソールへのサインイン
        27.4.3 アクセスキーのローテーション
    27.5 Keychainのパスワード確認頻度の低減
        27.5.1 アプリケーションへのアクセス許可設定
        27.5.2 Keychainロック設定
    27.6 AWS Vault実行時のMFA有効化
28章 パスワードレスサインイン環境の構築
    28.1 AWS VaultによるAWS操作の集約
    28.2 パスワードレスサインインの設計
        28.2.1 IAMロールとは
        28.2.2 AWS VaultによるAssumeRoleの実行
        28.2.3 パスワードによる直接サインインの禁止
        28.2.4 MFAの強制
    28.3 AssumeRole先のIAMロールの作成
        28.3.1 Adminロール
        28.3.2 プロファイルの設定
        28.3.3 AssumeRoleの動作確認
    28.4 IAMユーザーの権限最小化
        28.4.1 PasswordLessAccessポリシーの作成
        28.4.2 PasswordLessグループの作成
        28.4.3 IAMユーザーのグループ設定変更
        28.4.4 パスワードの無効化
        28.4.5 アクセスキーのローテーション
        28.4.6 最小化した権限でのAssumeRoleの動作確認
    28.5 参照専用ロール
        28.5.1 ReadOnlyロールの作成
        28.5.2 readonlyプロファイルの定義
        28.5.3 PasswordLessAccessポリシーの修正
        28.5.4 参照専用ロールの動作確認
29章 書籍から学ぶ
    29.1 初学者向け書籍
        29.1.1 Amazon Web Services 基礎からのネットワーク&サーバー構築
        29.1.2 Amazon Web Services パターン別構築・運用ガイド
    29.2 中級者向け書籍
        29.2.1 AWS IAMのマニアックな話
        29.2.2 実践Terraform
        29.2.3 Amazon Web Services 業務システム設計・移行ガイド
    29.3 汎用的な知識を学べる書籍
        29.3.1 絵で見てわかるITインフラの仕組み
        29.3.2 入門 監視
        29.3.3 クラウドネイティブアーキテクチャ
30章 Webから学ぶ
    30.1 公式ガイド
    30.2 公式FAQ
    30.3 APIリファレンス
    30.4 公式ブログ
    30.5 クラスメソッド社ブログ「Developers.IO」
31章 ベストプラクティスを学ぶ
    31.1 AWS Well-Architected Framework
        31.1.1 クラウド設計原則と5つの柱
        31.1.2 セキュリティの柱
    31.2 IAMベストプラクティス
        31.2.1 一般的なIAMベストプラクティス
        31.2.2 AWS固有のIAMベストプラクティス
    31.3 S3ベストプラクティス
        31.3.1 S3での予防的セキュリティのベストプラクティス
        31.3.2 S3のモニタリングと監査のベストプラクティス
32章 セキュリティガイドラインを学ぶ
    32.1 セキュリティガイドラインの種類
    32.2 CIS Benchmarks
    32.3 CIS AWS Foundations Benchmark
        32.3.1 IDとアクセス管理
        32.3.2 ロギング
        32.3.3 モニタリング
        32.3.4 ネットワーキング
        32.3.5 Security Hubサポート外
    32.4 NIST CSF
33章 AWSサポートを上手に活用する
    33.1 サポートプラン
    33.2 技術的な質問の心得
    33.3 AWSアカウントの侵害が疑われる場合

まとめ

まずは試し読みをしてみて、気に入ったらぜひお手にとっていただければ!

techbookfest.org