AWSのセキュリティ系サービスをエキスパートがまとめ!ユースケースや優先度などを解説します🤔

AWSのセキュリティ系サービスをエキスパートがまとめ!ユースケースや優先度などを解説します🤔

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!

今回は AWS のセキュリティ系サービスを網羅的にまとめてみました!サービスは適材適所、ご自身の環境に当てはめて何が有効的か、必須なサービスを適用しているのか、確認していただければと思います!

想定する読者

  • AWS のセキュリティが気になるヒト
  • AWS でどのセキュリティサービスを選べばいいか分からないヒト
  • AWS のセキュリティについて学習したいヒト

はじめに

AWS はクラウドサービスのため、責任共有モデルの通りセキュリティの面でかなり開発者は楽できる面が多いかと思います。例えばサーバーレス系のサービスはホスト OS のセキュリティ対策などは AWS がやってくれているため、意識する部分が少ないです。

しかしセキュリティ対策はあくまで自己責任となりますので、AWS が提供しているセキュリティ系のサービスをしっかり使っていきましょう!

必須のサービス

引用元:Putting AWS Security Services to Work For You
  • IAM
  • AWS SSO
  • AWS Organizations
  • Amazon GuardDuty
  • AWS Shield
  • AWS WAF

上記がまず AWS アカウントでアプリケーションを稼働させる際に必須で使いたいサービスの一覧です。ひとつずつ説明していきます。

IAM

IAM はすでにご存知の通り、ユーザーやリソースのアクセスの権限管理を行うものです。AWS ではリソースベースのアクセスを基本にアーキテクチャを設計するので、何かしらのリソースを構築するときに必ず作成が必要なものとなります。

説明の必要がないほど利用されていると思うので多くは語りませんが、セキュリティ面を考えたときに注意したいのはアクセスキーをなるべく発行しないようにすることです。

サードパーティ製品との連携で、それ専用のユーザーを作成してアクセスキー発行が必要な場合もありますが、そのときは不必要な権限を与えないことに注意して IAM ロールを作成してください。

では IAM ユーザーのアクセスはどうするのか?というと、それは後述する AWS SSO を利用してください。アクセスキーの管理が不要となります。

AWS SSO

AWS SSO は、シングルサインオンのサービスです。複数の AWS アカウントなどの認証に役立ちます。それだけでなく、IAM ユーザーを各アカウントに作成することなくユーザーを管理(SSO ユーザーとして、AWS Organizations で設定しているルートアカウントにて管理)できるので、それぞれのユーザーにアクセスキーを発行させないようにすることができます。

アクセスキーはとても便利ですが管理を怠ると、漏洩した場合のリスクが大きいため、一時的なアクセスキーしか発行しない AWS SSO にて開発者などのユーザーを管理するのがベストプラクティスとなります。

AWS Organizations

AWS Organizations はマルチアカウント管理を行うサービスです。サービスコントロールポリシー(以下、SCP)というの AWS アカウント単位で適用するポリシーを用いてセキュリティを向上させることができます。

例えば本番アカウントにて、稼働している ECS や使用している IAM ロールの削除権限を与えないように設定することで、ヒューマンエラーに対する対策を行うことができます。

また AWS SSO を利用するには AWS Organizations を有効にしなければならないので、1つの AWS アカウントしか利用しない場合でも有効にしておくのがよいでしょう。

Amazon GuardDuty

Amazon GuardDuty は、AWS アカウントなどに対するアクセスの脅威検出を行ってくれるサービスです。リージョンごとに適用できますが、悪意ある攻撃で AWS アカウントに入られ、別リージョンを使用されたりしてしまう場合もありますので、全リージョンに適用してください。

ただ有効にするだけで簡単に利用できますので、必ず適用しておきましょう。

AWS Shield

AWS Shield は、分散サービス妨害 (DDoS) に対する保護サービスです。Standard と Advanced 、2つの選択肢があります。前者は追加料金なしなので、ひとまず Standard を CloudFront と Route 53 に適用しましょう(Standard ではこの2つしか適用できない)。

後者の Advanced は、より高度なセキュリティを求めている場合に利用を検討してください。なお Advanced にて保護できる対象は以下になります。

  • CloudFront ディストリビューション
  • Route 53 ホストゾーン
  • AWS Global Accelerator アクセラレーター
  • Application Load Balancer (ALB)
  • Elastic Load Balancing Balancer (ELB)
  • EC2 Elastic IP アドレス

AWS WAF

AWS WAF は文字通り、アプリケーションへの攻撃を保護するアプリケーションファイアウォールです。適用対象は以下となります。

  • CloudFront
  • Application Load Balancer (ALB)
  • API Gateway
  • AppSync

AWS WAF にはすでに一般的な保護するファイアウォールがセットで用意されているマネージドルールと、自由度の高いカスタムルールがあります。アプリケーションを守るために必ずマネージドルールは適用しておきましょう。

状況に応じたサービス

引用元:Putting AWS Security Services to Work For You
  • AWS Secrets Manager
  • Amazon Detective
  • AWS Config
  • Amazon Inspector
  • Amazon Macie

上記がそれぞれのアーキテクチャに合わせて使いたいサービスの一覧です。ひとつずつ説明していきます。

AWS Secrets Manager

アプリケーションで利用する DB の認証情報や API キーなどの情報を管理するサービスです。これにより重要な情報をハードコードせず外部に置いておくことで、悪意ある侵入者にシークレットを取得されないようにすることができます。ハードコードをさけるために必ず利用しましょう。

Amazon Detective

Detective は「探偵」という意味です。文字通り、潜在的なセキュリティ問題や不審なアクティビティの原因などを調査してくれます。またセキュリティチームにとって必要な情報を効率的に集めてくれるという利点もあります。より強固なセキュリティ体制が必要な場合には利用しましょう。

AWS Config

これはAWSリソースの設定に変更があった場合や新たなリソースが作成された場合、それがルールに則っているのかをチェックしてくれる機能です。例えば、SSH が全許可されたセキュリティグループを検知するように Config ルールを作成すれば、そのようなセキュリティグループが作成された場合に通知が飛ぶので対処することができます。

コンプライアンスの検知に役立てることができるのでうまく活用していきましょう!

Amazon Inspector

自動化されたセキュリティ評価サービスです。脆弱性の評価などを自動化したい場合に利用します。EC2 などのリソースにエージェントをインストールすることで利用が可能です。事前に定義されたルールに基づいて評価を行い、完了するとレポートが出力されます。

Amazon Macie

こちらは機密データを検出して保護するサービスです。個人情報関連のデータが入っていないかなどを探すのにとても有効的なものとなります。用途としては、データプライバシーと保護の監査などに使用できます。

関連記事

まとめ

今回紹介したもの以外にも、AWSのセキュリティサービスはあります。セキュリティ関連の特性をよく知るにはある程度の知識が必要となりますが、こういったサービスを活用することで迅速なセキュリティ対策が可能となります。ぜひ気になったものを自分なりに調べてみてください!

このブログでは、AWS の記事をどんどん公開しておりますので、ご興味のある方は他の記事もご覧いただければと思います。

AWS に関する開発は、お気軽にお問い合わせください。