Oracle CloudのCIS Foundationベンチマークを満たす安全なランディング・ゾーンのデプロイ

Oracle Cloudでワークロードを実行するには、効率的に操作できるセキュアな環境が必要です。このリファレンス・アーキテクチャは、CIS Oracle Cloud Infrastructure Foundations Benchmarkに記載されているセキュリティ・ガイダンスを満たすために、Center for Internet Security (CIS)によって認定されているTerraformベースのランディング・ゾーン・テンプレートを提供します。動作保証については、https://www.cisecurity.orgを参照してください。

アーキテクチャ

アーキテクチャは、テナンシのコンパートメント設計と、職務分掌のグループおよびポリシーから始まります。 ランディング・ゾーンでは、指定された親コンパートメント内のランディング・ゾーン・コンパートメントのV2プロビジョニングがサポートされています。各ランディング・ゾーン・コンパートメントには、コンパートメント内のリソースを管理し、他のコンパートメント内の必要なリソースにアクセスするための適切な権限を持つグループが割り当てられます。

ランディング・ゾーンV2を使用すると、スタンドアロン・モードまたはハブおよびスポーク・アーキテクチャの構成要素として、複数のVCNをプロビジョニングできます。VCNは、汎用標準の3層ネットワーク・トポロジに従うか、Oracle Exadata Database Serviceデプロイメントのサポートなど、特定のトポロジに向けて指向できます。これらは、インバウンドおよびアウトバウンドのインタフェースを適切に保護して、必要なルーティングで構成された即時利用可能な状態です。

ランディング・ゾーンには、強力なセキュリティ・ポスチャのためにアーキテクチャ全体と連携してデプロイできる様々な事前構成されたセキュリティ・サービスが含まれています。これらのサービスは、Oracle Cloud Guard、フロー・ログ、Oracle Cloud Infrastructure Service Connector Hub、顧客管理キーを含むVault、Oracle Cloud Infrastructure Vulnerability Scanning Service、Oracle Cloud Infrastructure BastionおよびOracle Security Zonesです。通知は、「トピック」および「イベント」を使用して設定され、デプロイされたリソースの変更について管理者に警告します。

次の図は、このリファレンス・アーキテクチャを示しています。

oci-cis-landingzone.pngの説明が続きます
図oci-cis-landingzone.pngの説明

oci-cis-landingzone-oracle.zip

