アマゾン EC2 でのインフラストラクチャセキュリティ - Amazon Elastic Compute Cloud

アマゾン EC2 でのインフラストラクチャセキュリティ

マネージドサービスとして、アマゾン Elastic Compute Cloud は AWS グローバルネットワークセキュリティによって保護されています。AWS セキュリティサービスと AWS がインフラストラクチャを保護する方法については「AWS クラウドセキュリティ」を参照してください。インフラストラクチャセキュリティのベストプラクティスを使用して AWS 環境を設計するには「セキュリティの柱 - AWS 適切なアーキテクチャを備えたフレームワーク」の「インフラストラクチャの保護」を参照してください。

AWS が公開している API コールを使用し、ネットワーク経由で アマゾン EC2にアクセスします。クライアントは以下をサポートする必要があります。

  • Transport Layer Security (TLS)。TLS 1.2 が必須で、TLS 1.3 をお勧めします。

  • DHE (楕円ディフィー・ヘルマン鍵共有) や ECDHE (楕円曲線ディフィー・ヘルマン鍵共有) などの完全前方秘匿性 (PFS) による暗号スイート。これらのモードはJava 7 以降など、ほとんどの最新システムでサポートされています。

また、リクエストにはアクセスキー ID と、IAM プリンシパルに関連付けられているシークレットアクセスキーを使用して署名する必要があります。またはAWS Security Token Service (AWS STS) を使用して、一時的なセキュリティ認証情報を生成し、リクエストに署名することもできます。

詳細についてはセキュリティの柱 - AWS Well-Architected フレームワークの「Infrastructure Protection」(インフラストラクチャの保護) を参照してください。

ネットワークの隔離

仮想プライベートクラウド (VPC) はAWS クラウド内の論理的に隔離された領域にある仮想ネットワークです。ワークロードまたは組織エンティティ単位でインフラストラクチャを隔離するには個別の VPC を使用します。

サブネットはある範囲の IP アドレスが示す VPC 内の領域です。インスタンスを起動する場合にはVPC 内のあるサブネットにおいて起動することになります。サブネットを使用すると、単一の VPC 内で多階層ウェブアプリケーションの各階層 (ウェブサーバー、アプリケーションサーバーおよびデータベースサーバーなど) を隔離できます。インターネットからの直接アクセスを認めるべきでないインスタンスにはプライベートサブネットを使用します。

プライベート IP アドレスを使用して VPC から アマゾン EC2 API を呼び出すにはAWS PrivateLink を使用します。詳細については「インターフェイス VPC エンドポイントを使用して Amazon EC2 にアクセスします。」を参照してください。

物理ホストでの分離

同じ物理ホストで実行される異なる EC2 インスタンスは個別の物理ホストで実行されるかのように隔離されます。ハイパーバイザーが CPU およびメモリを隔離し、各インスタンスには生ディスクデバイスへのアクセスに代わる仮想ディスクへのアクセスが提供されます。

インスタンスを停止または終了すると、そのインスタンスに割り当てられていたメモリをハイパーバイザーがスクラブ (ゼロに設定) し、そのメモリが新たなインスタンスに割り当てられ、すべてのストレージブロックがリセットされます。これはお客様のデータが誤って他のインスタンスに引き渡されないようにするための処理です。

ネットワーク MAC アドレスはAWS ネットワークインフラストラクチャが各インスタンスに対し動的に割り当てます。IP アドレスはAWS ネットワークインフラストラクチャが各インスタンスに対し動的に割り当てるか、要認証 API リクエストを介して EC2 管理者が割り当てます。AWS ネットワークはインスタンスは割り当てられた MAC および IP アドレスからのみトラフィックを送信できます。それ以外のトラフィックは除外されます。

デフォルトではインスタンスはそのインスタンス宛ではないトラフィックを受信することはできません。インスタンスにおいて、ネットワークアドレス変換 (NAT、network address translation)、ルーティングまたはファイアウォールといったサービスの実行が必要な場合にはネットワークインターフェースの送信元/送信先チェックを無効化できます。

ネットワークトラフィックの制御

