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

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

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

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

  • Transport Layer Security (TLS)。TLS 1.2、できれば TLS 1.3 が必要です。

  • DHE (Ephemeral Diffie-Hellman) や ECDHE (Elliptic Curve Ephemeral Diffie-Hellman) などの Perfect Forward Secrecy (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 から Amazon EC2 API を呼び出すには、AWS PrivateLink を使用します。詳細については、「インターフェイス VPC エンドポイントを使用して Amazon EC2 にアクセスします。」を参照してください。

物理ホストでの分離

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

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

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

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

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

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

  • セキュリティグループを使用してインスタンスへのアクセスを制限する。この方法を使うと、例えば、社内ネットワークのアドレス範囲に属するアドレスからのトラフィックのみ認めるといったことができます。

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

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

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

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

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

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

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

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

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

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