OCIセキュリティ実践

こんにちは、技術部の今野です。

クラウドセキュリティは一見複雑に思われがちですが、一番大切なのは「最小権限(Least Privilege)」と「最小公開(Least Exposure)」というシンプルな原則です。Oracle Cloud Infrastructure(OCI)に限らず、すべてのクラウドで共通する考え方です。

  • 最小権限:必要な人に、必要な分だけの権限を与える。
  • 最小公開:必要なサービスだけを外に公開し、他は徹底的に隠す。

この「最小限」を徹底すれば、万が一の時も被害を最小限に抑えられます。この記事では、OCIでこれをどう実現するか、基本的な機能と実践ポイントを解説します。

クラウドセキュリティの基本:2つのカギ🔑

クラウドでは、アクセスとネットワークの管理が特に重要です。OCIでは、以下の2つの機能が「最小限」の原則を実現するカギとなります。

  • IAM (Identity and Access Management):誰がリソースにアクセスできるかを管理します。
  • VCN (Virtual Cloud Network):どこまでネットワークを公開するかを管理します。

これらは「ゼロトラスト」という考え方の土台にもなります。OCIは最初から最低限の権限しか与えない設定なので、安心してセキュリティ対策を始められます。

1. 権限を決める:IAMで「最小権限」を実践

OCIの権限は「IAMポリシー」というルールで設定します。ポイントは、個人ではなく「グループ」に権限を付与することです。

役割ごとにグループ化

  • 職務(役割)別グループ:例えば「ネットワーク管理者」「データベース管理者」など、仕事の役割ごとにグループを作り、そこにユーザーを割り当てます。
  • 必要な権限だけ付与:そのグループに、その役割で本当に必要な最低限の権限だけを与えます。例えば、サーバーの閲覧だけなら read、操作が必要なら use、全てできる manage はごく一部の管理者のみに絞ります。

コンパートメントでリソースを分ける

コンパートメントは、リソース(サーバーやデータベースなど)を論理的に整理する「箱」です。

  • 環境やプロジェクトで分割:開発・テスト・本番環境ごと、またはプロジェクトごとにコンパートメントを分けます。
  • アクセス範囲を限定:このコンパートメントごとにグループへのアクセス権限を設定することで、「Aプロジェクトの人はBプロジェクトのリソースに触れない」といった厳密な分離が可能です。親コンパートメントの権限は子に引き継がれるので、階層構造を意識しましょう。

2. 公開範囲を決める:VCNで「最小公開」を実践

OCI上のネットワークはVCNで構築し、外部への公開範囲をコントロールします。

パブリックとプライベートの使い分け

ネットワークを「パブリックサブネット」と「プライベートサブネット」に分けて、重要なリソースを隠します。

  • パブリックサブネット(公開層):インターネットから直接アクセスが必要なWebサーバーなどを配置。
  • プライベートサブネット(非公開層):データベースやアプリケーションサーバーなど、外部から直接見せたくない機密性の高いリソースを配置。攻撃対象を最小限に抑えられます。

セキュリティルールで通信を厳しく制限

  • セキュリティリスト(サブネット単位):サブネット全体で、どの通信を許可するかを決めます。
  • ネットワークセキュリティグループ(NSG / リソース単位):サーバーやデータベースなどのリソース個別に、さらに細かく通信ルールを設定できます。

これらを組み合わせて、「本当に必要な通信だけ」を許可するように設定します。

セキュリティリストとNSG(ネットワーク・セキュリティ・グループ)の使い分けについては、こちらのVCNの基本と考え方の記事でも少し触れています。

外部への出口を最小限に

インターネットとの接続点(ゲートウェイ)も最小限に絞り、管理します。

  • インターネットゲートウェイ (IGW):公開サービスがインターネットからアクセスされるために必要ですが、公開したいものだけここを通るようにルーティングを限定します。
  • サービスゲートウェイ (SGW):OCI内のサービス(ストレージなど)とは、インターネットを通さずに安全に接続できます。これにより、機密データをインターネットに晒すリスクを減らせます。