このアーキテクチャには次のコンポーネントがあります。

  • Tenancy

    テナンシは、Oracle Cloud Infrastructureのサインアップ時にOracleがOracle Cloud内で設定するセキュアで分離されたパーティションです。テナンシ内のOracle Cloudでリソースを作成、編成および管理できます。テナンシは、会社または組織と同義です。通常、会社は単一のテナンシを持ち、そのテナンシ内の組織構造を反映します。通常、単一のテナンシは単一のサブスクリプションに関連付けられ、単一のサブスクリプションには1つのテナンシのみが含まれます。

  • ポリシー

    Oracle Cloud Infrastructure Identity and Access Managementポリシーでは、誰がどのリソースにどのようにアクセスできるかを指定します。アクセスはグループ・レベルおよびコンパートメント・レベルで付与されます。つまり、特定のコンパートメント内またはテナンシへの特定のアクセスのタイプをグループに付与するポリシーを作成できます。

  • 区分

    コンパートメントは、Oracle Cloud Infrastructureテナンシ内のクロスリージョン論理パーティションです。コンパートメントを使用して、Oracle Cloudでリソースを編成、リソースへのアクセスを制御および使用割当てを設定します。特定のコンパートメント内のリソースへのアクセスを制御するには、誰がリソースにアクセスできるか、どのアクションを実行できるかを指定するポリシーを定義します。

    このランディング・ゾーン・テンプレート内のリソースは、次のコンパートメントにプロビジョニングされます:
    • 下にリストされているすべてのコンパートメントを含む推奨囲みコンパートメント。
    • 必要なネットワーク・ゲートウェイを含むすべてのネットワーキング・リソースのネットワーク・コンパートメント。
    • ログ、キー管理および通知リソースのセキュリティ・コンパートメント。
    • コンピュート、ストレージ、関数、ストリーム、Kubernetesノード、APIゲートウェイなど、アプリケーション関連サービスのアプリケーション・コンパートメント。
    • すべてのデータベース・リソースのデータベース・コンパートメント。
    • Oracle Exadata Database Serviceインフラストラクチャのオプションコンパートメント。

    図のグレー表示のアイコンは、テンプレートによってプロビジョニングされていないサービスを示しています。

    このコンパートメントの設計は、様々な組織で見られる基本的な機能構造を反映しており、ITの責任は通常、ネットワーキング、セキュリティ、アプリケーション開発、およびデータベース管理者の間で分離されています。

  • 仮想クラウド・ネットワーク(VCN)およびサブネット

    VCNは、Oracle Cloud Infrastructureリージョンで設定する、ソフトウェアで定義されたカスタマイズ可能なネットワークです。従来のデータ・センター・ネットワークと同様に、VCNによってネットワーク環境を制御できます。VCNには重複しない複数のCIDRブロックを含めることができ、VCNの作成後にそれらを変更できます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。

    デフォルトでは、テンプレートは1つのパブリック・サブネットと2つのプライベート・サブネットを持つ汎用標準の3層VCNをデプロイします。パブリック・サブネットは、ロード・バランサおよび要塞サーバーに使用されます。アプリケーション層とデータベース層は、個別のプライベート・サブネットにアタッチされます。テンプレートでは、Oracle Exadata Database Serviceなどの特定のワークロードのデプロイメントをサポートするVCNを作成することもできます。

  • インターネット・ゲートウェイ

    インターネット・ゲートウェイによって、VCN内のパブリック・サブネットとパブリック・インターネット間のトラフィックが許可されます。

  • 動的ルーティング・ゲートウェイ(DRG)

    DRGは、オンプレミス・ネットワークとVCN間のプライベート・ネットワーク・トラフィックのパスを提供する仮想ルーターであり、同じリージョンまたはリージョン間のVCN間のトラフィックのルーティングにも使用できます。

  • NATゲートウェイ

    NATゲートウェイを使用すると、VCN内のプライベート・リソースは、受信インターネット接続にそれらのリソースを公開することなく、インターネット上のホストにアクセスできます。

  • サービス・ゲートウェイ

    サービス・ゲートウェイは、VCNからOracle Cloud Infrastructure Object Storageなどの他のサービスへのアクセスを提供します。The traffic from the VCN to the Oracle service travels over the Oracle network fabric and does not traverse the internet.

  • Oracleサービス・ネットワーク

    Oracle Services Network (OSN)は、Oracleサービス用に予約されているOracle Cloud Infrastructureの概念的なネットワークです。これらのサービスには、インターネットを介してアクセス可能なパブリックIPアドレスがあります。Oracle Cloud外部のホストは、Oracle Cloud Infrastructure FastConnectまたはVPN接続を使用してOSNにプライベートにアクセスできます。VCN内のホストは、サービス・ゲートウェイを介してOSNにプライベートにアクセスできます。

  • ネットワーク・セキュリティ・グループ(NSG)

    ネットワーク・セキュリティ・グループ(NSG)は、クラウド・リソースの仮想ファイアウォールとして機能します。Oracle Cloud Infrastructureのゼロ・トラスト・セキュリティ・モデルを使用すると、すべてのトラフィックが拒否され、VCN内のネットワーク・トラフィックを制御できます。NSGは、単一のVCN内の指定されたVNICのセットにのみ適用されるイングレスおよびエグレス・セキュリティ・ルールのセットで構成されます。

  • イベント

    Oracle Cloud Infrastructureサービスでは、リソースの変更を記述する構造化メッセージであるイベントが生成されます。イベントは、作成、読取り、更新または削除(CRUD)操作、リソース・ライフサイクル状態の変更およびクラウド・リソースに影響するシステム・イベントに対して発行されます。

  • 通知

    Oracle Cloud Infrastructure Notificationsサービスは、Oracle Cloud Infrastructureでホストされているアプリケーションに対して、セキュアで高信頼性、低レイテンシおよび永続的なメッセージを配信する公開- サブスクライブ・パターンを介して分散コンポーネントにメッセージをブロードキャストします。

  • ボールト

    Oracle Cloud Infrastructure Vaultでは、クラウド内のリソースへのアクセスを保護するために使用するデータおよびシークレット資格証明を保護する暗号化キーを集中管理できます。Vaultサービスを使用して、ボールト、キーおよびシークレットを作成および管理できます。

  • ログ
    ロギングは、クラウド内のリソースから次のタイプのログへのアクセスを提供する、高度に拡張可能な完全管理型のサービスです。
    • 監査ログ: 監査サービスによって発行されたイベントに関連するログ。
    • サービス・ログ: APIゲートウェイ、イベント、ファンクション、ロード・バランシング、オブジェクト・ストレージ、VCNフロー・ログなどの個々のサービスによって発行されたログ。
    • カスタム・ログ: カスタム・アプリケーション、他のクラウド・プロバイダまたはオンプレミス環境からの診断情報を含むログ。
  • サービス・コネクタ

    Oracle Cloud Infrastructure Service Connector Hubは、OCIのサービス間のデータ移動を調整するクラウド・メッセージ・バス・プラットフォームです。サービス・コネクタを使用して、ソース・サービスからターゲット・サービスにデータを移動できます。サービス・コネクタでは、オプションで、ターゲット・サービスに配信される前にデータに対して実行するタスク(関数など)を指定することもできます。

    Oracle Cloud Infrastructure Service Connector Hubを使用して、SIEMシステム用のロギング集計フレームワークを迅速に構築できます。

  • クラウド・ガード

    Oracle Cloud Guardは、テナンシにセキュリティの問題を引き起こす可能性のあるリソースの構成設定およびアクションを監視することで、Oracle Cloudの強力なセキュリティ状態を達成し、維持するのに役立ちます。

    Oracle Cloud Guardを使用して、Oracle Cloud Infrastructure内のリソースのセキュリティをモニターおよびメンテナンスできます。クラウド・ガードはディテクタ・レシピを使用します。このレシピを定義すると、セキュリティの弱点についてリソースを調べたり、特定のリスクのあるアクティビティについてオペレータとユーザーをモニターしたりできます。構成の誤りまたは安全でないアクティビティが検出された場合、クラウド・ガードは、ユーザーが定義できるレスポンダ・レシピに基づいて、修正アクションを推奨し、それらのアクションの実行を支援します。

  • セキュリティ・ゾーン

    セキュリティ・ゾーンは、1つ以上のコンパートメントおよびセキュリティ・ゾーン・レシピに関連付けられます。セキュリティ・ゾーンでリソースを作成して更新すると、Oracle Cloud Infrastructure (OCI)は、これらの操作をセキュリティ・ゾーン・レシピで定義されたポリシーのリストに対して検証します。セキュリティ・ゾーン・ポリシーに違反している場合、操作は拒否されます。

    セキュリティ・ゾーンによって、OCIリソースがOracle Cloud Infrastructure ComputeOracle Cloud Infrastructure NetworkingOracle Cloud Infrastructure Object StorageOracle Cloud Infrastructure Block Volumesおよびデータベース・リソースなどのセキュリティ・ポリシーに準拠していることが保証されます。

  • 脆弱性スキャン・サービス

    Oracle Cloud Infrastructureの脆弱性スキャン・サービスは、ポートおよびホストの潜在的な脆弱性を定期的にチェックすることで、Oracle Cloudのセキュリティ状態を改善するのに役立ちます。このサービスは、これらの脆弱性に関するメトリックおよび詳細を含むレポートを生成します。

  • 要塞サービス

    Oracle Cloud Infrastructure Bastionサービスは、アイデンティティベース、監査済および期限付きSecure Shell (SSH)セッションを使用して、パブリック・エンドポイントを持たない特定のIPアドレスからターゲットOCIリソースへの制限付きアクセスを提供します。

  • オブジェクト・ストレージ

    オブジェクト・ストレージでは、データベースのバックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データおよび非構造化データにすばやくアクセスできます。インターネットから直接またはクラウド・プラットフォーム内から、安全かつセキュアにデータを格納し、取得できます。パフォーマンスやサービスの信頼性を低下させることなく、ストレージを拡張できます。迅速、即時、頻繁にアクセスする必要のあるホット・ストレージには、標準ストレージを使用します。長時間保持し、ほとんどまたはめったにアクセスしないコールド・ストレージには、アーカイブ・ストレージを使用します。

