Oracle Cloud Infrastructureドキュメント

Networkingの保護: VCN、ロード・バランサ、およびDNS

セキュリティの推奨事項

Networkingサービスには、ネットワーク・アクセス制御を適用し、VCNトラフィックを保護するための機能のコレクションがあります。 これらの機能を次の表に示します。

VCN機能 セキュリティの説明
パブリック・サブネットとプライベート・サブネット VCNはサブネットにパーティション化できます。 サブネットは「可用性ドメイン」に固有ですが、リージョンに(リージョン内のすべての「可用性ドメイン」をカバー)できるようになりました。 非公開サブネット内のインスタンスは、パブリックIPアドレスを持つことはできません。 パブリック・サブネット内のインスタンスは、オプションで自由にパブリックIPアドレスを設定できます。
セキュリティ・リスト セキュリティ・リストは、ステートフルでステートレスなファイアウォール機能を提供し、インスタンスへのネットワーク・アクセスを制御します。 セキュリティ・リストはサブネット・レベルで構成され、インスタンス・レベルで適用されます。 複数のセキュリティ・リストをサブネットに適用できます。 ネットワーク・パケットは、セキュリティ・リスト内のいずれかのルールに一致する場合に許可されます。
ゲートウェイ

ゲートウェイでは、VCN内のリソースがVCN外部の宛先と通信します。 ゲートウェイには次が含まれます。

ルート表のルール ルート表は、VCNサブネットからVCN外部の宛先にトラフィックがルーティングされる方法を制御します。 ルーティング・ターゲットは、VCNゲートウェイまたはVCNのプライベートIPアドレスのいずれかです。
仮想ネットワーク・ファミリのIAMポリシー IAMポリシーでは、IAMグループがVCNのリソースに対して許可するアクセス権およびアクションを指定します。 たとえば、IAM policesは、VCNを管理するネットワーク管理者に管理権限を付与し、割引権限を通常のユーザーに付与できます。

Oracle Cloud Infrastructure Auditログを定期的に監視して、VCNセキュリティ・リスト、ルート表ルール、およびVCNゲートウェイの変更を確認することをお薦めします。

ネットワーク・セグメンテーション: VCNサブネット

  • ネットワーク・アクセスを制御するために、VCNの階層型サブネット戦略を策定します。 一般的な設計パターンは、次のサブネット層を持つことです:

    1. 「DMZサブネット」ロード・バランサ用
    2. 「パブリック・サブネット」: NATインスタンス、侵入検知(IDS)インスタンスおよびWebアプリケーション・サーバーなどの外部アクセス可能なホストの場合
    3. 「プライベート・サブネット」 (データベースなどの内部ホスト)

    異なるサブネット内のインスタンスが通信するために特別なルーティングは必要ありません。 ただし、VCNセキュリティ・リストを使用して、サブネット間のトラフィックのタイプを制御できます。

  • プライベート・サブネット内のインスタンスは、プライベートIPアドレスのみを持ち、VCN内の他のインスタンスのみがアクセスできます。 Oracleでは、セキュリティ上重要なホスト(DBシステムなど)をプライベート・サブネットに配置し、セキュリティ一覧ルールを使用して、パブリック・サブネット内のホストへの接続のタイプを制御することをお勧めします。 VCNのセキュリティ・リストに加えて、ip表などのホスト・ベースのファイアウォール、ネットワーク・アクセス制御のファイアウォールを、defense-pthメカニズムとして構成します。
  • VCNにサービス・ゲートウェイを追加すると、プライベート・サブネット内のDBシステムを使用して、トラフィックがインターネットを横断することなく、Object Storageに直接バックアップできます。 サブネットのルーティングおよびセキュリティのリストを設定して、そのトラフィックを有効にする必要があります。 詳細は、「Oracle Servicesへのアクセス: サービス・ゲートウェイ」を参照してください。

ネットワーク・アクセス制御: VCNセキュリティ・リスト

  • VCNセキュリティ・リストを使用して、サブネット内のインスタンスへのネットワーク・アクセスを制限します。 セキュリティ・リストはデフォルトではステートフルですが、ステートレスに構成することもできます。 一般的な方法は、高性能アプリケーションにステートレス・ルールを使用することです。 ネットワーク・トラフィックがステートフル・セキュリティ・リストとステートレス・セキュリティ・リストの両方に一致する場合、ステートレス・ルールが優先されます。 VCNセキュリティ・リストの構成の詳細については、「セキュリティ・リスト」を参照してください。
  • Computeインスタンスに対する不正アクセスや攻撃を防止するため、VCNセキュリティ・リストを使用して、許可されたCIDRブロックからのみSSHまたはRDPへのアクセスをインターネット(0.0.0.0/0)に開放するのではなく、許可することをお勧めします。 セキュリティを強化するため、VCN API UpdateSecurityListを使用して必要に応じてSSH (ポート22)またはRDP (ポート3389)アクセスを一時的に有効にできます。 インスタンスのヘルス・チェックを実行するために、OracleはICMP pingが可能なVCNセキュリティ・リストを構成することをお薦めします。 RDPアクセスの有効化の詳細は、「インスタンスの作成」「RDPアクセスを有効にするには」を参照してください。
  • VCNホストへの外部アクセス(SSHなど)を制御する方法として、要塞ホストを推奨します。 通常、VCNパブリック・サブネット内の基準ホストは、VCNプライベート・サブネット・ホストへのアクセスを制御します。 VCNにSSH基準ホストを設定する方法の詳細は、白い紙「Bastionホスト: Virtual Cloud Networkの保護されたアクセス」を参照してください。
  • VCNセキュリティ・リストを使用すると、Computeインスタンスに対するセキュリティに重要なネットワーク・アクセス制御が可能になります。セキュリティ・リストの意図しない変更や許可されていない変更を防止することが重要です。 不正なVCNセキュリティに変更が示されないようにするために、セキュリティ・リストの変更を許可するには、IAMポリシーを使用することをお薦めします。

