メインコンテンツにスキップ
自媒科技企業向けAI・開発から導入まで
日本語JA
プロジェクト相談

企業AIプロジェクトWiki · 環境・バージョン・リリース

環境分離

別名Environment isolation · 環境隔離 · 環境分割 · 開発・テスト・本番分離

定義

環境分離とは、あるライフサイクル環境の人、プログラム、データ、資格情報、変更、障害が、明示的に許可された管理経路なしに別環境へアクセス、変更、影響することを防ぐ境界と統制の組合せです。計算資源だけでなく、権限、通信、データ流通、秘密、配備先、共有サービス、ログを制限し、試験と監査証拠で実効性を確認します。

環境分離が防ぐもの

開発、テスト、本番では責任が異なります。非本番は頻繁な変更、Debug、障害注入、状態Resetが必要ですが、本番は実業務の安定性、機密性、追跡性を守る必要があります。分離は非本番の自由度が本番への裏口になることを防ぎます。

攻撃だけが対象ではありません。誤った配備先、正式DBへ向いたテストScript、複製された秘密、負荷試験による共有Quota枯渇、Sandbox IDへの本番権限、実顧客へのテスト通知も境界違反です。

すべての通信を禁止するわけではありません。成果物、承認済み設定・データ、必要な監視情報は管理経路を通す必要があります。既定拒否から始め、理由があり、最小権限で、監査・取消できる経路だけを開きます。

確認すべき八つの境界

統制・資源境界

Account、Subscription、Project、Resource Group、Cluster、Namespace、Hostで管理範囲を区切ります。高影響の本番では非本番の資源作成、Quota、Policy変更が届かない強い境界を検討します。

人とWorkloadのID

開発者、テスター、Pipeline、Application、運用者は環境別ID・Roleを使います。管理者Account、Service Principal、長期Keyを共用せず、本番権限は最小・一時・必要時承認とします。

Networkと名前解決

入口、出口、Route、Peering、Private Endpoint、DNS、Firewallを制限し、非本番から本番への直接接続だけでなく、共通Host名や既定Routeによる誤接続も防ぎます。

データとStorage

DB、Object Storage、Cache、Queue、検索Index、Backup、共有Fileに環境所属を持たせます。本番データを下位へ移す場合は、承認、最小化、匿名化、権限、保持、削除が必要です。

設定、秘密、証明書

環境別の設定Store、Vault、暗号Key、証明書、OAuth Client、Webhook Secretを使います。Codeは昇格しても秘密を成果物に入れて運びません。

配備と成果物流通

Pipeline IDは指定環境だけへ配備し、対象保護と承認を設けます。開発の一時Fileや手修正ではなく、信頼済みRepositoryからDigestで同一成果物を昇格します。

外部依存と実副作用

決済、通知、Ticket、地図、ID、企業API、Model ServiceがSandboxか本番かを明示し、宛先Allowlist、上限、Read-only、模擬を設定します。

Log、Backup、共有Service、Quota

LogとBackupにも本番データが含まれます。共有監視、Artifact Store、DNS、CI/CD、AI Quota、出口障害が複数環境を同時停止させないか確認します。

共有資源でも境界は作れる

完全分離は共通障害と越権経路を減らす一方、費用と運用複雑性を増やします。同一Accountか別Accountかだけでなく、資源ごとに判断します。

  1. 環境別に認可できるか

    人、Workload ID、操作を環境単位で制限します。一つのKeyで全環境を読めるなら有効なID境界ではありません。

    確認:Policy、Role、Resource Scope、明示的Deny。

  2. データ区画を強制できるか

    Table、Bucket、Index、Queueの区画を、利用者の注意ではなく信頼できるApplicationとPlatformで強制します。

    確認:既定拒否、区画越境試験、復元範囲。

  3. 容量・障害の影響を限定できるか

    非本番の負荷、Loop、Log急増、Quota枯渇が本番を圧迫しないよう、Quota、Rate Limit、優先度、予約容量を使います。

    確認:Quota、制限、障害演習、Alert担当。

  4. 独立して変更できるか

    共有DNS、Gateway、Repository、Vault、監視の変更がどの環境へ届くかを把握し、段階変更とRollbackを用意します。

    確認:依存図、保守時間、Rollback記録。

  5. 監査で環境を区別できるか

    Access、配備、データ読取ごとに主体、環境、資源、結果を識別し、事故後に越境を調査できるようにします。

    確認:監査項目、Log権限、Alert試験。

  6. 費用削減に見合うか

    節約額と漏えい、誤配備、共通停止、規制影響を比較し、設定の容易さだけで高権限・Stateful資源を共有しません。

    記録:理由、残留Risk、承認者、再確認日。

