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

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

マネージドサービスである Amazon EC2 は、Amazon Web Services: AWS セキュリティプロセスの概要ホワイトペーパーで説明されている AWS グローバルネットワークセキュリティ手順で保護されています。

AWS が公開している API コールを使用し、ネットワーク経由で Amazon EC2にアクセスします。クライアントで Transport Layer Security (TLS) 1.0 以降がサポートされている必要があります。TLS 1.2 以降が推奨されています。また、Ephemeral Diffie-Hellman (DHE) や Elliptic Curve Ephemeral Diffie-Hellman (ECDHE) などの Perfect Forward Secrecy (PFS) を使用した暗号スイートもクライアントでサポートされている必要があります。これらのモードは、Java 7 以降など、最近のほとんどのシステムでサポートされています。

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

ネットワークの隔離

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

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

パブリックインターネットを介してトラフィックを送信せずに VPC から Amazon EC2 API を呼び出すには、 AWS PrivateLink を使用します。

物理ホストでの分離

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

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

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

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

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

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

  • セキュリティグループを使用してインスタンスへのアクセスを制限する。Amazon EC2 インスタンスに最低限必要なネットワークトラフィックを許可し、定義済み、想定済み、承認済みの場所からのみのアクセスを許可するように、Amazon EC2 インスタンスのセキュリティグループを設定します。たとえば、Amazon EC2 インスタンスが IIS ウェブサーバーの場合、インバウンド HTTP/HTTPS、Windows 管理トラフィック、最小限のアウトバウンド接続のみを許可するように、セキュリティグループを設定します。

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

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

  • Windows インスタンスを管理するときは、明確に定義された一元管理サーバーまたは踏み台ホストへのアクセスを制限して、環境の攻撃対象領域を減らします。また、SSL/TLS を介した RDP カプセル化などのセキュアな管理プロトコルを使用します。リモートデスクトップゲートウェイクイックスタートからは、SSL/TLS を使用するように RDP を設定するなど、リモートデスクトップゲートウェイのデプロイに関するベストプラクティスを得られます。

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

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

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

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

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

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

  • AWS Security Hubを使用して、インスタンスからの意図しないネットワークアクセスを確認する。

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

  • インバウンドRDP ポートを管理する代わりに、AWS Systems Manager 実行コマンドを使用して、共通の管理タスクを自動化する。

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

各 Amazon EC2 インスタンスへのネットワークアクセスの制限に加えて、Amazon VPC は、インラインゲートウェイ、プロキシサーバー、さまざまなネットワークモニタリングオプションなど、追加のネットワークセキュリティ管理の実装をサポートしています。

詳細については、ホワイトペーパーの「AWS セキュリティのベストプラクティス」を参照してください。