安全な接続: VCNゲートウェイとFastConnectピアリング

  • VCNゲートウェイは、VCNホストへの外部接続(インターネット、オンプレミス、またはピアVCN)を提供します。 ゲートウェイのタイプのリストについては、この項の前述の表を参照してください。 OracleはIAMポリシーを使用して、ネットワーク管理者だけがVCNゲートウェイを作成または変更できるようにすることをお薦めします。
  • 慎重に、あらゆるインスタンスへのインターネット・アクセスを許可することを検討してください。 たとえば、機密データベース・インスタンスに誤ってインターネット・アクセスを許可したくない場合などです。 VCNのインスタンスを「インターネットからパブリックにアクセスできる」とするには、次のVCNオプションを構成する必要があります。

    • インスタンスは、VCNパブリック・サブネット内に存在する必要があります。
    • インスタンスを含むVCNは、インターネット・ゲートウェイが有効であり、アウトバウンド・トラフィックのルーティング・ターゲットとして構成されている必要があります。
    • インスタンスには、パブリックIPアドレスが割り当てられている必要があります。
    • インスタンスを含むパブリック・サブネットのVCNセキュリティ・リストは、0.0.0.0/0に構成する必要があります。
  • VPN IPSecは、顧客のオンプレミス・ネットワークとVCN間の接続を提供します。 高可用性のために、IPSecトンネルを2つ作成できます。 VCN DRGを顧客CPEに接続するためのVPNトンネルの作成については、IPSec VPNを参照してください。
  • FastConnectリングは、トラフィックがパブリック・インターネットを横断しないように、プライベート・サークルを使用してオンプレミス・ネットワークをVCNに接続できるようにします。 プライベート・リング(プライベートIPアドレスに接続するため)またはパブリック・リング(Object StorageのようなOracle Cloud Infrastructureパブリック・エンドポイントに接続するため)を設定できます。 FastConnectリング・オプションの詳細は、FastConnectを参照してください。

VCNの仮想セキュリティ・アプライアンス

  • Networkingサービスを使用すると、侵入検知、アプリケーション・レベルのファイアウォールおよびNATなどのネットワーク・セキュリティ機能を実装できます(かわりにVCNで「NATゲートウェイ」を使用することもできます)。 これを行うには、ローカルのVCNプライベートIPアドレスをターゲットとして使用するルート表ルールを使用して、すべてのサブネット・トラフィックをネットワーク・セキュリティ・ホストにルーティングします。 詳細については、「プライベートIPをルート・ターゲットとして使用」を参照してください。 高可用性のために、プライマリ・ホストに障害が発生した場合に、ゲートウェイ・セキュリティ・ホストにセカンダリ・プライベートIPアドレスを割り当てることができます。 VCNでのNATインスタンスの設定の詳細は、ホワイト・ペーパーの「NATインスタンスの構成: プライベート・サブネットのインターネット・アクセスの有効化」を参照してください。 完全なネットワーク・パケット・キャプチャまたはネットワークフロー・ログは、tcpdumpを使用してNATインスタンスで取得でき、ログは定期的にObject Storageバケットにアップロードできます。

  • 仮想セキュリティ・アプライアンスは、ベアメタル・インスタンス上のBYOH (bring-your-own-hypervisor)モデルで仮想マシン(VM)として実行できます。 BYOHベアメタル・インスタンス上で実行されている仮想セキュリティ・アプライアンスVMsは、それぞれ独自のセカンダリVNICを持ち、VNIC VCN内のほかのインスタンスおよびサービスに直接接続します。 オープン・ソースKVMハイパーバイザを使用したベアメタル・インスタンス上のBYOHの有効化の詳細は、「マルチVNICを使用したBare MetalインスタンスへのKVMのインストールと構成」を参照してください。
  • 仮想セキュリティ・アプライアンスは、Compute仮想マシン(VMs)にインストールすることもできます。ここで、セキュリティ・アプライアンスのVMDKまたはQCOW2イメージをインポートするには、独自のイメージ(BYOI)機能を使用します。 ただし、インフラストラクチャの依存性のため、BYOI機能は一部のアプライアンスでは動作しない場合があります。この場合、BYOHモデルが別のオプションで使用されます。 アプライアンス・イメージをOracle Cloud Infrastructureにインポートする方法の詳細については、Bring Your Own Imageを参照してください。