環境分離の作り方

  1. 環境と責任を棚卸し

    開発、テスト、UAT、ステージング、本番、DR、Sandboxの用途、Owner、データ分類、可用性、Lifecycleを決めます。

  2. 環境間Flowを図示

    Code、Artifact、設定、データ、ID、Network、Log、Backup、外部呼出しと間接共有点を追跡します。

  3. Riskに応じ境界を選択

    資産ごとにAccount、Subscription、Network、Cluster、Namespace、Application制御を選び、制御できるRiskと残るRiskを明記します。

  4. 既定拒否と独立資格情報

    環境間Accessを閉じてから必要経路だけを開き、人、Pipeline、Workloadへ環境限定IDと最小権限を与えます。

  5. 成果物・データ昇格を統制

    承認済みArtifact経路を一つにし、本番データの下方移動は許可と処理を必須に、非本番から上方への書込みは検証なしに許可しません。

  6. 自動化で境界を固定

    IaC、Policy as Code、Pipeline保護、秘密参照、環境Assertionで禁止接続や誤配備先を作れないようにします。

  7. 否定試験を実施

    非本番IDで本番データ、実端点、配備、Log、共有Quotaへアクセスし、拒否、監査、Alertを確認します。

  8. 継続的に再確認

    新API、AI Model、共有Service、権限変更、設定Driftで再接続されるため、資産、Policy、資格情報、通信、異常Accessを照合します。

企業AIの環境混在を防ぐ

Model EndpointとQuota

環境別に識別できるDeployment、ID、Endpoint、安全Policy、Quotaを使います。共有時はApplicationが環境とDeploymentの対応を強制し、呼出者やModelの環境Labelを信用しません。

知識・Vector Store

文書源、Object Store、Embedding Pipeline、Vector DB、検索Index、Cacheに環境所属と権限を持たせ、テスト文書の本番混入と本番機密の下位流出を防ぎます。

会話、Memory、評価データ

Response ID、Thread、履歴、長期Memory、人のFeedback、評価Setを環境と業務主体で分けます。下流でも所属を再検証し、Model生成の環境・Tenant値を認可に使いません。

Prompt、Guardrail、Model版

System Prompt、Filter、Guardrail、Model Alias、Parameterを追跡可能な環境設定として昇格し、テスト用の緩い制御が本番へ流れないようにします。

Agent Toolと資格情報

注文、通知、Ticket、承認Toolには環境別、短期、最小権限のIDを発行します。引数とResource所属は言語ModelではなくApplicationが検証します。

Prompt・出力Log

Prompt、検索断片、出力、Feedbackには機微情報が含まれます。環境別Log先、権限、Mask、保持を用意し、共有監視から開発者が本番会話を読めないようにします。

Provider・Cross-account

托管Model、知識Store、顧客資源のCross-account利用はResource PolicyとIdentity Policyの両方で許可し、データ、Network、Key、監査の責任を明確にします。

分離が機能する証拠

  1. 資産境界を列挙できる

    全Resource、Store、ID、Secret、Endpoint、共有Serviceに環境とOwnerがあります。

  2. 環境間Accessは既定で失敗

    非本番の人・Workloadが本番を読取、書込、配備、呼出しできず、拒否時に機密を漏らしません。

  3. 承認経路が最小

    Artifact昇格、監視集約、管理データ流通を、操作、Resource、方向、時間、主体で限定します。

  4. 誤対象なら停止

    Account、Domain、DB、Index、Queueが期待環境と違えばPipeline、Script、Applicationが停止します。

  5. 共通障害が限定される

    負荷、Log急増、Quota枯渇、共有依存障害、Key Rotationが無制御に本番へ影響しません。

  6. 越境試行を検知できる

    監査に主体、Source、Target、環境、操作、結果が残り、担当付きAlertと対応手順があります。

  7. 一時権限が失効する

    緊急、Vendor、Debug、受入権限に期限があり、Account、Token、Allowlist、データ複製の削除を確認します。

環境分離と混同しやすい概念

関連概念違い
Network分離通信経路を制御する一要素です。Networkが別でも、Cloud管理者、Secret、データExport、配備IDの共有で越境できます。
Account/Subscription分離統制、Quota、ID境界になりますが、Cross-account Role、Peering、共有Key、Pipelineが境界を開く場合があります。
Container/Namespace分離主に計算・Platform資源を分けます。外部DB、Log、Cloud Accountまで自動的に分けるものではありません。
Tenant分離顧客・組織間を守り、環境分離はLifecycle段階を守ります。Multi-tenant Systemでは両方が必要です。
データ匿名化非本番漏えいの影響を下げますが、ID、Network、Secret、配備、実副作用の統制には代わりません。
本番類似性テスト・ステージングは本番条件を再現しつつ、許可なく本番へ影響しないよう分離します。両方を同時に満たします。

出典と適用範囲

ここでいう環境分離は、開発、テスト、UAT、ステージング、本番などのライフサイクル環境間に、実効性のある資源、ID、通信、データ、設定、配備、運用の境界を設けることです。コンテナ分離、テナント分離、ネットワーク分割、アカウント分離、データ匿名化のいずれか一つと同義ではなく、それぞれ実現手段になり得ます。別アカウント、Subscription、Cluster、VNet、物理機器の必要性は、業務影響、データ機密性、規制、影響範囲、運用費で決めます。