継続的な運用と監視:作った後も安全に

セキュリティは一度設定したら終わりではありません。常にチェックし、変化に対応することが重要です。

定期的な見直し

  • 権限の棚卸し:グループメンバーシップや付与された権限が、今も適切か定期的に確認し、不要な権限はすぐに削除しましょう。異動・退職者への対応も速やかに。
  • ネットワーク設定の見直し:セキュリティルールやルーティングに不要な穴がないか定期的にチェックし、一時的に開けたポートは用が済んだら閉じましょう。

監査と通知を活用

OCIには強力な監査機能があります。

  • Auditサービス:OCIで行われたすべての操作を自動で記録します。「誰が、いつ、何をしたか」がわかるので、もしもの時に原因究明に役立ちます。
  • Events Service / Cloud Guard:おかしな設定や不審な動きがあった場合に、自動で検知して通知してくれます。これにより、問題を早期に発見し、対応できます。

もしもの時の準備(インシデント対応)

  • 対応手順の準備:トラブルが起きたときの対応手順を事前に決めておきましょう。
  • 設定変更の記録:一時的に設定を変える場合は、必ず記録を残し、作業後は元に戻すルールを徹底します。
  • 弱点の洗い出し:定期的な脆弱性診断や侵入テストで、隠れた弱点を見つけて改善することも大切です。

まとめ:OCIセキュリティの基本を実践

OCIのセキュリティは、この「最小限」の原則をいかに徹底するかにかかっています。

  1. 設計: 権限とネットワークを慎重に設計する。
  2. 実装: 最小権限・最小公開の原則に従って設定する。
  3. 運用: 定期的に見直し、監視する。
  4. 改善: 新たな脅威や要件に合わせて、継続的にセキュリティを強化する。

これらの基本原則を実践していくことで、OCI環境におけるセキュリティレベルは飛躍的に高まり、安心してクラウド上で展開できるようになります。今日からOCIセキュリティを盤石なものにし、クラウドの真のメリットを享受していきましょう。

参考リンク

VCNの基本と考え方

はじめに

こんにちは、技術部の今野です。

OCI(Oracle Cloud Infrastructure)でインフラを構築するうえで、まず理解しておきたいのが「VCN(Virtual Cloud Network)」です。これは、オンプレミス環境で言えばルーターやスイッチ、ファイアウォールなどを組み合わせて構成していた社内ネットワークに相当し、OCI上に“自社専用のネットワーク空間”を構築できる仕組みです。柔軟なネットワーク設計と、クラウドならではのスケーラビリティやセキュリティ制御を両立できる点が特徴です。

本記事では、VCNの基本的な役割や設計の考え方に加え、構築・運用で押さえておきたいポイントまで解説します。

VCNの基本的な特徴と役割

① テナンシ(アカウント)ごとに作成できる独立ネットワーク

VCNはOCIアカウント(テナンシ)単位で作成され、他のアカウントとは完全に分離された状態で動作します。内部にはサーバー(Compute)、データベース、ロードバランサーなどのあらゆるリソースを配置できます。

② 単一リージョン内で高可用構成も可能

VCNは単一リージョン内で動作しますが、リージョンに存在する複数の可用性ドメイン(AD: Availability Domain)にまたがって利用できます。これにより、障害に強い構成(冗長化)も実現可能です。

③ IPアドレス設計はCIDRで管理

作成時にCIDRブロック(例:10.0.0.0/16)を指定し、ネットワーク内のIPアドレス空間を管理します。これは、オンプレでのIP設計と似た感覚で、範囲内で自由にサブネットを切ることができます。

用途やセキュリティに応じたサブネット分割

VCN内には1つ以上のサブネット(Subnet)を作成します。サブネットはパブリック/プライベートに分類可能で、以下のような使い分けが一般的です。

  • 🔓 パブリックサブネット:Webサーバーなど、インターネットからアクセスさせたいリソース用
  • 🔒 プライベートサブネット:DBや内部APIなど、社内システム限定で利用するリソース用