EC2 インスタンスへのネットワークトラフックを制御するには以下のオプションを検討します。

  • セキュリティグループを使用してインスタンスへのアクセスを制限します。最小限必要なネットワークトラフィックを許可するルールを設定します。例えば、企業ネットワークのアドレス範囲からのトラフィックのみ、または HTTPS など特定のプロトコルのトラフィックのみを許可することができます。Windows インスタンスではWindows 管理トラフィックと最小限のアウトバウンド接続を許可します。

  • アマゾン EC2 インスタンスへのネットワークアクセスをコントロールするための主要なメカニズムとして、セキュリティグループを活用します。必要に応じて、ネットワーク ACL を控えめに使用して、ステートレスできめの粗いネットワークコントロールを提供します。セキュリティグループはステートフルなパケットフィルタ処理を実行でき、他のセキュリティグループを参照するルールを作成できるため、ネットワーク ACL よりも汎用性があります。ただし、ネットワーク ACL はトラフィックの特定のサブセットを拒否したり、高レベルのサブネットガードレールを提供したりするための、セカンダリコントロールとして効果的です。また、ネットワーク ACL はサブネット全体に適用されるため、多層防御として使用して、正しいセキュリティグループなしでインスタンスが意図せずに起動される事態に備えることができます。

  • [Windows インスタンス] グループポリシーオブジェクト (GPO) を使用して Windows Firewall 設定を一元的に管理し、ネットワークコントロールをさらに強化します。顧客は多くの場合、Windows Firewall を使用してネットワークトラフィックをさらに可視化し、セキュリティグループフィルタを補完して、特定のアプリケーションからのネットワークへのアクセスをブロックしたり、サブセット IP アドレスからのトラフィックをフィルタ処理したりする高度なルールを作成します。例えば、Windows Firewall はEC2 メタデータサービスの IP アドレスへのアクセスを特定のユーザーまたはアプリケーションに制限できます。また、公開サービスではセキュリティグループを使用して、特定のポートへのトラフィックを制限し、Windows Firewall を使用して、明示的にブロックされた IP アドレスのリストを維持する場合があります。

  • インターネットからの直接アクセスを認めるべきでないインスタンスにはプライベートサブネットを使用します。プライベートサブネット内にあるインスタンスからのインターネットアクセスに、要塞ホストまたは NAT ゲートウェイを使用します。

  • [Windows インスタンス] SSL/TLS を介した RDP カプセル化などのセキュアな管理プロトコルを使用します。リモートデスクトップゲートウェイクイックスタートからはSSL/TLS を使用するように RDP を設定するなど、リモートデスクトップゲートウェイのデプロイに関するベストプラクティスを得られます。

  • [Windows インスタンス] Active Directory または AWS Directory Service を使用して、Windows インスタンスへのインタラクティブなユーザーアクセスおよびグループアクセスを厳密かつ一元的に制御およびモニタリングし、ローカルユーザーのアクセス許可を防ぎます。また、ドメイン管理者の使用を避け、代わりに、より細かいアプリケーション固有のロールベースのアカウントを作成します。Just Enough Administration (JEA) により、Windows インスタンスに対する変更をインタラクティブなアクセスや管理者のアクセスなしで管理できます。さらに、JEA を使用すると、組織はインスタンス管理に必要な Windows PowerShell コマンドのサブセットへの管理アクセスをロックダウンできます。追加の情報についてはAWS セキュリティのベストプラクティスホワイトペーパーのアマゾン EC2 への「OS レベル」のアクセスの管理セクションを参照してください。

  • [Windows インスタンス] システム管理者はアクセスが制限された Windows アカウントを使用して日常のアクティビティを実行し、特定の設定変更を実行する必要があるときにのみアクセスを昇格させる必要があります。さらに、絶対に必要な場合にのみ Windows インスタンスに直接アクセスするようにします。代わりに、EC2 Run Command、Systems Center Configuration Manager (SCCM)、Windows PowerShell DSC、または アマゾン EC2 Systems Manager (SSM) などの一元設定管理システムを活用して、変更を Windows サーバーにプッシュします。

  • 最小限必要なネットワークルートを使用して アマゾン VPC サブネットルートテーブルを設定します。例えば、インターネットゲートウェイへのルートがあるサブネットに、インターネットへの直接アクセスを必要とする アマゾン EC2 インスタンスのみを配置し、仮想プライベートゲートウェイへのルートがあるサブネットに、内部ネットワークへの直接アクセスを必要とする アマゾン EC2 インスタンスのみを配置します。

  • 追加のセキュリティグループまたはネットワークインターフェイスを使用して、アマゾン EC2 インスタンス管理トラフィックを通常のアプリケーショントラフィックとは別に制御および監査することをご検討ください。このアプローチにより、顧客は変更管理用の特別な IAM ポリシーを実装できるため、セキュリティグループルールや自動化されたルール検証スクリプトに対する変更の監査が容易になります。複数のネットワークインターフェイスを使用すると、ホストベースのルーティングポリシーを作成したり、ネットワークインターフェイスの割り当てられたサブネットに基づいて異なる VPC サブネットルーティングルールを活用したりするなど、ネットワークトラフィックを制御するための他のオプションも利用できます。

  • AWS Virtual Private Network または AWS Direct Connectを使用して、リモートネットワークから VPC へのプライベート接続を確立します。詳細についてはネットワークから アマゾン VPC への接続オプションを参照してください。

  • VPC フローログを使用して、インスタンスに到達するトラフィックを監視します。

  • GuardDuty Malware Protection はワークロードを危険にさらしたり、リソースを悪用したり、データに不正にアクセスしたりする、悪意のあるソフトウェアによるインスタンス上での不審な動作を特定するために使用します。

  • GuardDuty Runtime Monitoring はインスタンスへの潜在的脅威を特定し、これに対処するために使用します。詳細については「How Runtime Monitoring works with アマゾン EC2 instances」を参照してください。

  • AWS Security HubReachability AnalyzerNetwork Access Analyzer はインスタンスからの意図しないネットワークアクセスのチェックに使用します。

  • EC2 Instance Connectを使用して、SSH キーの共有および管理が不要な Secure Shell (SSH) を使いインスタンスに接続します。

  • インバウンド SSH または RDP ポートを開いてキーペアを管理する代わりに、AWS Systems Manager セッションマネージャーを使用してインスタンスにリモートアクセスします。

  • インスタンスに接続する代わりに、AWS Systems Manager Run Command を使用して一般的な管理タスクを自動化します。

  • [Windows インスタンス] Windows OS のロールと Microsoft のビジネスアプリケーションの多くにはIIS 内の IP アドレス範囲制限、Microsoft SQL Server の TCP/IP フィルタリングポリシー、Microsoft Exchange の接続フィルターポリシーなどの拡張機能も備わっています。アプリケーション層内のネットワーク制限機能により、重要なビジネスアプリケーションサーバーに追加の防御層を提供できます。

アマゾン VPC はゲートウェイ、プロキシサーバー、ネットワークモニタリングのオプションなど、追加のネットワークセキュリティコントロールをサポートしています。詳細については「アマゾン VPC ユーザーガイド」の「Control network traffic」を参照してください。