『クラウド破産を回避するAWS実践ガイド』という本を、技術書典8「2日目の3/1」に頒布します。 AWSではアカウントを作成すると、あらゆることができるようになります。 しかし、いきなりクラウドの世界に放り出され、たいしたガイドはありません。 そこで本書ではAWSアカウント作成後に、すべての人が実践すべきプラクティスを体系的に解説し、ハンズオン形式で学びます。
概要
「クラウド破産」はAWSなどのクラウドサービス利用者が、意図せず高額請求されることを指す俗語です。 AWSから数十万〜数百万円の請求がきた、みたいな記事を見かけたことがある人も多いでしょう。 この手の記事は、我々AWS利用者を震え上がらせるには十分です。
そこで本書ではAWS初級者・中級者向けに、クラウド破産を回避する方法を学びます。 ルートユーザーのパスワード管理からはじまり、CloudTrail・Config・GuardDuty・Access Analyzer・Security Hubなどの主要なセキュリティサービスを解説します。 実運用で使えるように、メールやSlackによるアラート通知の仕組みも構築します。 またgit-secretsやAWS Vaultを導入し、クラウド破産の原因になりやすいアクセスキーを保護します。 最後にAWSの学び方を学び、継続的に知識をアップデートする方法を紹介します。
対象読者
『クラウド破産を回避するAWS実践ガイド』は、次のような人にとって特に有益です。
- 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」にて頒布します。
また技術書典8は2/29と3/1の2日間開催です。
- 日程
- 1日目 2020/02/29 (土) 11:00〜17:00
- 2日目 2020/03/01 (日) 11:00〜17:00
- 場所
- 池袋サンシャインシティ 展示ホールD(文化会館ビル2F)
- 料金
- 一般入場は11:00~13:00の間、有料です(詳細は後日発表とのこと)
- それ以降は無料で入場できます
おわりに
頒布部数の参考にしたいので、買いに行こうかなって思った人はぜひチェックリストに追加していただけると嬉しいです。 それでは、当日お会いできることを楽しみにしています!