クラウド環境での開発が普及している中、AWS環境でシステムを構築する人が増えています。一方、クラウド開発に関してセキュリティに不安を感じる人も多くいます。
この記事では、AWSにおけるセキュリティの基本的な考え方や、安全な開発のために導入すべきAWSサービスについて詳しく解説していきます。
目次
AWSセキュリティ対策の基本的な考え方
AWSのセキュリティは、その豊富な導入実績から高い信頼性があります。
海外だけでなく日本国内でも、多くの大手金融機関や各省庁、地方自治体、さらには大手企業がAWSを利用しています。例えば、総務省が2020年に立ち上げた「第二期政府共通プラットフォーム」もAWS上で運用されています。
多数の導入実績からAWSのセキュリティ対策は信頼されているといえます。ここではまずAWSのセキュリティ対策の基本的な考え方を紹介します。
AWSの責任共有モデルとは?
AWSは、セキュリティにおいて「責任共有モデル」を採用しています。AWSの責任共有モデルとは、セキュリティとコンプライアンスの責任がAWSとユーザーの間で共有される考え方です。
具体的には、ホストOSやサービスの提供施設の物理的なセキュリティなどの管理はAWS側で行います。一方、ゲストOSや関連アプリケーションソフトウェア、セキュリティグループファイアウォールの設定などはAWSの利用者(ユーザー)側の責任となります。
導入するAWSサービスによってセキュリティの責任範囲が異なるため、しっかり認識したうえで導入をすることをおすすめします。
AWSのセキュリティ責任
AWSはクラウドで提供するすべてのサービスを動かすインフラストラクチャのセキュリティ責任を持ちます。ハードウェア、ソフトウェア、ネットワーキングはもちろん、AWSのサービスの提供施設の物理的なセキュリティもAWSの責任となります。
従来のオンプレミスの環境と比べて、AWSを利用する場合、ユーザーの負担するセキュリティ責任が少なくなります。
AWSの利用者(ユーザー)のセキュリティ責任
AWSの利用者(ユーザー)が負う責任は、利用するAWSサービスの種類によって異なります。
Amazon Elastic Compute Cloud(EC2)のようなIaaSを使用する場合、OSの管理や更新、セキュリティパッチの適用、インストールされたアプリケーションやユーティリティの管理、そしてAWSから提供されるセキュリティグループと呼ばれるファイアウォールの構成などのすべてが、ユーザーの責任となります。
一方、Amazon S3やAmazon DynamoDBなどのマネージドサービスを利用する場合、インフラストラクチャやOSのセキュリティはAWSの責任となりますが、データやアクセス権限の管理の責任は利用者(ユーザー)にあります。
AWSサービスを適用する前に、どの部分が自社のセキュリティ責任範囲なのかをしっかりと理解し、適切な対策を講じる必要があります。
クラウド(AWS)とオンプレミス環境のセキュリティの違い
先述の通りオンプレミス環境とクラウド(AWS)環境のセキュリティ責任には明確な違いがあります。
オンプレミス環境では、環境内すべてのセキュリティの維持や管理が企業自身の責任となります。これに対して、AWSでは責任共有モデルを採用しているので、サーバの維持費用や管理はAWSの責任となります。そのため、サーバ管理の工数が大幅に削減できます。
知っておきたいAWSセキュリティサービス10選
AWS上のアプリケーションを保護するため、AWSでは30種類以上のセキュリティサービスを提供しています。
ここでは安全なシステム構築に役立つ10のセキュリティサービスをピックアップして紹介します。
AWS Web Application Firewall(AWS WAF)
AWS Web Application Firewall(AWS WAF)とは、AWSが提供しているWebアプリケーション特有の脆弱性を突くサイバー攻撃を防御するWAFです。SQLインジェクションやクロスサイトスクリプティング(XSS)対策、DDoS攻撃の緩和などがAWS WAFの導入によって可能となります。
さらにAWS WAFの簡単に導入できる点もメリットとして挙げられます。Amazon CloudFrontやApplication Load Balancer(ALB)、Amazon API Gatewayに有効設定をするだけで、複雑な手続きなしでAWS WAFを導入できます。
さまざまなサイバー攻撃からWebアプリケーションを守れるうえ、導入簡単で利用料金も安いので、AWS WAFを導入しているユーザーが増えています。
詳しくはこちらの記事:
AWS Shield
AWS Shieldとは、AWSが提供しているマネージドDDoS保護サービスです。DDoS攻撃の対策として、AWS Shieldの導入が必要です。
AWS ShieldにはStandardとAdvancedの2つのプランがあります。AWS Shield Standardは無料サービスとなっており、Amazon CloudFrontやApplication Load Balancer(ALB)を利用すれば自動的に適用されます。追加の設定なしでDDoS攻撃対策ができるので、導入をおすすめします。
AWS WAFとAWS Shieldに似ている部分があるので、その違いについて詳しくまとめました。
詳しくはこちらの記事:
AWS Identity and Access Management(AWS IAM)
AWS Identity and Access Management(AWS IAM)とは、AWSの各種サービスやリソースへのアクセス権限を管理するサービスです。ユーザーグループの設定を含めて、アクセス許可や制限のルールを細かく設定できるので、AWS IAMの利用でAWSリソースへのアクセスを一元的に管理できます。
また、AWS IAMに多要素認証(MFA)の機能も搭載されているため、セキュリティの強化につながります。
詳しくはこちらの記事:
AWS IAMアイデンティティセンター
AWS IAMアイデンティティセンターは、Amazon Single Sign-On(SSO)の後継サービスで、AWSアカウントやアプリケーションへのアクセスを一元的に管理するサービスです。
セキュリティやガバナンス強化のため、マルチアカウント構成でAWSを利用するユーザーが増えていますが、管理すべきリソースやアカウント数の増加によって運用負荷が高まっています。
AWS IAMアイデンティティセンターを利用することで、AWSアカウントへのシングルサインオンを実現することができ、各アカウントの管理がしやすくなります。
さらに、多要素認証の適用もできるのでより高いセキュリティレベルを実現できます。
Amazon Security Hub
Amazon Security Hubは、使用しているAWSリソースのセキュリティ設定がベストプラクティスに準拠しているかを自動的にチェックするサービスです。
AWSが推奨するベストプラクティスだけでなく、国際的なセキュリティベストプラクティス「CIS Benchmarks」やクレジットカード業界のセキュリティ基準「PCI DSS」に基づいてチェックすることが可能です。
Amazon Security Hubを活用することで、AWSのセキュリティチェックを効率的に自動化し、さらにセキュリティ関連のアラートを一元的に管理することが可能となります。
Amazon GuardDuty
Amazon GuardDutyは、AWSが提供しているマネージド型脅威検出サービスで、ユーザの操作や通信ログを継続的に監視しセキュリティの脅威を検出します。AIを用いた検知も行っているので、未知の脅威の検出にも役立ちます。
Amazon GuardDutyの保護範囲は広く、AWSアカウント、インスタンス、サーバーレス、コンテナワークロード、ユーザー、データベース、およびストレージのすべてがAmazon GuardDutyの監視対象です。
ただし、WebアプリケーションはAmazon GuardDutyの対象外なので、SQLインジェクションやクロスサイトスクリプティング(XSS)などの検知はできません。そのため、Amazon GuardDutyとAWS WAFとの併用がおすすめです。
Amazon Config
Amazon Configは、AWSリソースの構成を管理するサービスです。リソースの構成を常にモニタリングし、変更があった際に管理者に通知し、ログも保存します。
Amazon Configを利用することによって各々のリソースの設定を定期的に手動でチェックする必要がなくなり、AWSリソースの管理工数が軽減できます。
また、構成や設定変更のログも保存されるので、トラブルのあった際に原因の特定をより効率的にできます。
さらに、AWSリソースの構成や設定変更が自社のポリシーやベストプラクティスに則っているかどうかの確認もできるので、Amazon Configでコンプライアンス維持にもつながります。
Amazon Inspector
Amazon Inspectorとは、Amazon EC2、AWS Lambda関数、Amazon ECRなどのAWSソフトウェアの脆弱性を自動的に管理するサービスです。50個以上の脆弱性インテリジェンスソースを用いて検知を自動的に行っているので、Amazon Inspectorはほぼリアルタイムで脆弱性を発見することができます。
脆弱性のリスクスコアも表示されるので、Amazon Inspectorを導入することで脆弱性の管理工数を大幅削減できます。
ただし、あくまで管理サービスなので、Amazon Inspectorは脆弱性の検知のみを行います。脆弱性が検出されたあとの設定変更やパッチ適用などの対策の検討や実施はユーザーの責任となるので、注意しなければなりません。
AWS CloudTrail
AWS CloudTrailは、ユーザーのアクティビティやAPIの使用状況を管理するサービスです。
AWS Management Console、AWS Command Line Interface、AWS SDKやAPIで実行されたアクションのすべてがAWS CloudTrailによって記録されます。そのうえ異常なアクティビティの特定と分析もできます。
さらにこれらのログ情報は、Amazon S3にも保管できるので、後から確認や分析が容易になります。
Amazon Detective
Amazon Detectiveは、AWSリソースのログデータを自動的に収集し、分析・調査を行い潜在的なセキュリティ問題を特定するサービスです。
Amazon Detectiveは、AWS CloudTrail、Amazon Virtual Private Cloud(VPC)、Amazon Elastic Kubernetes Service(EKS)など複数のAWSサービスのログと、Amazon GuardDutyやAWS Security HubなどのAWSセキュリティサービスの検出結果を用いて分析を行います。
Amazon Detectiveを利用することで、AWS環境でのセキュリティ問題の根本的な理由を迅速に特定できます。
セキュリティ脅威を把握しクラウド環境を安全に
AWS環境におけるセキュリティは「責任共有モデル」に基づいています。責任共有モデルとは、セキュリティとコンプライアンスの責任がAWSとユーザーの間で共有される考え方です。
Amazon S3やAmazon DynamoDBなどのマネージドサービスの場合、インフラストラクチャやOSのセキュリティはAWSの責任となりますが、Amazon EC2のようなIaaSでは、ゲストOSや関連アプリケーションソフトウェア、セキュリティグループファイアウォールの設定などがユーザーの責任です。
自社のセキュリティ責任を果たすためには、現在のセキュリティ脅威を正確に理解し、適切なAWSセキュリティサービスを導入する必要があります。
Webアプリケーションへの攻撃が増えているいま、アプリケーションレイヤーを防御できるAWS WAFやAWS Shieldなどのサービスの導入は欠かせません。
AWSを利用する場合のセキュリティ対策について資料にまとめたので、こちらからダウンロードしてください。