対象: Apple Silicon リモート Mac で署名と CI を六地域で運用し、あるホストでは match が復号できるのに別ホストにプロファイルが乗らない、または ASC キーを回したのにリリース当日まで CI は「緑」に見える、といった不安定な失敗に悩むチームです。得られるもの: リポジトリ単位とマシン単位に分けた秘密、match・ASC・SSH・CI トークンを並べるロテーションチケット、さらに 最小検証バンドル と ロールバック可能期間 です。構成: 六つの落とし穴、三表、六ステップ runbook、三 KPI、まとめ;併読は Fastlane マルチホスト と TestFlight 配布 です。
2025–2026 年に多い「謎の赤」は、単一のキーチェーン不調ではなく 正の揺らぎ です。暗号化済み match リポジトリが半分だけ動いた、組織で ASC API キーを回したのにレーンが古い issuer id を指している、権限強化で PAT のスコープが失われジョブが静かに失敗する、といったパターンです。続く六つは、マルチノードで起きやすい障害モードです。
known_hosts の不一致が「不安定な Git」に見えます。fastlane lanes の一覧は確認するが アーカイブから ASC サンドボックスへのアップロード を飛ばし、本番リリースにリスクを押し込む。OIDC と fine-grained トークン を導入する場合は、どのワークフローがどの ASC シークレット束にアクセスするかをマップします。六地域は実行面にすぎず、アイデンティティは組織 IAM に留まります。セルフホステッドランナーの秘密の分離 と併せて、ローテーション凍結集合に入る秘密を明示してください。
チケットを切る前に使うマトリクスです。Git または組織ヴォールトに置くものと、許可リスト済みホストにだけ残すものを分けます。
| 資産 | 組織/リポジトリの正として | ホスト許可リストとして | 六地域メモ |
|---|---|---|---|
| match の Git リポジトリ | 証明書とプロファイルの単一の復号面 | パスフレーズは CI の秘密と限定された対話ホストのみ | 新規ノードはプール参加前に読み取り専用 match を実行 |
| ASC API キー | ロール対応付きの中央レジストリ | アップロードとメタデータでキーを分けて最小権限に | 監査は TestFlight プレイブックのアップロード許可ホストに紐づける |
| SSH キー | リポジトリごとの読み取り専用デプロイキー | ビルドホストあたりの bastion 資料 | 個人用キーを共有せず、リージョン経路ごとに別鍵ペア を使う |
| CI トークン/PAT/OIDC | 環境プレフィックス付きのリポジトリ秘密 | 対話的公証や端末拘束ステップ | 自動化には狭いプロジェクトトークンを使う |
注: タイムゾーン継続 CI の中継 の記事と同様に、本番署名は小さなランナータグの集合に閉じ込めます。本稿は、その同じタグ上で資格情報をどう回すかを説明し、フリート状態を分断しません。
よくあるエンジニアリング監査のリズムです。セキュリティ担当と Apple アカウント方針に合わせてください。
| 資格情報 | 典型的なきっかけ | 監査レンジ(例) | 変更後の一次検証 |
|---|---|---|---|
| match 一式 | 新ハード、プロファイル期限アラート、漏えい疑い | 自然な証明書期限と一緒に確認;四半期に少なくとも一度プロファイル差分 | 全ランナーで同一の読み取り専用レーンによるフィンガプリント確認 |
| ASC API キー | オフボーディング、権限監査、アップロードエラー急増 | 四半期または大型リリーストレインごとなど | 本番でないビルド番号でサンドボックスへアップロード |
| SSH(Git/bastion) | bastion 再構築、CVE、ホスト鍵のずれアラート | 四半期のインフラ更新;ネット強化後は速め | 計測付きの git ls-remote 往復とログ |
| CI トークン/PAT | サプライチェーン監査、リポジトリ移動、ランナー登録変更 | 短命トークンはプラットフォームごとに 30~90 日など | 読み取り専用のドライランと一件の緑レーン |
| パターン | いつ | コスト | 運用上のメモ |
|---|---|---|---|
| 同時実行の凍結 | match または ASC の高リスクイベント | スルーPUTが一時的に落ちる | プローブが通るまで自動拡張ホストを参加させない |
| ブルー/グリーンのプール | 六地域フリートが定常運用 | 並列キャパの予算枠 | 待機プールで秘密をすべて更新してからタグを切り替える |
| リージョンのカナリア | 影響範囲が読みにくい小さなキー更新 | スケジュールのオーバーヘッド | 主アーティファクト経路に近い地域から始める |
archive、一度の ASC API ハンドシェイク成功、一回の社内テスト配布。# Example probe fragment (rename lanes to match your Fastlane wrapper)
# fastlane run verify_signing_consistency
# Expect identical profile fingerprints on every host tagged `signing`
# CI: cap concurrency to avoid half-rollouts
# concurrency-group: release-credentials-${{ github.ref }}
# cancel-in-progress: false
ORG_PROD_ASC と ORG_BETA_ASC のように命名し、六地域のジョブが誤った束を読まないようにする。上記は多チームのリリース慣行からの例であり、Apple の SLA ではありません。社内方針に落とし込んでください。
ピーク用の バーストレンタル ノードを足すときは、「参加前のシークレットスナップショット」と「退役前のキャッシュ消去」を同一チェックリストに載せ、一時キャパが長寿命のプロファイルずれに化けないようにします。
ローテーションは変更管理です。専用ホスト、監査可能なログ、安定した出口が必要です。借りたノート PC では match のパスフレーズが散り、未知のホストに手作業で証明書を入れ、次の凍結窓まで失敗が隠れます。
個人用マシンではキーチェーン境界と凍結した同時実行の両立が難しいです。コンパイル用プールと署名許可リストを APAC と北米で分ける組織では、多地域配置と期間の柔軟性のあるプロ向け Mac クラウドの方が、場当たり調整より打ち勝ちやすいことが多いです。MACCOME はレイヤー化したプール向けに、六地域から選べるベアメタル Apple Silicon を提供します。公開の レンタル料金 と多地域ガイドで runbook を固める前にご確認ください。
パイロット案:主 Git に近いリモート Mac と、主な協業地域に近いリモート Mac の二台で、ロールバック込みの演练まで回してから、月次か四半期の契約でピークを賄えるか判断します。
よくある質問
match と ASC は同じ日に必ず回す必要がありますか?
必ずしもそうとは限りません。依存関係を書き留めます。新しい ASC キーでアップロードが必要でも、match のプロファイルが全ノードに届いていなければ、先に読み取り専用の検証を終えます。計画と公開料金の確認は レンタル料金 を参照してください。
bastion の SSH フィンガプリントが変わりました。何からしますか?
ローテーションの一環として扱い、オーナーを揃えます。CI で安易に yes と打たず、決まったフィンガプリントまたは固定 bastion イメージを優先してください。一般的な手順は ヘルプセンター を参照してください。
ロテーション後は TestFlight のアップロードだけが失敗します。どこから切り分けますか?
アップロード経路の診断はコンパイル時の署名とは異なります。TestFlight プレイブック と App Store Connect の処理タスクから着手し、match だけを繰り返し実行しないでください。