『クラウド破産を回避するAWS実践ガイド』 を技術書典8で頒布します #技術書典

クラウド破産を回避するAWS実践ガイド』という本を、技術書典8「2日目の3/1」に頒布します。 AWSではアカウントを作成すると、あらゆることができるようになります。 しかし、いきなりクラウドの世界に放り出され、たいしたガイドはありません。 そこで本書ではAWSアカウント作成後に、すべての人が実践すべきプラクティスを体系的に解説し、ハンズオン形式で学びます。

techbookfest.org

概要

クラウド破産」はAWSなどのクラウドサービス利用者が、意図せず高額請求されることを指す俗語です。 AWSから数十万〜数百万円の請求がきた、みたいな記事を見かけたことがある人も多いでしょう。 この手の記事は、我々AWS利用者を震え上がらせるには十分です。

そこで本書ではAWS初級者・中級者向けに、クラウド破産を回避する方法を学びます。 ルートユーザーのパスワード管理からはじまり、CloudTrail・Config・GuardDuty・Access Analyzer・Security Hubなどの主要なセキュリティサービスを解説します。 実運用で使えるように、メールやSlackによるアラート通知の仕組みも構築します。 またgit-secretsやAWS Vaultを導入し、クラウド破産の原因になりやすいアクセスキーを保護します。 最後にAWSの学び方を学び、継続的に知識をアップデートする方法を紹介します。

対象読者

クラウド破産を回避するAWS実践ガイド』は、次のような人にとって特に有益です。

本書は理論より実践を重視しており、さまざまなAWSのサービスをハンズオン形式で学べます。 すべて詳細な手順が記載されているので、本を読みながら手を動かすともっとも学習効果が高いでしょう。

この本で学べること

いまのところ本書は6部構成で32章あります。

第I部「基礎知識」

クラウド破産とAWSに関する基礎知識を学びます。 第I部は本書を読み通すために必要な前提知識を整理します。

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

パスワードマネージャーによるパスワード管理やMFAの導入といった基本からスタートします。 続いてIAMや請求管理、AWS Budgetsについて解説します。 この第II部はすべてのAWS利用者が実践すべきプラクティスが登場します。

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

CloudTrail・Config・GuardDuty・Access Analyzer・Security Hubを導入し、問題の予防と速やかな検知を実現します。 見逃されやすいS3ログバケットの設計や、AWS Artifactによる準拠法の変更もあわせて解説します。 第III部ではゲートキーパーからガードレールへシフトするための主要技術が登場します。

第IV部「アラートの通知」

第III部で紹介したセキュリティサービスを導入するだけでは不十分です。 タイムリーに問題を把握するにはアラート通知が必要不可欠です。 そこでSNSを中核に、メールやSlackによるアラート通知の仕組みを実装します。 第IV部ではCloudTrail Insightsやベータ版のChatbotなどの変わり種も登場します。

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

クラウド破産でもっとも被害が大きくなるのは、認証情報が漏えいしたときです。 自分でGitHubのパブリックリポジトリに、アクセスキーをコミットしてしまう事故はあとを絶ちません。 そこで第V部では最初にgit-secretsを導入し、この事故を防止します。 次にAWS Vaultによりアクセスキーを暗号化するとともに、AWSマネジメントコンソールへのサインインをアクセスキーで行える環境を構築します。

第VI部「学び方を学ぶ」

AWSは人気も知名度も高く、Web上にもたくさんの情報があふれています。 しかし情報量の多さは、初学者を惑わせます。 そこで第VI部では書籍やWebサイトのオススメを紹介します。 あわせてベストプラクティスを提示し、学習効率を最大化します。

目次

第I部「基礎知識」
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.3 高額請求の免責をあてにしない

第II部「AWSアカウントの保護」
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.2.1 ルートユーザーによるサインイン
        4.2.2 ルートユーザーのパスワード変更
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 コストエクスプローラー
        8.5.1 コストエクスプローラーの有効化
        8.5.2 コストエクスプローラーの使い方
