AWS Day 1 AWS運用のベストプラクティスのためにセキュリティ面でできること
2019-11-13
azblob://2022/11/11/eyecatch/2019-11-12-aws-day1-security-000.jpg

はじめに

普段はAzureを業務で使用している南條です。
クラウドを扱うエンジニアとして、普段使いのモノ以外のクラウドサービスについても見分を深めたいと思い、AWSの勉強を始めました。
実はこれまでも稀にEC2やLambdaといったサービスを私用したことはあるのですが、まだ本格的に基礎から勉強をしたことがなかったので、資料を探しながら学ぶことにしました。
さて、AWSにおいては、AWSの利用を始めた時にどのような設定を行っておくべきか?という内容をまとめたスライドがAWSから発表されています。
これは、AWSがAWS運用のベストプラクティス集であるAWS Well-Architectedというドキュメントからの抜粋で、特にそのベストプラクティスを満たすための、利用開始時に最低限行っておくべきことについてまとめてあるものです。
今回は、その中でも特に興味があるセキュリティの分野について個人的に気になった項目の概念について纏めたいと思います。

ルートユーザーにはMFAを設定する!

AWSにはルートユーザーとIAMで設定するロールベースのユーザーの概念があり、初期状態では外部からどちらも同じようにパスワードとユーザーIDでサインインできてしまいます。
なので、ルートユーザーのアカウントは外部から不正にサインインされることのないように厳重に管理する必要があります。
特に、MFAを設定することで、パスワードとユーザーIDのほかに、MFA用のアプリケーション等を利用した認証も行うことができるようになり、ルートユーザーの安全性を高めることができます。

サービスを使用する際はIAMで作成したユーザーを使う!

しかし、このルートユーザーはアカウントの作成、削除から課金形態の変更まで、そのユーザーのAWSの利用の仕方のコアな部分まで設定できてしまうため、このユーザーを普段使いのユーザーとして使用することは推奨されていません。
なので、代わりにIAMというユーザーのアクセス権を制御したりユーザーにロールを割り当てたりするサービスを利用して作成されたユーザーを用いてサインインし、AWSのサービスを使用することが推奨されています。
特に、ユーザーの権限はそのユーザーが必要とする最低限のものに限定することでユーザー情報が窃取された場合や内部犯行などによる被害を抑えることができます。
また、それでも業務の都合等で強い権限を持たせることが必要になった場合は、そのユーザーのサインインにMFAを適用することでユーザー情報窃取に対する安全性を高めることも有効です。

AWSユーザーの操作ログを残すよう設定しよう

AWSで残すように設定できるログにはさまざまな種類があり、例えばAmazon CloudWatchはリソースやパフォーマンスに関するログ、AWS CloudTrailはIAMで管理しているユーザーの操作のログ、VPCフローログはVPCのネットワークのトラフィックに関するログを取得できます。
こういったものを必要に応じて使い分けることで、インシデント発生時にその発生原因を調査するのに役立ちます。
特にCloudTrailで取得できるログは、AWS内で誰が何をしたかを示すログなので、優先度は特に高いと考えます。
しかし、これらはどれも有効化して保存先のバケットを用意してやらなければ利用することができません。
AWSの利用を始めた際に監視が必要な要件があれば、忘れずに設定するようにしましょう!

さいごに

今回は、AWSから出されている資料である「Day 1 with Amazon Web Services」の中で触れられている、セキュリティ面の対策について見てみました。
こうしてAWSの機能を見ていると、普段Azureを使っている身としてはこの機能のAzure版は何だったか等、考えることも多くありました。
これからも定期的にAWSにも触れ、クラウドサービスの知見を深めて運用や開発に生かして行きたいと思います。

参照: Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと