【セッションレポート】AWSアカウントのセキュリティについて知っておきたい15のこと(原題:15 things I wish I knew about securing my AWS account)

記事タイトルとURLをコピーする

はじめに

この記事は re:Invent 2020 で行われた「15 things I wish I knew about securing my AWS account」 セッションのレポートです。

reinvent.awsevents.com

本セッションでは、AWSアカウントのセキュリティを向上させるための Tips を15項目に分けて語られていました。

セッションタイトル 15 things I wish I knew about securing my AWS account(re:Invent 2020にサインインするとこちらのリンクからセッション概要のページが見れます。)
スピーカー Andrew Brown, Founder - ExamPror

セッション概要

1. Enforcing MFA with YubiKeys and an AWS Config Rule

IAMユーザーの MAF (多要素認証) として Yubikey を利用します。
MFA のデバイスとしてスマートフォンがよく使われますが、Yubikey はアプリの使い勝手が悪かったりバッテリー切れを起こすといったことは無く、PCに接続してワンタップで認証することができます。

f:id:swx-takahiro-yamada:20201206204303p:plain

さらに、Config Rules を使って MFA を有効化していないIAMユーザーを監視します。
ユーザーが MFA を有効化していない場合、ユーザーが MFA を有効化するまで、そのアカウントをロックするように設定します。

f:id:swx-takahiro-yamada:20201206204413p:plain

3. beyond 90 days with CloudTrail

CloudTrail は、AWSアカウントで発生したアクティビティログを記録するサービスです。
デフォルトでは90日前までのログしか保存しないため、何かインシデントが発生した場合の調査には不十分かもしれません。

f:id:swx-takahiro-yamada:20201206212136p:plain

90日を超えてアクティビティログを記録したい場合の設定方法は簡単です。
証跡に名前を付け、すべてのアカウントで有効にし、誰もログを改ざんできないようにして、さらにログの暗号化を有効にした上で S3 に保存するだけです。

f:id:swx-takahiro-yamada:20201206212559p:plain

5. Exploring access with CloudTrail and Amazon Athena

CloudTrail で保存したアクティビティログは Athena を利用することで、該当のログを SQL で検索することができます。
(Athena を利用することで、ログを探し当てるまでの時間を短縮できます)

f:id:swx-takahiro-yamada:20201206215048p:plain

Athena でログ検索するためには事前に検索用テーブルの作成が必要なのですが、実は CloudTrail の管理画面から簡単に作成することができるようになっています。

blog.serverworks.co.jp

8. Ditch key pairs in favor of AWS Systems Manager Session Manager

EC2インスタンスへ接続する際の認証方法としてキーペアがよく使用されるのですが、これには

  • 鍵を無くしてしまう
  • 鍵を盗まれてしまう
  • 従業員の入社/退社による鍵の管理が大変

といった問題があります。

キーペアの代わりに AWS Systems Manager Session Manager を利用するようにしましょう。
Session Manager を利用することで

  • 鍵を持たなくても良い
  • セッションの履歴を記録/追跡できる
  • アクセス制限が簡単
  • クリックするだけでEC2インスタンスへ接続できる

といったメリットがあります。

f:id:swx-takahiro-yamada:20201206220127p:plain

9. Principl of least privilege via IAM Policies

ネット上でよく見るAWSのチュートリアル記事では AdminAccess / FullS3Access / DynamodbFullAccessRoles のような強力な権限を使って説明しているものが多くあります。
チュートリアルには適していますが、本番環境で作業を行う場合にはこれらのロールを使うことは避けたほうが良いです。

その代わりに独自のカスタム IAM ポリシーを作成して、そのポリシーで実行したい特定のアクション名と、そのアクションで利用する正確なリソース名を指定しましょう。

f:id:swx-takahiro-yamada:20201207012640p:plain

12. Clearing an account with aws-nuke

開発用や顧客へ見せるためのデモ環境で利用した後のAWSアカウントが放置されてそのままになっている場合、オープンソースの aws-nuke が役に立つかもしれません。

f:id:swx-takahiro-yamada:20201206221840p:plain

aws-nuke で対象AWSアカウント内の利用していないリソースを全て削除して、無駄なコストやセキュリティリスクが放置されるのを防ぐことができます。

github.com

まとめ

いかがでしたでしょうか。
AWSアカウントのセキュリティについて基礎的な事から応用的な事まで、セッションでは他にも紹介されていました。
興味があれば、ぜひ以下のリンクからご視聴下さい!

当該セッションはこちらのリンクになります。