VCN構成に必要なコンポーネント

VCNはただのネットワーク空間ではなく、複数のネットワーク機能を組み合わせて構築されます。

コンポーネント名 役割
インターネットゲートウェイ (IGW) VCNとインターネット間の通信を可能にする。パブリックサブネットで利用
ルートテーブル 各サブネットからの通信経路を定義。通信先をIGWやDRGなどにルーティング
セキュリティリスト (Security List) サブネット単位でのアクセス制御。IPとポートベースでルールを定義
ネットワークセキュリティグループ (NSG) 個々のインスタンスごとの通信制御。柔軟でリソース単位の管理が可能

必要に応じて、以下のような追加コンポーネントを組み合わせることで、オンプレミスや他VCNとの接続も可能になります。

  • DRG(Dynamic Routing Gateway):オンプレや他VCNとの接続に使用
  • VCNピアリング:別VCNとの安全な通信経路を確保する

設計の流れと考え方

VCNを使ったOCIネットワーク設計は、以下のステップで進めるとスムーズです。

-ステップ1:VCNを作成
CIDRブロック(例:10.0.0.0/16)を指定して仮想ネットワーク空間を作成します。

-ステップ2:サブネットの設計
用途別にパブリック/プライベートサブネットを分けて作成。ADをまたいで冗長化する場合は複数のADにまたがって配置。

-ステップ3:ルート設定
各サブネットにルートテーブルを関連付け、通信経路(例:インターネットはIGW経由、社内はDRG経由など)を明確にします。

-ステップ4:アクセス制御
セキュリティリストやNSGを活用して、外部からのアクセスや内部通信を必要最小限に制限します。

イメージ図:VCNの基本構成
VCNの基本構成
( https://oracle-japan.github.io/ocitutorials/beginners/creating-vcn/ ) より引用

実際の構築・運用において意識しておきたいポイント

VCNはOCIにおけるネットワークの中核ですが、設計段階でのちょっとした判断ミスが、後々の運用コストやセキュリティリスクに直結することがあります。以下に、構築・運用時に特に注意したいポイントを紹介します。

  1. CIDR設計は将来の拡張を見据えて
    最初にCIDRブロックを狭く取りすぎると、後からサブネットを増やしたくなったときにIPアドレスが足りず、VCNを作り直さなければならなくなる可能性があります。新しいサーバーを追加したり、サブネットを追加したくなった場合でも対応できるように、広めのIPアドレス範囲を確保しておくことが重要です。

  2. パブリック・プライベートの分類は明確に
    アクセス制御の甘さや構成の混乱を防ぐためにも、インターネットと通信する必要のあるリソースはパブリックサブネット、それ以外はプライベートに徹底する設計が重要です。NAT Gatewayなどを併用することで、外部アクセスの最小化も図れます。

  3. セキュリティリストとNSGの使い分け
    セキュリティリストはサブネット単位、NSGはインスタンス単位での制御です。動的な管理やリソース単位での柔軟な制御が必要な場合はNSGを活用し、細かく安全なポリシーを設定できます。Oracle公式でもNSGの利用が推奨されています

  4. ルートテーブルの誤設定に注意
    ルートの設定ミスにより、意図しない経路でトラフィックが流れてしまうことがあります。特に、複数のサブネットで異なるルートテーブルを使う場合は、設定の整合性を丁寧に確認することが重要です。

まとめ:VCNはOCIネットワークの“核”

VCNはOCI上でリソースを展開・運用する際の基盤ネットワークです。
オンプレミスと同様のネットワーク設計思想をクラウド上で実現でき、かつ自動化や柔軟な拡張も可能です。これからOCIを使い始める方にとって、VCNの仕組みと構築手順をしっかり理解しておくことは、セキュリティと可用性を両立したシステムを構築するための第一歩となるでしょう。

参考リンク