ファンリードが考えるAWSにおけるセキュリティ対策
こんにちは!ファンリードDXパイオニア事業部AWSグループです。
AWS (Amazon Web Services) を利用する際のセキュリティ対策は、システムやデータの安全性を確保するために不可欠です。AWSは高いセキュリティ機能を備えていますが、顧客側での適切な設定と管理が求められます。よって必要な知識がなく構築すると脆弱なシステムを構築してしまう事にもなります。
では、具体的にどのような事を配慮すれば良いのでしょうか。AWSアドバンストティアサービスパートナーであるファンリードの、AWSグループで考えているセキュリティ対策の基本について記述します。
1.アクセス管理と認証
・AWS Identity and Access Management (IAM)
AWSでは、IAMを使ってアクセス権限の管理を行います。IAMユーザー、グループ、ロールを活用して、特定のリソースや操作へのアクセスを制御するのが基本です。最小権限の原則(least privilege)を意識し、ユーザーやサービスに必要最低限の権限のみを付与します。
・多要素認証 (MFA)
IAMユーザーに対してMFAを有効化し、パスワードに加えてワンタイムコードを利用した認証を行うことで、アカウントの不正アクセスリスクを低減できます。
・アクセスキーの取り扱い
必要な場合以外はアクセスキーの発行を避けるのが基本ですが、発行した場合には定期的にローテーションするようにします。また、プログラムからアクセスキーを利用する際は、AWS Secrets Managerなどを使用して安全な管理にします。
2.ネットワーク
・VPC (Virtual Private Cloud)
AWSのネットワーク設定で各リソースをVPC内に配置することで、インターネットへ公開された環境だけでなく、隔離された環境(プライベートサブネット)の作成ができます。プライベートサブネットにデータベースなどの重要なリソースを置き、外部から直接アクセスできないようにします。
・セキュリティグループとネットワークACL
セキュリティグループは、インスタンスレベルでのアクセスを制御し、ネットワークACLはサブネットレベルでのアクセスを制御します。これらを適切に設定し、最小限のアクセスを許可することで、ネットワークの攻撃リスクを軽減できます。
・VPNやDirect Connectの利用
機密性が高いトラフィックには、VPN接続やAWS Direct Connectを使用し、安全な通信経路の確保を考えます。
3.データ保護
・データの暗号化
保存データや転送データの暗号化が推奨されます。S3やRDSなどのストレージサービスでは、暗号化を簡単に設定でき、KMS (Key Management Service) を利用して暗号化キーを管理することが可能です。特に機密性の高いデータは、デフォルトで暗号化を有効がよいです。
・S3バケットの公開設定とアクセス制御
S3バケットに格納されているデータが意図せず公開されるリスクを防ぐため、S3バケットポリシーやアクセス制御リスト (ACL) を適切に設定します。また、S3ブロックパブリックアクセス機能を使って、誤ってバケットが公開されないようにします。
・バックアップとリカバリー
定期的なバックアップはAWS Backupサービスを利用すると、自動でバックアップのスケジュールやリテンション管理が可能です。バックアップは複数リージョンに保持し、災害時のリカバリーも考慮したアーキテクトを考えます。
4.監視とログ
・AWS CloudTrailとCloudWatchの活用
CloudTrailは、AWSアカウントでの操作履歴を記録し、誰がいつどのような操作を行ったかを監視するためのサービスです。ログを確認すれば、異常なアクティビティがないかをチェックできます。一方、CloudWatchはインフラやアプリケーションの監視に使用され、メトリクスやアラームを通じてリアルタイムでの監視が可能であり、Amazon SNSと連携させて死活監視を行うと良いでしょう。
・AWS Configによるコンプライアンス管理
AWS Configは、リソースの構成変更を追跡し、コンプライアンス基準に準拠しているかを確認するために使います。これにより、設定ミスやリソースの非準拠を早期に検知できます。
・Amazon GuardDuty
GuardDutyは、AWSの脅威検出サービスであり、悪意のあるアクティビティや異常な動作を検知します。侵入検知やアカウントの不正アクセス、マルウェアなどの脅威からアカウントを保護するために有効です。
5.インシデント対応
・インシデント計画の策定
事前にインシデント発生時の対応フローを策定し、リカバリー手順をドキュメント化しておくと有事の際に役立ちます。
・AWS IAMロールを使ったアクセス制御
インシデント時に迅速にアクセス制御を行うため、IAMロールを用意しておくと便利です。例えば、特定のリソースにアクセス可能な緊急用のIAMロールを設定し、インシデント時にのみ使用する形で管理します。
・定期的な訓練とレビュー
インシデントレスポンス計画は、定期的にインシデントのシミュレーションを行い、必要に応じて改善していきます。AWS Well-Architected Toolのセキュリティの柱を参考に継続的に見直す事を推奨されています。
番外編 責任共有モデルの理解
AWSのセキュリティは「責任共有モデル」に基づいています。AWSはクラウドの「セキュリティ」自体を担い、データセンターや基盤となるインフラストラクチャを管理しますが、顧客はクラウド内の「セキュリティ」を担当します。顧客の責任には、アクセス管理、アプリケーション設定、データ保護、そして各種リソースの適切な構成と監視が含まれます。
各リソース事に責任の範囲が異なる為、AWS側と顧客側の責任範囲を知っておくことが重要になります。
まとめ
AWS環境でのセキュリティ対策は、技術的な措置と日々の運用管理が必要で、IAMやVPCなどのアクセス管理を適切に行い、暗号化や監視、インシデント対応の計画を整えることで、セキュリティの強化が行えます。また、責任共有モデルの理解を深めることで、AWSのセキュリティ管理における役割分担が明確になり、効率的な運用が実現できます。
セキュリティはこれがベストというものは基本的になく、ビジネス環境毎に最適なものを考えて構築する必要があります。今回記載させて頂いた内容でも要件によっては足りなかったり、過剰であったりすると思います。
AWSが提供するツールとベストプラクティスを活用しながら、日々の運用においてもリスクを最小限に抑えたアプローチを維持することが重要です。
最後までお読みいただきありがとうございました!