レコメンデーション

クラウド環境のセキュリティを設計および構成する出発点として、次の推奨事項を使用してください。お客様の要件は、ここで説明するアーキテクチャとは異なる場合があります。

  • ネットワーク構成

    VCNについて、プライベート接続を設定する他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。

  • セキュリティーのモニタリング

    Oracle Cloud Guardを使用して、Oracle Cloud Infrastructure内のリソースのセキュリティをモニターおよびメンテナンスします。クラウド・ガードはディテクタ・レシピを使用します。このレシピを定義すると、セキュリティの弱点についてリソースを調べたり、リスクのあるアクティビティについてオペレータとユーザーをモニターしたりできます。構成の誤りまたは安全でないアクティビティが検出された場合、クラウド・ガードは、ユーザーが定義できるレスポンダ・レシピに基づいて、修正アクションを推奨し、それらのアクションの実行を支援します。

  • セキュアなリソース・プロビジョニング

    最大限のセキュリティーを必要とするリソースの場合は、セキュリティーゾーンを使用します。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースは、パブリック・インターネットからアクセスできず、顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成および更新すると、Oracle Cloud Infrastructureでは、セキュリティ・ゾーン・レシピのポリシーに対して操作が検証され、ポリシーに違反する操作が拒否されます。

考慮事項

