前回、Control Towerの削除方法だけ書いていたので、それではあんまりだと思ったのでControl Towerの簡単な紹介とその中核の一つであるガードレールという設計思想を紹介します。
ガードレールという考え方
従来の考え方では、セキュリティを保つためには多少の不便は仕方ないと、セキュリティと利便性とのトレードオフで語られることが多かったです。一方、AWSはガードレールという考え方を提唱し、『ブレーキをかけるのではなく、どんなスピードを出しても安全なセキュリティ』を確保しようという方策に舵を切っています。
利便性とのトレードオフは、Gate(関所)と読んでいます。ガードレールは安全柵ですね。何度かお見せしてたかもしれませんが、関所とガードレールの違いを表した図になります。
ガードレールの実現手段としての予防と検知
では、そのガードレールをどう実現しているのかというと予防(prevention)と検知(detection)です。予防は、事前に想定される危険性を定義して、そこからそもそも逸脱できなくすることです。実装例としては、個人レベルであればIAMに権限を与えないとかがあたります。またAWSアカウントレベルでは、AWS Organizationsのサービスコントロールポリシー(SCP)で制限するなどになります。
予防に対して、検知とはなにでしょうか?検知は、セキュリティやガバナンス上で問題ある可能性がある動作を検出することです。例えば、VPCのネットワークの許可ポートの変更を検知したり、ルートユーザーの利用を検知したりとかが該当します。それだったら、検知じゃなく予防で防げばよいのではと思う人もいるかもしれません。しかし、検知の対象となる動作の大半は、実運用上でも必要なことが多いです。それを一律で防ぐのは難しいということで、検知して問題ないかを確認します。あとは、そもそも危険のある動作を全部洗い出して防ぐのも大変というのもあります。
予防と検知の関係を図でまとめると、次のようになります。
Control Towerでの予防と検知
では、Control Towerでは、予防と検知をどのように実装しているのでしょうか?実は、Control Tower自体には直接的な予防と検知の機能を持ちません。予防はOrganizationsのサービスコントロールポリシー(SCP)で実現し、検知はConfig Rulesで実現しています。Control Towerを有効にすると、自動的にこれらの機能をオンにして初期設定をしてしまうのです。そして、状況を収集するようになるといった感じです。
では、Control Towerが初期設定する設定をみてみましょう。まぁほとんどが予防ですね。ということで、Control TowerがOrganizationsを作るのも納得です。
名前 | ガイダンス | カテゴリ | 動作 |
---|---|---|---|
ログアーカイブの削除を許可しない | 必須 | 監査ログ | 予防 |
ログアーカイブの保存時に暗号化を有効にする | 必須 | 監査ログ | 予防 |
ログアーカイブのアクセスログ作成を有効にする | 必須 | 監査ログ | 予防 |
ログアーカイブへのポリシーの変更を不許可にします | 必須 | モニタリング | 予防 |
ログアーカイブへのパブリック読み取りアクセス を不許可にする |
必須 | 監査ログ | 検出 |
ログアーカイブへのパブリック書き込みアクセス を不許可にする |
必須 | 監査ログ | 検出 |
ログアーカイブの保持ポリシーを設定する | 必須 | 監査ログ | 予防 |
CloudTrail への設定変更を不許可にします | 必須 | 監査ログ | 予防 |
CloudTrail イベントと CloudWatch logs を統合する | 必須 | モニタリング | 予防 |
利用可能なすべてのリージョンで CloudTrail を有効にする |
必須 | 監査ログ | 予防 |
CloudTrail ログファイルの整合性検証を有効にする | 必須 | 監査ログ | 予防 |
AWS Control Tower によって設定された CloudWatchへの変更を不許可にします |
必須 | Control Tower のセットアップ |
予防 |
AWS Config 集約承認の削除を許可しない | 必須 | Control Tower のセットアップ |
予防 |
AWS Control Tower によって設定された AWS Config アグリゲーションへの 変更を不許可にします |
必須 | Control Tower のセットアップ |
予防 |
AWS Config への設定変更を不許可にします | 必須 | 監査ログ | 予防 |
利用可能なすべてのリージョンで AWS Config を有効にする |
必須 | 監査ログ | 予防 |
AWS Control Tower によって設定された AWS Config ルールへの変更を不許可にします |
必須 | Control Tower のセットアップ |
予防 |
EBS 用に最適化されていない EC2 インスタンスタイプの起動を許可しない |
強く推奨 | オペレーション | 検出 |
EC2 インスタンスにアタッチされていない EBS ボリュームを許可しない |
強く推奨 | オペレーション | 検出 |
EC2 インスタンスにアタッチされた EBS ボリュームの暗号化を有効にする |
強く推奨 | データセキュリティ | 検出 |
予防と検知以外のControl Towerの機能
Control Towerを設定すると、SCPとConfig Rules以外にも沢山のサービスの設定をおこないます。ところどころ言及していたOrganizationsの作成はもちろんのこと、組織ユニット(OU)の作成やログやセキュリティ用のAWSアカウント作成まで行います。また、Security Hubを設定したりAWS SSOまで用意します。
それ以外にも、1アカウント1VPCを徹底させるためか、デフォルトのネットワークの作成等も行います。この辺りの一つ一つの機能を解説すると非常に長くなるので、また日を改めて解説します。予防と検知については、技術書典8で発表した、『AWSの薄い本Ⅱ アカウントセキュリティのベーシックセオリー』で詳しく取り上げています。次回、技術書典9でマルチアカウント管理をテーマに1冊書く予定です。それにてIAM本の3部作は完結となります。お楽しみに〜