2023年に実施されたAWS Summit Tokyoの自社ブースで登壇した「初級から上級までセキュアなAWS環境の作り方」の内容です。詳細は以下ブログでも解説しています。 https://dev.classmethod.jp/author/usuda-keisuke/
初級から上級までセキュアなAWS環境の作り⽅AWS Summit Tokyo1
View Slide
2こんにちは、⾅⽥です。みなさん、AWSのセキュリティ対策してますか︖(挨拶
3⾃⼰紹介⾅⽥佳祐(うすだけいすけ)・クラスメソッド株式会社 / AWS事業本部シニアソリューションアーキテクトセキュリティチームリーダーAWS公認インストラクター2021 APN Ambassador2022 APN AWS Top Engineers (Security)・CISSP・Security-JAWS運営・好きなサービス:Amazon GuardDutyAWS Security HubAmazon DetectiveみんなのAWS(技術評論社)Amazon GuardDuty AWS Security Hub Amazon Detective
4アジェンダ0. 軽い前置き1. AWSアカウント単体をセキュアにする2. 組織のAWS環境全体をセキュアにする3. セキュアな環境を維持する
50. 軽い前置き
6みなさんのAWS環境はセキュアですか︖よくあるアマゾン ウェブ サービス(AWS)セキュリティの⼼配• ちゃんとベストプラクティスに沿っているかわからない• AWS環境にどんなリソースがあるか把握していない• 組織内でセキュリティ基準がバラバラ• そもそもセキュリティよくわからんいろんな状況があると思います
7すべてのAWS利⽤者を対象にAWS環境をセキュアにする情報をババっと10分でまとめます
8合わせて読みたいセキュリティ対策はだいたいここに全部あるhttps://dev.classmethod.jp/articles/aws-security-all-in-one-2021/
91. AWSアカウント単体をセキュアにする
10これがセキュアなAWSアカウント
11セキュアアカウントが参考になりますセキュアなAWS設定と実運⽤の例真似していいよ︕無償で最初から設定してます(宣伝)https://dev.classmethod.jp/articles/aws-security-operation-bestpractice-on-secure-account/
12AWS上の証跡管理• AWS CloudTrail• すべての管理イベント• AWS Config• すべてのリソース記録• グローバルリソース記録• S3バケット• ログのライフサイクル3年• SSE-KMSによる暗号化
13AWS上の証跡管理のコツ• AWS Configのグローバルリソース記録は東京リージョンのみ有効化する(全リージョンで⼊れると重複して記録されるため)• ライフサイクル3年は⾃社のログ保持基準に照らし合わせて調整する• WORMを設定すると強⼒
14デフォルトのAmazon S3公開防⽌• AWSアカウントレベルのブロックパブリックアクセスを有効化• ブロックパブリックアクセスはアカウントレベルとバケットレベルがある• アカウントレベルを設定するとAWSアカウント全体で適⽤される• うっかり公開してしまうことを防げる
15デフォルトのAmazon S3公開防⽌のコツ• S3バケットに公開⽤のHTML / CSS/ JavaScriptなどのWeb⽤や画像/動画などの静的コンテンツを配置する場合でもCloudFrontのOriginAccess Control (OAC)を利⽤して配信可能なので、ブロックパブリックアクセスを無効化しない
16Amazon EBSのデフォルト暗号化• Amazon EC2の設定ページから「EBS 暗号化」を有効にする• デフォルトの暗号化キーを利⽤する
17Amazon EBSのデフォルト暗号化のコツ• マルチテナントで様々なライフサイクルのデータを扱う場合は、ライフサイクルに合わせてKMSキーを作成して個別に適⽤するといい(暗号化削除を実施するため)• https://aws.amazon.com/jp/blogs/news/data_disposal/
18パスワードポリシー強化• パスワードの最⼩⻑: 8⽂字• 少なくとも1つの⼤⽂字が必要• 少なくとも1つの⼩⽂字が必要• 少なくとも1つの数字が必要• 少なくとも1つの英数字以外の⽂字が必要• ユーザーにパスワードの変更を許可
19パスワードポリシー強化のコツ• ⼀番理想はIAM Userがいないこと• Okta / OneLoginなどIdPの基盤をAWSに限らず全体で使⽤し、ID管理とアクセス制御を集約するとベスト• 次点として1つのAWSアカウントにだけIAM Userを作るJumpアカウント⽅式も検討する• Assume Roleしないと権限がないため、万が⼀不正に利⽤されても何もできない
20デフォルトVPCの削除• 明⽰的な意図に合わせてVPCリソースを作成し、利⽤するためデフォルトVPCを削除• 既存環境であれば削除は慎重に
21デフォルトVPCの削除のコツ• 特にデフォルトセキュリティグループが危険なので利⽤しない• 合わせて、利⽤しているVPCのデフォルトセキュリティグループにあるインバウンドとアウトバウンドのルール両⽅とも削除する
22セキュリティサービス有効化 + チューニング• 有効化• AmazonGuardDuty• AWS Securityhub• AmazonDetective• IAM AccessAnalyzer
23セキュリティサービスのコツ• 集約可能なら複数AWSアカウントをまとめて集約する• 運⽤に組み込む
24セキュリティアラート整形 + 通知設定• Amazon GuardDuty / AWSSecurity Hub / IAM AccessAnalyzerからの通知を運⽤しやすい場所(チャットなど)に送る• ⾒やすく整形する
25セキュリティアラート整形 + 通知設定のコツ• 関係者が多い場所に通知してみんなに⾒えるようにする• 関係者の当事者意識が上がり、通知を減らし、セキュリティスコアを上げることがモチベーションに繋がる
26整形例: ⽇本語をできる限り⼊れる
272. 組織のAWS環境全体をセキュアにする
28マルチアカウント管理のマネージドサービスAWS Organizations• マルチアカウント管理のサービス• 各AWSサービスと連携して集約管理AWS Control Tower• AWS Organizationsを活⽤したマルチアカウント管理のベストプラクティスを⾃動構成
29マルチアカウント管理の⽐較AWS Organizations AWS Control Tower管理機能 最⼩ ID集約・ログ集約・ガードレール・ベンディングマシーン・その他⾃由度 ⾃由 ある程度決められた構成おまかせ度 全部⾃前 ベストプラクティスに沿っておまかせ機能追加 設定は⾃前 マルチアカウント管理に必要な機能が追加される、ポチッと適⽤可能コスト $ $$
30AWS Control Towerの構成• AWSのマルチアカウント管理ベストプラクティスに沿った構成が⾃動で展開される• 全体の管理⽤に3つのアカウントが⽤意される
31AWS Organizationsを使う︖• 使わなくてもマルチアカウント管理は可能• でも使えば各AWSサービスの集約や集中管理が簡単にできるしAWS Control Towerも使える• AWS IAM Identity Center(旧AWS SSO)でシングルサインオンを実現可能(使わなくてもサードパーティ連携やJumpアカウント⽅式など、別の⼿法も検討はできる)• AWS CloudFormation StackSetsで全AWSアカウントに設定を展開しやすい(使わなくてもセットアップすればできる)• 使えるなら使うほうがいい
323. セキュアな環境を維持する
33セキュアな環境の維持に必要なもの• ⾃動化されたセキュリティ運⽤の仕組み• 組織全体の利⽤者に⾏き渡るセキュリティ教育• 組織のセキュリティ対策の⼀環としてのAWSセキュリティ対策• 経営層のコミット• 組織全体へのガバナンス適⽤と運⽤をするチーム
34維持運⽤の要CCoEを組織しAWS利⽤ガイドラインを策定するCCoE AWS利⽤ガイドライン
35CCoEの例
36合わせて読みたいCCoEの1つの実装例⽴ち上げ過程やどのような⽅針で推進したか解説されていますhttps://dev.classmethod.jp/articles/shionogi-devshow/
37合わせて読みたいクラウド推進する組織に必要なことが書いてある責任者も担当者も必読https://dev.classmethod.jp/articles/bookreview-ccoe-best-practice/
38ガイドライン作成はCCGが使えるClassmethod Cloud Guidebook (CCG)ガイドラインサンプルなどアリ〼例 例
39合わせて読みたいAWSアカウントベースライン /AWS SecurityHub ガイド /ガイドラインなど利⽤⽅法や内容などはこちらhttps://dev.classmethod.jp/articles/how-to-use-ccg/
40まとめ
41セキュアなAWS環境の作り⽅とは•AWSアカウント単体と•マルチアカウント管理と•組織づくりと運⽤を頑張る
42