ロード・バランサ

  • Oracle Cloud Infrastructureロード・バランサは、クライアント・アプリケーションとカスタマVCN間のエンド・ツー・エンドTLS接続を有効にします。 TLS接続は、HTTPロード・バランサまたはTCPロード・バランサを使用してバックエンド・サーバーで終了できます。 ロード・バランサは、デフォルトでTLS1.2を使用します。 HTTPSリスナーの構成については、「ロード・バランサ・リスナーの管理」を参照してください。 独自のTLS証明書をアップロードすることもできます。 詳細は、「SSL証明書の管理」を参照してください。
  • VCNセキュリティ・リストを使用すると、ロード・バランサへのネットワーク・アクセスを構成できます。 このメソッドは、従来のロード・バランサのファイアウォールと同様の機能を提供します。 パブリック・ロード・バランサの場合、Oracleは、異なる2つの「可用性ドメイン」間で高可用性の構成でロード・バランサをインスタンス化するために、リージョンのパブリック・サブネット(DMZサブネットなど)を使用することをお薦めします。 このサブネットのVCNセキュリティ・リストを設定することで、ロード・バランサ・ファイアウォールのルールを構成できます。 ロード・バランサ・セキュリティ・リストの作成の詳細は、「ロード・バランサのセキュリティ・リストを更新し、リスナーにインターネット・トラフィックを許可」を参照してください。 同様に、パブリック・ロード・バランサのトラフィックのみを制限するように、バックエンド・サーバーのVCNセキュリティ・リストを構成する必要があります。 バックエンド・サーバーのセキュリティ・リストの構成の詳細については、「トラフィックをバックエンド・サーバーに限定するためのルールの更新」を参照してください。

DNSゾーンとレコード

DNSゾーンとレコードは、Webプロパティのアクセシビリティのために重要です。 誤った更新や許可されていない削除は、DNS名でアクセスされるサービスの停止を招く可能性があります。 DNSゾーンとレコードを変更できるユーザーIAMを制限することをお薦めします。

セキュリティ・ポリシーの例

セキュリティ・リストの表示のみをユーザーに許可

ネットワーク管理者は、セキュリティ・リストを作成および管理する機能を持つ必要があるユーザーです。

ただし、セキュリティ・リストに含まれるルールを把握する必要のあるネットワーク・ユーザーがいる場合があります。 次のポリシー例では、NetworkUsersグループがセキュリティ・リストとそのコンテンツを表示できます。 このポリシーでは、セキュリティ・リストの作成、アタッチ、削除または変更は許可されていません。

Allow group NetworkUsers to inspect security-lists in tenancy

ユーザーがインターネットへの外部接続を作成しないようにします

場合によっては、ユーザーがVCNへの外部インターネット接続を作成しないようにする必要があります。 次のポリシー例では、NetworkUsersグループはインターネット・ゲートウェイを作成できません。

Allow group NetworkUsers to manage internet-gateways in tenancy
 where request.permission!='INTERNET_GATEWAY_CREATE'

ユーザーがDNSレコードとゾーンを更新しないようにします

次のポリシー例では、NetworkUsersグループがDNSゾーンとレコードを削除および更新できない

Allow group NetworkUsers to manage dns-records in tenancy
 where all {request.permission!='DNS_RECORD_DELETE', 
            request.permission!='DNS_RECORD_UPDATE'} 
Allow group NetworkUsers to manage dns-zones in tenancy
 where all {request.permission!='DNS_ZONE_DELETE', 
            request.permission!='DNS_ZONE_UPDATE'}

便利なCLIコマンド

次のすべての例では、環境変数$T、$ Cおよび$ VCNがそれぞれテナンシOCID、コンパートメントのOCIDおよびVCNのOCIDに設定されています。

VCNのセキュリティ・リストを開く

# list open (0.0.0.0/0) security lists in VCN $VCN in compartment $C 
oci network security-list list -c $C --vcn-id $VCN | grep "source" | grep "\"0.0.0.0/0\""

VCNのゲートウェイを一覧表示

# list all internet gateways in VCN $VCN in compartment $C 
oci network internet-gateway list -c $C --vcn-id $VCN 
# list all DRGs in compartment $C 
oci network drg list -c $C 
# list all local peering gateways in vcn $VCN in compartment $C 
oci network local-peering-gateway list -c $C --vcn-id $VCN

VCNのルート・テーブル・ルールを一覧表示

# list route table rules in VCN $VCN in compartment $C 
oci network route-table list -c $C --vcn-id $VCN