『クラウド破産を回避するAWS実践ガイド』を試し読みできるようにしました #技術書典
技術書典 応援祭で頒布している『クラウド破産を回避するAWS実践ガイド』ですが、多くの方に手にとっていただいています。 本当にありがとうございます。
またクラメソさんに書評記事を書いていただける幸運にも恵まれ、Twitterでの反応も良好です。
ただ技術書典と違って立ち読みできなくてツライという声も聞こえるので、遅まきながら試し読みできるようにしました。 ちょっと中身を確認しないとなんとも…という人はぜひ試し読みしていただけると嬉しいです。
試し読みコーナー
御託はいいから読ませろーというせっかちな方は↓をどうぞ。 本書は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は意外と知られていないので、試したことがなければぜひ使ってみましょう。
また本書でもっとも複雑かつ面白いのが、AWS Vaultによるサインイン環境の構築です。 AWS Vaultでアクセスキーを暗号化したうえでMFAを必須にしたり、アクセスキーのみでサインインできる設定をしてサインインパスワードの管理を不要にしたり、参照のみ可能な状態でAWSを操作したりします。 非常に歯ごたえのある内容ですが、すべての手順を詳細に解説しているのでぜひチャレンジしてほしいです。
第VI部 学び方を学ぶ
本書の中でも異彩を放つのが第VI部です。 AWS自体の学び方をテーマに、独立した部を設けています。 AWSはできることが多岐にわたり進化も早いため、はじめたばかりの人は途方に暮れてしまいます。 そこで第VI部では、
などを学びます。 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アカウントの侵害が疑われる場合
まとめ
まずは試し読みをしてみて、気に入ったらぜひお手にとっていただければ!