2026 年に起きやすい五つの崩れ方:SSH できることと署名状態を変えていいことは別です
ベアメタル Apple Silicon を借り切れば設備投資を平準化しやすく、コンプライアンス資料にも固定出口を書けます。しかし複数席を無秩序に載せると、誰が xcode-select を動かしたか追えないまま夜間バッチが同じ login キーチェーンで notarytool を叩く、という構図が現実味を帯びます。管理者アカウント共有は古典的ですが依然として多く、SSH 鍵・Git 資格情報・Fastlane トークンが一本のグラフに溜まると、協力会社退出後も「どのセッションが署名素材に触れたか」を説明できません。シンガポールや東京、ソウル、香港、米東西に分散したチームでは、対話 latency の都合とコンテナレジストリの所在地が一致しないことが多く、便利な大陸から SSH しつつ別大陸からキャッシュを引く設計は CPU が余っていても resolver フェーズで壁時計を溶かします。
以下の五項目はゲートです。一つでも開いたままなら顧客バイナリや本番証明書を載せないでください。GitHub 側の課題が先なら Runner 記事から着手し、OS レベルの分離は後からでも構いません。
スーパーユーザ共有:監査線が潰れ、ローテーションはディスク初期化級になります。
対話デバッグと夜間バッチが login キーチェーン共有:散発的 codesign は競合です。
無制限並列 Archive:ユニファイドメモリと DerivedData が尾を引きます。
Match 用 Git 資格情報が world-readable:サプライチェーン審査で即アウトです。
地理を無視:ミラー無しで大洋横断トラフィックを増やす設計です。
sudo を持つ人数は認知負荷も増やします。brew upgrade や古い Ruby が Fastlane を不安定にするケースは quarterly レビューで席数とセットで棚卸ししてください。障害時は CPU グラフより authorized_keys の更新時刻とキーチェーン解除ログが有用です。
CPU がボトルネックでないなら 二ノード判断 に戻り、隔離課題をコア不足と誤認していないか確認します。
席マトリクス:誰が Archive し、どのキーチェーンが信頼を保持するか
語彙が揃えば財務とセキュリティは仲良くなります。RFC には対話エンジニア、無人 CI、期限付き外部席の三語だけ載せ、それ以上は第二フリート検討へ進みます。第一表は禁止事項、第二表は観測症状から計装への橋渡しです。
| 席 | ログイン | キーチェーン | 禁止 |
|---|---|---|---|
| 対話エンジニア | ユーザー別 SSH | 開発証明書のみ | CI launchd 環境の改変 |
| CI バッチ | GUI 無し専用ユーザー | ファイルキーチェーン+ Match 読み取り | エンジニア GUI 共有 |
| 緊急外部 | 期限付き鍵 | 読み取り再現のみ | PAT の恒久エクスポート |
| 症状 | 第一仮説 | 次アクション |
|---|---|---|
| CPU 低いのに遅い | 大洋横断依存取得 | 地域記事に沿いレジストリ同居 |
| 特定ユーザーだけ赤 | Xcode または SPM キャッシュ差 | ゴールデンイメージ欄を変更票へ |
| 夜だけ劣化 | cron と人間の重なり | 時間窓分割またはホスト分離 |
マルチシートは「同時に環境を変える人間」問題であり、先に身份を分ける。
法令が米国ログ読み取りを要求しても、アーティファクト錨をシンガポールに置くなら両方を憲章に明示します。オーケストレータは launchd とログインセッションどちらから環境変数を継ぐかで PATH が変わるため、plist に最小環境を固定します。
認証成功と署名許可は別です。SSH は通ってもプロファイルボリューム権限が無ければ codesign は落ちます。席単位ログがトリアージを短縮します。
Match・SSH・キュー:社内 Runbook に貼れる最低限
Match はローテーション付き Git 秘密として輝きますが、複数席では暗号化リポの作業コピーを読み取り可能ディレクトリに symlink する事故が出ます。CI ユーザー home に閉じ、人間向け lane は夜間ワークスペースと交差させません。authorized_keys は一本の主体へ一本の鍵という記述を守ります。
sudo dscl . -create /Users/ci_shared NodeName ci_shared sudo createhomedir -c -u ci_shared sudo security create-keychain -p "$KEYCHAIN_PW" /Users/ci_shared/ci-build.keychain security set-keychain-settings -lut 21600 /Users/ci_shared/ci-build.keychain security unlock-keychain -p "$KEYCHAIN_PW" /Users/ci_shared/ci-build.keychain
メモ:MDM 基準に合わせてパス調整し、対話ログイン項目から切り離したファイルキーチェーンが目的です。
同一物理機でも workload-interactive と workload-archive ラベルを分けると GitHub Actions に直列化フックができます。Jenkins や Buildkite ならフォルダロック相当でよいです。チケットにはキュー owner を必ず書きます。ネットワーク詳細は ヘルプセンター を参照してください。
シミュレータランタイムやベータ Xcode は multi-seat で肥大しやすいので CI アカウントに紐づく週次クリーンアップを自動化し、フォレンジック保持期間も文書化します。シークレットマネージャ連携では GUI クリック待ち無しで短命トークンを更新できるようにし、無人 Archive と整合させます。
六段階:混沌共有から統治された multi-seat へ
セッション棚卸し:Unix ユーザー、GUI、launchd、鍵パスを列挙します。
CI 身份と隔離キーチェーン:エンジニア login を再利用しません。
Match ローテ文書化:オーナー、窓、ロールバックブランチ。
オーケストレータ意味論:Archive 直列化ラベルまたはロック。
二週観測:ディスク、解除失敗率、resolver 比率。
調達欄の固定:地域、SKU、席上限、外部 SLA を 注文ページ と揃えます。
参照指標:対話席、NVMe 余白、地理宣言の二行ルール
同時対話 SSH と GUI:16GB ユニファイドでは対話一人とバッチ一人が現実的で、キューロック無しの無秩序並列は避けます。24GB でも直列化必要性は残ります。
ディスク:共有 DerivedData ではベンダー最小値より大きな連続空き容量を維持します。
地理:「人間既定リージョン」と「アーティファクト母港」を別行で書きます。
注意:家庭回線ノートと睡眠サイクルは署名 SLA を蝕みます。ネスト仮想化は Metal 境界を曖昧にします。
共有管理者資格情報は監査が爆発するまでローテ痛苦を先送りします。地域とユニファイドメモリ段階が明示でき、日単位検証から月次定常まで伸ばせる専用シリコンなら multi-seat を説明可能な OpEx にできます。今日一台で SSH と CI を統治しつつ明日フリート分割へ進む Apple プラットフォームチームにとって、KVMNODE の Mac mini クラウドレンタルは現実的な強みになりやすい選択です。ベアメタル Apple Silicon、透明な地域、席数を一次入力として受け付ける発注フローが揃います。