【新機能】Amazon S3がCloudTrailに対応しました
こんにちは、せーのです。今日はセキュリティ上非常にうれしい新機能が発表されましたのでご紹介します。
S3がCloudTrailに対応
9/1のアップデートでS3のバケットレベルでの操作がCloudTrailにロギングされるようになります。特別な操作は必要なく、CloudTrailをONにしておくだけでS3のバケット作成、削除、アクセス制御の変更、LifeCycleポリシーの変更、cross-region replicationの変更のAPIが記録されます。既にCloudTrailをONにしている人は自動的にS3のAPIも記録されるわけです。便利ですね。
CloudTrailにはCloudWatch Alarmが設定できる
CloudTrailの特徴として特定のAPIを監視してCloudWatch Alarmが設定できます。これによりセキュリティ的に好ましくないAPIが叩かれた場合に即座に通知を飛ばすことができます。 9/1から対象に加わったS3のAPIでももちろん同じことが可能ですので、例えばS3のアクセス制御が無断で変更されたりした場合に通知を飛ばす、等の仕組みを組んでおくことでセキュリティを担保し、コンプライアンスとしてのエビデンスを残すことができます。これは企業としてAWSを使用する際の大きなメリットになります。
やってみる
ではどんな感じかやってみたいと思います。 まずはCloudTrailの設定です。これはとても簡単です。まずマネージメントコンソールからCloudTrailのページにいきます。
新規にCloudTrailを設定します。CloudTrailはAPIを叩いてから15分以内に記録され、そのログファイルは5分ごとに配信されています。もしログファイルの配信も受け取りたい場合はここで選択しておくと良いですね。
CloudTrailの設定はなんとこれだけです。次にS3のバケットを作りましょう。適当な名前をつけたバケットを作成します。
一応何かファイルをアップロードしておきます。ここは別に本筋と関係ないです。
後の実験のためにアクセス制御からアップロードを外します。
次にCloudTrailのログをCloudWatch Logsに配信します。CloudTrailの画面に戻り[CloudWatch Logs]のオプションを選択して任意のバケット名を入力します。既存のS3バケットがあればそれを入力してもOKです。
CloudTrailからCloudWatch Logsへの配信権限をIAMロールで設定します。新規でS3バケットを入力している人は自動的にIAMロールの作成画面に飛びますのでデフォルトのままで作成ボタンを押します。
これでCloudWatch Logsへの配信設定が完了です。
次にCloudWatch Logsから特定のAPIコールを通知する設定をします。CloudWatchの画面に飛び、[ログ]から先程設定したロググループ名のフィルタをクリックします。
フィルタ作成画面から検出したいAPI名をフィルタします。今回はアクセス制御のAPIを取り出したいと思います。フィルタに[PutBucketAcl]と設定します。
フィルタに対してメトリクス名を割り当てます。メトリクス名を任意で入力します。わかりやすい名前が後々便利です。
これでフィルタの完成です。次はこのフィルタに対してアラームを設定します。
アラーム設定画面です。ここでフィルタがカウントされたらメールを飛ばすように設定します。
メールの設定をここで新規にした場合には対象メールアドレスに確認メールが飛んでいるので、メールから確認リンクをクリックして認証しておきます。
さて、これで設定は完了です。先程作成したS3のバケットのアクセス制御を変更してみます。
少し待つとメールが飛んできます。
成功です!
まとめ
いかがでしたでしょうか。最初に設定しておくことでS3もセキュアに扱うことができますね。皆さんも是非試してみてください。
参考リンク
- https://aws.amazon.com/blogs/aws/amazon-s3-update-cloudtrail-integration/