デバイス層:注文単位で専有
有効な1件の注文につき、1台の専有物理ホストが割り当てられます。CPU、メモリ、ローカルストレージは他の注文と複数の仮想インスタンスに分割されず、macOSのGUIとコマンドラインをビルド、デバッグ、タスク実行に直接利用できます。
- 他の注文からこのホストへログインまたは割り当てられることはありません。
- ビルドキャッシュ、作業ディレクトリ、ローカルログは現在のデバイス環境に保存されます。
- ホストを解放する前に、保持するデータを移行してください。
1件の注文につき1台の専有物理ホストを提供します。仮想マシンではありません。デバイス分離は出発点に過ぎず、アカウント認証情報、リモートセッション、署名資材、バックアップ、プロジェクト設定は開発プロセスに沿って個別に管理する必要があります。
デバイスを専有しても、ネットワーク、リポジトリ、アップロード先、チームアカウントまで自動的に分離されるわけではありません。各層で権限と監視項目を個別に設定してください。
分離強度を判断する際は、デバイス、ネットワーク、アカウント、外部システムを分けて確認し、「専有物理ホスト」がすべての工程を自動的に専有するものと誤解しないようにします。
有効な1件の注文につき、1台の専有物理ホストが割り当てられます。CPU、メモリ、ローカルストレージは他の注文と複数の仮想インスタンスに分割されず、macOSのGUIとコマンドラインをビルド、デバッグ、タスク実行に直接利用できます。
データセンターの出口回線、通信事業者回線、インターネット経路は複数のデバイスで共有される場合があります。ホストの専有はパブリックネットワーク経路の専有を意味しないため、接続品質とアクセス方針を個別に監視してください。
引き渡し時の接続情報をチーム共通の入口として長期間使わないでください。初回ログイン後、追跡・無効化・ローテーションが可能なアクセス方式をすぐに整備します。
初回ログイン後にシステムの認証情報を更新し、旧情報が自動化スクリプト、端末履歴、チーム文書で使われていないことを確認します。
コマンドライン接続には個別の鍵を優先して使用します。メンバーや自動化タスクごとに異なる鍵を割り当てれば、単一のアクセス元だけを無効化できます。
複数人で同じシステムアカウントを使うと、操作元が不明確になります。役割ごとに権限を割り当て、日常の開発権限で管理操作まで行える状態を避けてください。
メンバー変更、プロジェクト終了、自動化タスクの停止時には、アカウント、鍵、リポジトリトークン、アップロード認証情報がまだ必要か確認します。
SSH、VNC、macOS画面共有はそれぞれ役割が異なります。接続方式を選んだら、公開範囲、セッション動作、クライアントバージョン、認証情報のローテーション周期も合わせて設定します。
| 確認項目 | 実施すること | 避けること | 確認シグナル |
|---|---|---|---|
| 公開範囲 | 現在の接続方式と自動化タスクに必要な入口だけを残す。 | トラブル対応で一時的に広げた範囲を戻さない。 | 未使用の入口では接続できない。 |
| セッションロック | GUIセッションを離れるときは画面をロックし、タスク終了後は明示的にログアウトする。 | 共有端末で認証済みセッションを開いたままにする。 | 再入室時に再認証が必要になる。 |
| クライアント更新 | サポート対象のSSH、VNC、画面共有クライアントを使用する。 | 出所を確認できない古いクライアントを使い続ける。 | クライアントのバージョンがチーム基準と一致する。 |
| 異常確認 | ログイン時刻、接続元、アクティブセッション、最近の設定変更を確認する。 | ホストがオンラインであることだけでアクセス正常と判断する。 | アクティブセッションと実際の操作者が1対1で対応する。 |
| 認証情報のローテーション | メンバー離脱、鍵の漏えい懸念、権限変更があれば直ちにローテーションする。 | 同じ認証情報を複数のプロジェクトやメンバー端末にコピーする。 | 旧認証情報が無効になり、新しい認証情報が必要な場所だけに存在する。 |
画質を下げる、解像度を固定する、画面アニメーションを減らすことでリモート操作を改善できますが、そのために公開入口を増やす必要はありません。接続品質はまず遅延、帯域幅、クライアント設定、同時セッションを順に確認します。
リモートアクセス方法を見る利用期間中のソースコード、ビルドキャッシュ、モデル、素材、成果物はユーザーが整理・バックアップします。ホスト解放の直前になって、持ち出すべきデータを初めて確認することは避けてください。
リポジトリ、素材ソース、依存キャッシュ、成果物の保存先を記録します。再生成できるデータと保持必須のデータを分け、ホスト全体を唯一のコピーにしないでください。
プロジェクトの進行に合わせてソース変更、出力成果物、重要な設定を同期します。自動化タスクでは、失敗時に残すログと成功時にアップロードする結果を明確にします。
ファイルがコピーされたことだけを確認しないでください。アーカイブを展開できるか、必要な設定をプロジェクトが認識するか、成果物が完全かを抜き取り確認し、復元に必要なバージョンを記録します。
ホスト解放前に、成果物、ソースコード、証明書、プロビジョニングプロファイル、プロジェクト設定、必要なキャッシュがチームルールに沿って処理済みであることを確認し、不要な外部トークンと鍵を無効化します。
ソースコードの取得、ビルド実行、署名、成果物のアップロードを異なる権限領域に分けます。工程で資材をホストに置く場合も、可視範囲、利用時間、ログ出力を制限してください。
| 資材 | 推奨権限 | 注入方法 | ログ処理 |
|---|---|---|---|
| 署名証明書 | 署名が必要なタスクと操作者だけに許可する。 | 管理された工程でインポートし、共有ディレクトリに散在させない。 | 証明書パスワード、エクスポートパスワード、完全な識別情報を出力しない。 |
| プロビジョニングプロファイル | プロジェクトと対象環境ごとに管理する。 | ビルドタスクが明示的なファイルを選択し、あいまいな一致を避ける。 | ファイル種別と一致結果を残し、機密フィールドを隠す。 |
| 環境変数 | 実際に使用するプロセスにだけ提供する。 | 実行時に注入し、ソースコードや公開設定に書き込まない。 | コマンドエコー、エラースタック、デバッグ出力をマスキングする。 |
| リポジトリトークン | 読み取り専用を優先し、必要なリポジトリに限定する。 | タスク環境から読み込み、バージョン管理に登録しない。 | リモートURLとリクエストヘッダーからトークンを削除する。 |
| アップロード鍵 | 指定した成果物保存先への書き込みだけを許可する。 | ソースコード取得用認証情報と分離し、パイプラインの段階ごとに読み込む。 | レスポンスコードとタスクIDを残し、完全な鍵は記録しない。 |
ソースコード取得タスクにアップロード権限は不要です。テスト実行タスクに署名資材の読み取り権限は不要で、成果物アップロードタスクにもリポジトリ変更権限は必要ありません。
ログには時刻、手順、終了コード、ファイル種別、エラー位置を残せますが、パスワード、秘密鍵、トークン、完全なリクエストヘッダー、未マスキングのソースコード断片は除去します。
すべてのノードは365日、年間を通じて正常に稼働しています。個別の問題を調査する際は、ノード、ホスト、接続、タスクの4種類の状態を分けて監視し、単一の正常表示でワークフロー全体を判断しないでください。
ノード全体のネットワークと管理機能を確認し、同じノードの基盤サービスに影響があるか判断します。
単独では証明できないこと特定ホストのシステムセッションやプロジェクトタスクが正常であること。
ホストがオンラインか、管理入口から現在のデバイス状態を取得できるか確認します。
単独では証明できないことSSH、VNC、画面共有のアドレス、ポート、認証情報がすべて正しいこと。
接続方式、クライアント、接続先アドレス、ポート、ローカルネットワーク、セッション使用状況を記録します。
単独では証明できないことXcode、依存関係、署名資材、プロジェクト設定で現在のビルドを完了できること。
工程ログ、終了コード、成果物の検証、アップロード結果でタスクの実行状況を判断します。
単独では証明できないことノードまたはネットワークでインフラ障害が発生していること。前3種類のシグナルと合わせて判断します。
質の高い報告なら、サポート担当者はノード、ホスト、接続、プロジェクトのどこに問題があるかをすぐに切り分けられます。「使えない」とだけ書くと重要な情報が失われ、確認の往復も増えます。
タイムゾーンと、問題が初めて発生した時間帯を記録します。
シンガポール、日本(東京)、韓国(ソウル)、香港、米国東部のいずれかを明記します。
コンソールで確認できる注文IDまたはホストIDを提供します。
単一タスク、ホスト全体、複数メンバーのどこに影響があるか説明します。
実際の操作順に沿って、入力、操作、失敗箇所を列挙します。
ノード、ホスト、接続、タスクの状態を個別に記載します。
エラーの文脈を残し、パスワード、秘密鍵、トークン、ソースコードの秘密情報を除去します。
コンソールにログインしてチケットを送信し、注文IDを関連付けてください。接続障害、ホスト状態、追加ストレージ、更新、解放手続きなどに適しています。
コンソールからチケットを送信発生時刻、影響範囲、マスキング済みの資料をサポートメールへ送信します。メールにパスワード、秘密鍵、完全な決済情報、未マスキングのソースコードを添付しないでください。
support@minidebug.com責任範囲を明確にすることは、問題を相手に押し付けるためではありません。障害発生時に、正しい管理箇所、証拠、対応策へ直接たどり着くためです。
注文に応じて専有物理ホストを提供し、管理入口にホストと注文の状態を表示します。
シンガポール、日本(東京)、韓国(ソウル)、香港、米国東部の5ノードを365日、年間を通じて正常に稼働させます。
対象ホストの接続情報と必要な管理機能を提供します。
注文ID、ノード、時刻、マスキング済みログに基づき、物理ノードと管理入口の問題を特定します。
注文、更新、ホスト状態、解放手続きを処理します。実際の利用可能状態はコンソールのリアルタイム表示を基準とします。
ログイン認証情報を保護し、チームメンバーのアクセスを管理し、不要になったアカウントと鍵を速やかに無効化します。
ソースコード、モデル、素材、証明書、プロビジョニングプロファイル、その他のビルド資材に適切な利用権限があることを確認します。
Xcodeのバージョン、依存関係、スクリプト、パス、署名ルール、環境変数、アップロード先を管理します。
利用期間中にソースコードと成果物をバックアップし、ホスト解放前に必要な移行と復元検証を完了します。
十分な再現状況を添えて報告し、パスワード、秘密鍵、トークン、決済情報、未マスキングのソースコードを除去します。
注文ID、ノード、時刻、影響範囲を記録し、コンソールからチケットを送信します。
まずオンライン状態、アドレス、ポート、ローカルネットワーク、認証情報、クライアント、同時セッションを確認します。
Xcode、依存キャッシュ、ディスク容量、署名設定、終了コード、工程ログを確認します。
関連する認証情報を先に無効化してアクセス範囲を制限し、マスキング済みの証拠を保存して障害情報を提出します。