Cloud Service
OCI Bastion
踏み台インスタンスを常設せず、プライベートサブネット上の資源へ時間制限つきの安全なセッションで接続できる OCI のマネージドサービス。AWS の Systems Manager Session Manager に相当。
- 1.踏み台を常設せず、プライベート資源へ時間制限つきで安全に接続できるマネージド踏み台。
- 2.SSH 公開鍵で認可し、管理対象セッションとポート転送セッションを使い分ける。
- 3.AWS の Systems Manager Session Manager に近い位置づけ。
解決する課題
- プライベートサブネット上のインスタンスや DB へ接続するために、パブリック IP を持つ踏み台インスタンスを常設したくない
- 踏み台を常設すると、OS パッチ・鍵管理・攻撃面といった運用負荷とリスクが恒常的に残る
- 管理アクセスを 必要なときだけ・限られた相手にだけ、しかも時間制限つきで開きたい
- 接続経路を IAM と監査ログで統制し、誰がいつ何へ接続したかを追跡したい
主要概念と用語
- Bastion(要塞): 特定の VCN・サブネットに紐づくマネージドリソース。ここを起点にセッションを張る。踏み台インスタンスのように OS を持たないため、パッチ管理が不要
- Session(セッション): 接続の単位。作成時に**最大セッション時間(TTL)**を指定し、期限が来ると自動的に切断・終了する
- Managed SSH session(管理対象 SSH セッション): Bastion プラグインを有効化した Compute インスタンスへ、踏み台を介さず直接 SSH するセッション
- Port forwarding session(ポート転送 / SSH トンネル): 対象資源の特定ポートへトンネルを張るセッション。インスタンスに加え、Autonomous Database や OKE の API エンドポイントなど、プラグインを持たない資源にも到達できる
- Bastion plugin(Bastion プラグイン): Oracle Cloud Agent の一機能。管理対象 SSH セッションを使う対象インスタンスで有効化が必要
- CIDR allowlist(許可 CIDR): その Bastion へセッション作成を許す送信元 IP レンジ。接続元を絞り込む
- SSH 公開鍵: セッション作成時に登録する利用者の公開鍵。これに対応する秘密鍵を持つ者だけが接続できる
仕様・制限・クォータ
- Bastion は特定の VCN とサブネットに配置し、その経路上で到達できる資源にだけセッションを張れる
- セッションには最大セッション時間(TTL)の上限があり、上限を超える常時接続は想定されていない。長時間の常設用途には向かない
- 各 Bastion には同時アクティブセッション数の上限があり、テナンシ/リージョンごとのサービス制限の枠内で利用する
- 管理対象 SSH セッションは Bastion プラグインを持つ Compute インスタンスが対象。プラグインを持たない資源へはポート転送セッションを使う
- セッション作成時に登録する送信元 CIDRとSSH 公開鍵で、接続元と接続者を二重に制限する
- Bastion を置くサブネットのセキュリティリスト/NSG とルーティングが対象資源へ通っている必要がある
内部の仕組み
Bastion は「常設の踏み台 OS」を持たないマネージドな中継点です。利用者がセッションを作成すると、Oracle 側が一時的な接続経路を用意し、利用者は自分の秘密鍵を使って対象資源へ到達します。セッションは TTL で寿命が決まり、期限が切れると経路ごと閉じられるため、開けっ放しの入口が残りません。
- 管理対象 SSH セッション: 対象インスタンスの Bastion プラグイン(Oracle Cloud Agent)が Bastion と協調し、踏み台を介さずに直接 SSH を成立させる
- ポート転送セッション: 利用者のローカルポートと対象資源のポートの間に SSH トンネルを張る。Web 管理画面・データベース接続・OKE API など、SSH ログインを伴わない通信も中継できる
接続経路はあくまでプライベートサブネット内の正規ルーティングに乗るため、対象資源側にパブリック IP を付与する必要はありません。
対象が Bastion プラグイン入りの Compute インスタンスなら 管理対象 SSH セッションでそのまま SSH。Autonomous Database / OKE / プラグイン無しのインスタンスの特定ポートへ届きたいなら ポート転送セッションでトンネルを張る、と覚えると整理できます。
設計パターン / ベストプラクティス
- 踏み台インスタンスの置き換え: 常設の踏み台 VM を Bastion に置き換え、パッチ管理と常時開放ポートを排除する
- 短い TTL の徹底: セッション時間は作業に必要な最小限に設定し、長時間の常設接続を避ける
- 送信元 CIDR の絞り込み: 企業 VPN や拠点の出口 IP など、許可 CIDR を必要最小限にする
- IAM で利用者を限定: Bastion とセッションの作成権限を特定グループのみに付与し、誰でも踏み台を開けない状態にする
- プラグイン管理: 管理対象 SSH を使うインスタンスでは Bastion プラグインを有効化し、不要なインスタンスでは無効のままにして攻撃面を広げない
- DB/OKE はポート転送: Autonomous Database や OKE のプライベートエンドポイントへはポート転送セッションで安全に到達する
運用・監視
- OCI Audit に Bastion とセッションの作成・終了が記録される。「誰がいつどの資源へセッションを張ったか」を追跡できる
- セッションは TTL で自動終了するため、切り忘れによる開放放置が起きにくい
- 接続できないときの切り分け順: 対象資源への経路(ルート/セキュリティリスト/NSG) → Bastion プラグインの有効化(管理対象 SSH の場合) → 送信元 CIDR の許可 → SSH 公開鍵の対応 → IAM 権限
- 管理対象 SSH を使うインスタンスでは Oracle Cloud Agent と Bastion プラグインの稼働状態を確認する
- 常時接続が必要な用途は Bastion の想定外。その場合は 専用線(FastConnect)や VPN など別手段を検討する
コスト
| 項目 | 課金の考え方 | ポイント |
|---|---|---|
| Bastion 本体 | サービス利用に明示課金しない位置づけ | 踏み台 VM のような常時稼働インスタンス費が不要 |
| 踏み台インスタンス(従来) | VM の稼働時間 + 付随費用 | 常設だと止め忘れで費用と攻撃面が残る |
| 関連ネットワーク資源 | NAT/データ転送など既存どおり | 経路上の資源は通常どおり課金される |
常設踏み台 VM をやめることで、稼働インスタンスのコストとパッチ・鍵・常時開放ポートの運用負荷を同時に削減できます。必要なときだけ時間制限つきでセッションを張るモデルは、コスト面でもセキュリティ面でも有利です。
セキュリティ
- 常時開放の入口を持たない: セッションは TTL で自動的に閉じ、踏み台 VM のような恒常的な攻撃面を作らない
- 多層の絞り込み: 送信元 CIDR・SSH 公開鍵・IAM 権限を組み合わせて接続者と接続元を制限する
- パブリック IP 不要: 対象資源はプライベートのまま到達でき、インターネットへの暴露を避けられる
- 監査の徹底: すべてのセッション操作を OCI Audit で追跡可能にし、アクセスの説明責任を担保する
- 最小権限: Bastion/セッション作成の IAM 権限を絞り、許可 CIDR も最小化する
パブリック IP つきの踏み台インスタンスを常設し、SSH ポートを広い範囲(全 IP など)に開けっ放しにするのは典型的なアンチパターンです。パッチ漏れと常時開放ポートが恒常的なリスクになります。OCI Bastion で時間制限つきセッションに置き換え、送信元 CIDR と SSH 公開鍵で接続を絞ってください。
Well-Architected の観点
- セキュリティ: 常時開放の踏み台を排し、時間制限つき・最小公開のアクセスへ移行できる。送信元 CIDR・SSH 鍵・IAM の多層防御で接続を統制し、すべてを監査可能にする
- 運用上の優秀性: 踏み台 VM の OS パッチ・鍵ローテーション・死活監視といった運用作業をマネージドサービスに肩代わりさせ、運用負荷と人的ミスを減らせる
試験で問われるポイント
- Bastion は踏み台インスタンスを常設せず、プライベート資源へ時間制限つきの安全なセッションで接続するマネージドサービス
- セッションには**最大セッション時間(TTL)**があり、期限が来ると自動終了する。常時接続用途には向かない
- 管理対象 SSH セッションは Bastion プラグイン入りの Compute インスタンスが対象。ポート転送セッションは Autonomous Database や OKE などプラグインを持たない資源にも使える
- 接続者は SSH 公開鍵、接続元は 許可 CIDR で制限し、操作は OCI Audit に記録される
- Bastion は 特定の VCN・サブネットに配置し、その経路で到達できる資源にだけセッションを張れる
- AWS では Systems Manager Session Manager が近い位置づけ(踏み台レスで管理アクセス)
関連サービス・比較
| 観点 | OCI Bastion | AWS Systems Manager Session Manager |
|---|---|---|
| 主目的 | 踏み台レスでプライベート資源へ安全接続 | 踏み台レスでインスタンスへ安全接続 |
| 常設踏み台 | 不要(マネージドな中継点) | 不要(SSM エージェント経由) |
| 接続方式 | 管理対象 SSH / ポート転送セッション | SSM セッション / ポート転送 |
| 対象資源 | Compute・Autonomous DB・OKE 等 | 主に EC2 などのインスタンス |
| 時間制限 | セッション TTL で自動終了 | アイドルタイムアウト等で制御 |
| 接続元制限 | 許可 CIDR + SSH 公開鍵 | IAM ポリシー中心 |
| 権限と監査 | IAM ポリシー + OCI Audit | IAM ポリシー + CloudTrail |
プライベート資源へのアクセス手段として、Bastion は運用者の管理アクセス向きです。サイト間の恒常的な接続には VPN Connect や FastConnect、VCN 内のサービス到達には Service Gateway など、用途に応じて使い分けると整理しやすくなります。
ハンズオン / CLI例
# 1. Bastion を作成(プライベートサブネットに配置し、許可 CIDR で接続元を限定)
oci bastion bastion create \
--bastion-type standard \
--compartment-id ocid1.compartment.oc1..xxxx \
--target-subnet-id ocid1.subnet.oc1..xxxx \
--name ops-bastion \
--client-cidr-list '["203.0.113.0/24"]'
# 2. 管理対象 SSH セッション(Bastion プラグイン入りインスタンスへ直接 SSH)
# ttl-in-seconds で最大セッション時間を最小限に設定する
oci bastion session create-managed-ssh \
--bastion-id ocid1.bastion.oc1..xxxx \
--target-resource-id ocid1.instance.oc1..xxxx \
--target-os-username opc \
--ssh-public-key-file ~/.ssh/id_rsa.pub \
--session-ttl 1800 \
--display-name ssh-to-app
# 3. ポート転送セッション(Autonomous DB 等の特定ポートへトンネル)
oci bastion session create-port-forwarding \
--bastion-id ocid1.bastion.oc1..xxxx \
--target-private-ip 10.0.1.20 \
--target-port 1522 \
--ssh-public-key-file ~/.ssh/id_rsa.pub \
--session-ttl 1800 \
--display-name tunnel-to-db
# 4. セッション一覧を確認(接続コマンドはセッション詳細から取得できる)
oci bastion session list \
--bastion-id ocid1.bastion.oc1..xxxx
OCI Service
OCI Bastionを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
セキュリティ・ID
比較で見る軸
クラウド: OCI / カテゴリ: セキュリティ・ID / 難易度: basic
導入後に効く点
SSH 公開鍵で認可し、管理対象セッションとポート転送セッションを使い分ける。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- OCI
- カテゴリ
- セキュリティ・ID
- 難易度
- basic
- 関連資格
- —
- 設計柱
- security / operational
判断チェックリスト
- 自社の用途が「セキュリティ・ID / security」に近いか確認する。
- 強みである「踏み台を常設せず、プライベート資源へ時間制限つきで安全に接続できるマネージド踏み台。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。