9章 AWS Budgetsによるコスト管理
    9.1 AWS Budgetsとは
    9.2 AWS Budgetsの設定
    9.3 予算の確認とアラートメール
10章 登録情報の最新化
    10.1 登録情報の用途
    10.2 連絡先情報の最新化
    10.3 代替の連絡先の最新化
    10.4 マーケティングメールの無効化

第III部「ガードレールの構築」
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 証跡ログの確認
    12.5 CloudTrailの活用方法
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 コンプライアンス標準の確認
18章 AWS Artifactによる準拠法の変更
    18.1 AWS Artifactとは
    18.2 AWS Artifactによる契約変更

第IV部「アラートの通知」
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 CloudWatch Logsメトリクスフィルター
    21.3 CloudWatchアラーム
    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 異常なアクティビティの通知
    24.5 CloudTrail Insightsのテストは難しい
    24.6 GuardDutyとの違い

第V部「セキュアなローカル環境」
25章 AWS CLIによるオペレーション
    25.1 AWS CLIとは
    25.2 アクセスキー
        25.2.1 アクセスキーとは
        25.2.2 アクセスキーの払い出し
    25.3 AWS CLIのセットアップ
        25.3.1 AWS CLIのインストール
        25.3.2 AWS CLIの設定
        25.3.3 AWS CLIの設定ファイル
        25.3.4 AWS CLIのプロファイル
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 aws-vault exec
        27.4.2 aws-vault list
        27.4.3 aws-vault remove
        27.4.4 aws-vault login
        27.4.5 aws-vault rotate
        27.4.6 aws-vault --help-long
    27.5 Keychainのパスワード確認頻度の低減
        27.5.1 Keychain locked
        27.5.2 Application access to a specific keychain
28章 パスワードレスサインイン環境の構築
    28.1 パスワードレスサインイン環境の設計
    28.2 IAMロール
        28.2.1 IAMロールの作成
        28.2.2 AssumeRole
        28.2.3 プロファイルの設定
        28.2.4 サインインの確認
    28.3 IAMユーザーの権限最小化
        28.3.1 PasswordLessAccessポリシーの作成
        28.3.2 PasswordLessグループの作成
        28.3.3 IAMユーザーのグループ設定変更
        28.3.4 パスワードの無効化
        28.3.5 アクセスキーのローテーション

第VI部「学び方を学ぶ」
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 クラウド設計原則
        31.1.2 5つの柱
    31.2 IAMベストプラクティス
        31.2.1 実施済みの項目
        31.2.2 一般的なセキュリティ項目
        31.2.3 AWS固有のセキュリティ項目
32章 AWSサポートを上手に活用する
    32.1 サポートプラン
    32.2 技術的な質問の心得
    32.3 AWSアカウントの侵害が疑われる場合
付録 巨人の肩の上に乗る

書いてる人

アプリケーションアーキテクチャ設計とドメイン駆動設計が得意なSREです。 著書は3冊あり、累計で3,500部以上の頒布実績があります。(購入してくださった方、ありがとうございます!

本のクオリティの参考に、昔書いたQiitaの記事のリンクも貼っておきます。 最低でもこれ以上のクオリティにはなるので、参考にしていただければ幸いです。

頒布情報

クラウド破産を回避するAWS実践ガイド』は、3/1に「Day2き20」にて頒布します。

f:id:tmknom:20200202223408j:plain

また技術書典8は2/29と3/1の2日間開催です。

  • 日程
    • 1日目 2020/02/29 (土) 11:00〜17:00
    • 2日目 2020/03/01 (日) 11:00〜17:00
  • 場所
  • 料金
    • 一般入場は11:00~13:00の間、有料です(詳細は後日発表とのこと)
    • それ以降は無料で入場できます

techbookfest.org

おわりに

頒布部数の参考にしたいので、買いに行こうかなって思った人はぜひチェックリストに追加していただけると嬉しいです。 それでは、当日お会いできることを楽しみにしています!

techbookfest.org