このリファレンス・アーキテクチャを実装する場合、次の点を考慮してください。

  • アクセス権限

    ランディング・ゾーン・テンプレートでは、リソースをテナンシ管理者(管理者グループのメンバーであるユーザー)またはより狭い権限を持つユーザーとしてプロビジョニングできます。CIS OCIランディング・ゾーンのデプロイメント・モードについては、詳細を参照してください。

    ランディング・ゾーン・テンプレートは、リソースをテナンシ管理者(Administratorsグループのメンバーであるユーザー)としてプロビジョニングし、初期プロビジョニング後に個別の管理者グループが各コンパートメントを管理できるようにするポリシーを含みます。事前構成済ポリシーは、OCIで使用可能なすべてのリソースをカバーするわけではありません。つまり、テンプレートによって現在デプロイされているリソースに適用できます。Terraformテンプレートにリソースを追加する場合は、必要な追加ポリシー・ステートメントを定義する必要があります。

  • ネットワーク構成

    ランディング・ゾーン・ネットワークは、1対複数のスタンドアロンVCNを使用して、またはOracle Cloud Infrastructure DRG V2サービスを使用したハブ&スポーク・アーキテクチャで、様々な方法でデプロイできます。インターネット接続のないネットワークを構成することもできます。ランディング・ゾーンではスタンドアロンとハブ&スポークを切り替えることができますが、切り替えるときに手動アクションが必要になる可能性があるため、特定の設計を計画することが重要です。

  • ランディング・ゾーン・テンプレートのカスタマイズ

    Terraform構成には、リソースをプロビジョニングするための単一のルート・モジュールと個々のモジュールがあります。このモジュラ・パターンにより、効率的で一貫性のあるコード再利用が可能になります。Terraform構成にリソースを追加するには、既存のモジュールを再利用しますが、Terraformのオーバーライド・ファイルを使用して、特定の変数を必要な構成でオーバーライドします。たとえば、新しいコンパートメントを追加するには、コンパートメントの元のマップと同じ名前のコンパートメント・オブジェクトの新しいマップをoverride.tfファイルに定義します。詳細は、ランディング・ゾーンのカスタマイズを参照してください。

  • デプロイメント・ガイド

    GitHubのOCI CISランディング・ゾーン・クイック・スタート・デプロイメント・ガイドには、OCI CISランディング・ゾーンの構成方法に関する詳細なガイダンスが記載されています。これには、ランディング・ゾーンのカスタマイズ方法に関するデプロイメント・シナリオとステップが含まれます。

デプロイ

このソリューションのTerraformコードは、GitHubにあります。1回のクリックでコードをOracle Cloud Infrastructure Resource Managerにプルし、スタックを作成してデプロイできます。または、GitHubからコンピュータにコードをダウンロードし、コードをカスタマイズし、Terraform CLIを使用してアーキテクチャをデプロイします。

  • Oracle Cloud Infrastructure Resource Managerのサンプル・スタックを使用してデプロイします:
    1. に移動しますOracle Cloudへのデプロイ

      まだサインインしていない場合は、テナンシおよびユーザー資格証明を入力します。

    2. スタックをデプロイするリージョンを選択します。
    3. 画面上のプロンプトおよび指示に従ってスタックを作成します。
    4. スタックを作成したら、「Terraformアクション」をクリックし、「プラン」を選択します。
    5. ジョブが完了するまで待機し、プランをレビューします。

      変更を加えるには、「スタックの詳細」ページに戻り、「スタックの編集」をクリックして必要な変更を行います。次に、「プラン」アクションを再度実行します。

    6. それ以上の変更が必要ない場合は、「スタックの詳細」ページに戻り、「Terraformアクション」をクリックして「適用」を選択します。
  • GitHubのTerraformコードを使用してデプロイします:
    1. GitHubに移動します。
    2. ローカル・コンピュータにコードをダウンロードまたはクローニングします。
    3. READMEの指示に従います。

変更ログ

このログには、重要な変更が一覧表示されます。