こんにちは!
今回は AWS のセキュリティ系サービスを網羅的にまとめてみました!サービスは適材適所、ご自身の環境に当てはめて何が有効的か、必須なサービスを適用しているのか、確認していただければと思います!
AWS はクラウドサービスのため、責任共有モデルの通りセキュリティの面でかなり開発者は楽できる面が多いかと思います。例えばサーバーレス系のサービスはホスト OS のセキュリティ対策などは AWS がやってくれているため、意識する部分が少ないです。
しかしセキュリティ対策はあくまで自己責任となりますので、AWS が提供しているセキュリティ系のサービスをしっかり使っていきましょう!
上記がまず AWS アカウントでアプリケーションを稼働させる際に必須で使いたいサービスの一覧です。ひとつずつ説明していきます。
IAM はすでにご存知の通り、ユーザーやリソースのアクセスの権限管理を行うものです。AWS ではリソースベースのアクセスを基本にアーキテクチャを設計するので、何かしらのリソースを構築するときに必ず作成が必要なものとなります。
説明の必要がないほど利用されていると思うので多くは語りませんが、セキュリティ面を考えたときに注意したいのはアクセスキーをなるべく発行しないようにすることです。
サードパーティ製品との連携で、それ専用のユーザーを作成してアクセスキー発行が必要な場合もありますが、そのときは不必要な権限を与えないことに注意して IAM ロールを作成してください。
では IAM ユーザーのアクセスはどうするのか?というと、それは後述する AWS SSO を利用してください。アクセスキーの管理が不要となります。
AWS SSO は、シングルサインオンのサービスです。複数の AWS アカウントなどの認証に役立ちます。それだけでなく、IAM ユーザーを各アカウントに作成することなくユーザーを管理(SSO ユーザーとして、AWS Organizations で設定しているルートアカウントにて管理)できるので、それぞれのユーザーにアクセスキーを発行させないようにすることができます。
アクセスキーはとても便利ですが管理を怠ると、漏洩した場合のリスクが大きいため、一時的なアクセスキーしか発行しない AWS SSO にて開発者などのユーザーを管理するのがベストプラクティスとなります。
AWS Organizations はマルチアカウント管理を行うサービスです。サービスコントロールポリシー(以下、SCP)というの AWS アカウント単位で適用するポリシーを用いてセキュリティを向上させることができます。
例えば本番アカウントにて、稼働している ECS や使用している IAM ロールの削除権限を与えないように設定することで、ヒューマンエラーに対する対策を行うことができます。
また AWS SSO を利用するには AWS Organizations を有効にしなければならないので、1つの AWS アカウントしか利用しない場合でも有効にしておくのがよいでしょう。
Amazon GuardDuty は、AWS アカウントなどに対するアクセスの脅威検出を行ってくれるサービスです。リージョンごとに適用できますが、悪意ある攻撃で AWS アカウントに入られ、別リージョンを使用されたりしてしまう場合もありますので、全リージョンに適用してください。
ただ有効にするだけで簡単に利用できますので、必ず適用しておきましょう。
AWS Shield は、分散サービス妨害 (DDoS) に対する保護サービスです。Standard と Advanced 、2つの選択肢があります。前者は追加料金なしなので、ひとまず Standard を CloudFront と Route 53 に適用しましょう(Standard ではこの2つしか適用できない)。
後者の Advanced は、より高度なセキュリティを求めている場合に利用を検討してください。なお Advanced にて保護できる対象は以下になります。
AWS WAF は文字通り、アプリケーションへの攻撃を保護するアプリケーションファイアウォールです。適用対象は以下となります。
AWS WAF にはすでに一般的な保護するファイアウォールがセットで用意されているマネージドルールと、自由度の高いカスタムルールがあります。アプリケーションを守るために必ずマネージドルールは適用しておきましょう。
上記がそれぞれのアーキテクチャに合わせて使いたいサービスの一覧です。ひとつずつ説明していきます。
アプリケーションで利用する DB の認証情報や API キーなどの情報を管理するサービスです。これにより重要な情報をハードコードせず外部に置いておくことで、悪意ある侵入者にシークレットを取得されないようにすることができます。ハードコードをさけるために必ず利用しましょう。
Detective は「探偵」という意味です。文字通り、潜在的なセキュリティ問題や不審なアクティビティの原因などを調査してくれます。またセキュリティチームにとって必要な情報を効率的に集めてくれるという利点もあります。より強固なセキュリティ体制が必要な場合には利用しましょう。
これはAWSリソースの設定に変更があった場合や新たなリソースが作成された場合、それがルールに則っているのかをチェックしてくれる機能です。例えば、SSH が全許可されたセキュリティグループを検知するように Config ルールを作成すれば、そのようなセキュリティグループが作成された場合に通知が飛ぶので対処することができます。
コンプライアンスの検知に役立てることができるのでうまく活用していきましょう!
自動化されたセキュリティ評価サービスです。脆弱性の評価などを自動化したい場合に利用します。EC2 などのリソースにエージェントをインストールすることで利用が可能です。事前に定義されたルールに基づいて評価を行い、完了するとレポートが出力されます。
こちらは機密データを検出して保護するサービスです。個人情報関連のデータが入っていないかなどを探すのにとても有効的なものとなります。用途としては、データプライバシーと保護の監査などに使用できます。
今回紹介したもの以外にも、AWSのセキュリティサービスはあります。セキュリティ関連の特性をよく知るにはある程度の知識が必要となりますが、こういったサービスを活用することで迅速なセキュリティ対策が可能となります。ぜひ気になったものを自分なりに調べてみてください!
このブログでは、AWS の記事をどんどん公開しておりますので、ご興味のある方は他の記事もご覧いただければと思います。
AWS に関する開発は、お気軽にお問い合わせください。
スモールスタート開発支援、サーバーレス・NoSQLのことなら
ラーゲイトまでご相談ください
低コスト、サーバーレスの
モダナイズ開発をご検討なら
下請け対応可能
Sler企業様からの依頼も歓迎