2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

多数のAWSアカウントからセキュリティ上の問題を集権的に検知する仕組み

Posted at

200以上あるアカウントのセキュリティに関する運用状況を可視化したい

200以上のアカウントを運用している仕事をしていますが、以下のような問題に直面していました。
どのアカウントにも同じようなリソースを立てていますが、運用していくうちに個別の設定が入ってしまうことが多々あります。
中にはセキュリティ的に問題のある設定だったり・・・・・・

リソースの設定状況が把握しきれない

標準的な設定をしていますが、実際にはヒューマンエラーで入っていなかったり変わってしまっていたりします。
セキュリティ的に問題のある設定が入っている、あるいは必要な設定が入っていないことをアカウント横断で監視する仕組みを必要としていました。

セキュリティに関するイベント発生を把握したい

rootユーザーでのログインや、セキュリティグループに対する変更について、発生したことをアカウント横断で検知する仕組みを作って、野放しにしないようにしたいです。

実現方法

EventBridge、ConfigルールをStacksetsで配る

前回の記事でご紹介したConfigルールや、イベント検知用のEventBridgeを各アカウントにStacksetsで配ります。
これでリソース設定のルール違反やセキュリティに関するイベントを検知できます。

クロスアカウントでEventBridgeを起動して単一のSNSトピックで通知する

検知はすべてのアカウントで個別に行いますが、SNSトピックは単一のアカウントで実行します。(親アカウントと呼んでいます)
SNSトピックを個別に作らない理由は「サブスクリプションの確認が1回で済む」、「SNSトピックの料金を一つのアカウントに寄せたかった」です。

下記の図のように子アカウントのConfigルールの違反検知で子アカウント(前述Stacksetsの対象)でEventBridgeが起動します。
子アカウントのEventBridgeはイベントを親アカウントのEventバスに送信して、親アカウントのEventBridgeがSNSトピックを実行します。

cross-account-notification-architecture.png

用途によって通知先を分けておく

通知は人間が見て対応することを想定しているので、レベル感によって通知先を分けます。
以下のような分類にして、今すぐ対応が必要なものがすぐ見分けられるようにします。

  • 今すぐ対応が必要なセキュリティ上の危機 ex. SSHポートがインターネット開放されている
  • 正規の変更か確認したい ex. セキュリティグループのルール変更があった
  • 標準の設定から外れている ex. ELBアクセスログが標準通りに設定されていない

できたこと

以下のようなセキュリティ上の問題を200以上のアカウントから即通知

  • rootユーザーでログイン
  • rootユーザーのMFAが無効の場合
  • VPCフローログが無効になっている
  • ELBアクセスログが標準通りの設定でない
  • ELBがTLS1.2未満のアクセスを許可している
  • セキュリティグループルールに変更があった
  • SSHなど特定のポートが0.0.0.0/0に対して開放されている
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?