とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど
読者登録と各種SNSのフォローもよろしくお願いいたします。

AWSアクセスキーの使用を検出して通知する方法

セキュリティ上の理由から、AWSマネジメントコンソールへのログインイベントを、メールやSlackに通知することはよくありますよね。現在ではAWS User Notificationsを使えば、簡単に実現できます。

それとは別に、アクセスキーの使用を検出したいことってないでしょうか? 筆者はありました。というわけで備忘録がてら、簡単に手順をまとめておきます。

APIの呼び出しを追跡するためのCloudTrailと、通知を送信するためのSNSトピックが必要ですので、あらかじめ作成しておいてください。注意点として、Trailの管理イベントには「書き込み」を指定しておいてください。

SNSトピックは、AWS Chatbotを経由してSlackに通知することにしました。こちらの設定方法は省略します。

EventBridgeを開き、ルールを作成します。ルールタイプは「イベントパターンを持つルール」です。

イベントソースは「その他」を選択します。

JSONでルールにマッチするイベントパターンを記述します。検出するアクセスキーは、リスト内に複数列挙することができます。

ターゲットタイプは「AWSのサービス」を選択し、あらかじめ作成しておいSNSトピックを選択します。

これで該当のアクセスキーが使用された際に、通知が飛ぶようになります。

なお検出できるのは、管理イベントのみとなります。例えばS3であれば、データイベントであるGetObject等は通知の対象になりませんが、管理イベントであるCreateBucketであれば通知されます。

稀にしか起こらないコンソールログインとは異なり、APIの呼び出しをすべてキャッチしてしまうとエラいことになるため、通常であればこんなことをする必要はないでしょう。ですが「稀にしか使わないんだけど、消すわけにもいかないアクセスキーがあって、使われたタイミングを知りたい」「変なところで使われてないか検出したい」みたいな時に、もしかしたら覚えておくと役に立つかもしれません。