4 ポイント 投稿者 hahafree12 2024-06-01 | 2件のコメント | WhatsAppで共有

これは何ですか?

  • AWS のログイン試行(成功・失敗を問わず)を検知します。
  • AWS 内でリソースが作成されたときに通知を受け取れます。
    • (別途設定した場合)Slack メッセージで通知を受け取れます。(Webhook を利用)
    • Slack 通知を別途設定していない場合は、メールでも通知を受け取れます。(ただし Auto Scaling を積極的に利用している環境では推奨しません)
  • 別途設定していれば、誰が AWS リソースを作成したのか分かるように User タグを自動で付与します。

設定方法

README.md ファイルを参照してください!

  • Terraform で構築する
  • AWS SAM で構築する

どうすれば通知を受け取れますか?

(どちらか一方だけで構いません)

  • Slack の Incoming Webhook を設定し、環境変数に Webhook アドレスを設定します。
  • AWS SNS Topic を設定した後、Topic の購読を設定します。

対応する AWS リソース

コンソールへのログイン活動および各種リソースの作成時にアラートを受け取れます。

  • コンソールログイン
  • IAM (User, Group, Role, Policy, Instance Profile)
  • EC2 (Instance, Security Group)
  • RDS (Cluster, Instance)
  • S3 (Bucket)
  • ElastiCache (Redis, Memcached)
  • EMR (Cluster)
  • Lambda (Function)
  • Redshift (Cluster)
  • ECS (Cluster)
  • EKS (Cluster)
  • DocumentDB (Cluster, Instance)
  • MSK(Managed Streaming for Apache Kafka) (Cluster)
  • MWAA(Managed Workflow for Apache Airflow) (Environment)
  • DynamoDB (Table)
  • ELB (CLB, ALB, NLB, GLB)
  • CloudFront (Distribution)

2件のコメント

 
yangeok 2024-06-05

すでにCloudTrailを有効にしている状態なら、Lambdaとメール通知を送る場合はSNSまで使うだけということですか? 運用コストは100万コールまでは無料なんですよね?

 
hahafree12 2024-06-06

こんにちは。お返事が遅くなりました。

基本的には、CloudTrail の設定をしていない場合を前提として、CloudTrail の有効化 + S3 への保存を想定して作成しました。

CloudTrail を有効にしている場合に Lambda 関数だけを接続する方法については、改善を検討してみます。

基本的には、CloudTrail ログを保存する S3、通知を送る Lambda 関数、メール通知を送る場合は SNS 程度のみを使用します。

この構成に応じて CloudTrail、S3、Lambda、SNS の費用が発生しますが、個人で利用しているアカウントであれば、ほとんど費用は発生しないと思います。(最近、私個人で利用しているアカウントで 1 年以上運用してみた結果、そうでした)

ただし、実際の本番環境で使用する場合は、ログイン通知や Auto Scaling 関連の通知が頻繁に発生します。この場合、多少の費用がかかる可能性があります。

(本番アカウントでは、SNS サービスによるメール通知の有効化はおすすめしません)

ご質問ありがとうございます。今後の改善に活かします。