AppleのApp Store Connect APIキーは、秘密鍵をダウンロードできるのが作成時の1回だけです。AppleのAPIキー作成手順を踏まえ、取得した鍵をスクリプトや共有フォルダへ置かず、利用者・用途・保管先を分けてください。

症状: ビルドスクリプトやログからApple Accountのパスワード、確認コード、署名鍵を読める状態です。
最短の対処: 認証方法と権限を分離し、必要な権限だけを作業環境に渡して、終了時にアクセスを見直します。

CI管理者:ローカルのmacOSビルドを遠隔環境へ移す担当者。
開発者:Macでアプリの署名、公証、提出を行う人。
プロジェクト責任者:アカウント、証明書、成果物へのアクセスを整理する人。

まず認証情報の置き場所を洗い出す

macOS CIの認証情報隔離では、資格情報の種類だけでなく、誰が読み取れるか、どこに複製されるかも確認します。見落としやすいのは、ビルドログ、シェル履歴、スクリプトの引数、長期保存される環境変数、共有ディスク、担当者間の引き継ぎ資料です。

Apple Accountのパスワードや確認コードを長期間読み取れる自動化は、設計を見直してください。確認コードを手順書に転記したり、秘密鍵をリポジトリへコミットしたりする運用では、閲覧権限のある人やログ保存先にまで情報が広がります。

置き場所 漏えい・誤用につながる経路 最初に行う確認
スクリプト、設定ファイル リポジトリの履歴や複製先に残る 固定文字列や鍵ファイルへの参照を検索する
環境変数、コマンド引数 子プロセスや診断ログに値が渡ることがある 出力設定と実行時の表示を確認する
共有ディスク、引き継ぎ資料 ビルド担当外の人にも複製・閲覧される 閲覧者、保存期間、削除手順を確認する
キーチェーン、作業用ファイル セッション終了後も利用可能な状態が残ることがある 対象ユーザー、保管場所、失効手段を記録する

Apple AccountをCI用アカウントとして扱わない

Apple Accountへのサインイン、Apple Developerチームのロール、App Store Connectへのアクセス、署名の実行は、同じ権限ではありません。Apple DeveloperのチームロールとApp Store Connectのアカウントおよびロールは、それぞれ別の管理対象です。

米国向けストアフロントを利用できることは、証明書を作成する権限やチームへの参加、アプリ提出の権限を意味しません。米国版Apple IDがあっても、必要なApple Developerチーム権限の代わりにはならないため、作業前にチーム管理者へ担当者のロールと対象範囲を確認してください。

米国版Apple IDだけで、開発者チームの権限も得られますか?
得られません。Apple Accountの地域設定と、チーム内で割り当てられる権限は別に確認します。アプリ提出を自動化する場合は、App Store Connect APIの利用条件を確認し、必要な操作に限った認証手段を選びます。

パスワードと確認コードをスクリプトから外す

Apple AccountのパスワードをMacのビルドスクリプトに保存できますか?
保存しないでください。スクリプト、共有文書、長期保存する環境変数にパスワードや二要素認証の確認コードを入れると、実行者以外にも読み取られる可能性があります。本人によるログインや確認が必要な工程はアカウント所有者が担当し、自動化には作業に必要な範囲の認証情報だけを渡します。

方法 利点 注意点
アカウント所有者が対話的に確認 確認コードを自動処理へ預けずに済む 無人で完結する工程には向かない
APIキーなど用途を限定した認証 アカウントのパスワードと分けて管理できる 権限、保管先、失効担当を決める必要がある
パスワードをスクリプトへ固定 起動手順が単純に見える 複製、ログ出力、履歴保存の影響を抑えにくい

自動提出にAPIキーを使う場合は、AppleのAPIキー作成資料を確認し、秘密鍵を取得した人、保管先、使用する処理を記録します。鍵の共有方法を一律に決めるのではなく、プロジェクトの担当者とビルド環境のアクセス範囲に合わせてください。

署名証明書と秘密鍵をビルド単位で扱う

遠隔MacでのmacOS署名に使う証明書は、どう保管すればよいですか?
証明書と、それに対応する秘密鍵をひとまとめにして無制限に共有しないことが出発点です。Appleのコード署名証明書の説明を確認し、どのチームやビルド処理が鍵を利用するかを定めます。署名用の秘密鍵は、ログイン用パスワードやAPIキーとは別の認証情報として管理してください。

対象 主な用途 管理上の確認点
Apple Account サインイン、本人確認 所有者と対話的な確認が必要な工程
チームロール 開発者機能や提出機能へのアクセス 担当者に付与された操作範囲
署名証明書と秘密鍵 アプリのコード署名 利用するビルド、保管先、失効担当
App Store Connect APIキー 対応するAPI操作 キーの権限、保管場所、失効手順
ビルド成果物 検査、配布、引き渡し 保存先、閲覧者、保持期間

公証では、Appleが案内するワークフローと認証方法に沿って構成します。公証ワークフローの説明を参照し、ログイン用資格情報を公証処理へ流用するのではなく、処理ごとに認証材料を整理します。証明書を失効する場合も影響範囲を先に確認し、Appleの証明書失効手順に従って対象を特定してください。

作業終了時の状態を確認する

プロジェクト終了後、ビルド機に残ったAppleアカウント情報はどう扱えばよいですか?
ログアウトだけで完了と判断せず、サインイン状態、キーチェーン、作業ファイル、APIキー、証明書、成果物へのアクセスを順に確認します。削除した一時ファイルがあるからといって、アカウントが確実にサインアウトしたとは限りません。利用中のmacOS、開発ツール、実際の遠隔環境で、各項目の挙動を確認してください。

終了時の対象 確認・対応
Apple Accountのセッション アカウント所有者または担当者がサインアウト状態を確認する
一時ファイルとログ 認証情報が出力されていないか確認し、保管要件に沿って整理する
APIキー、証明書、秘密鍵 継続利用の要否を判断し、不要なら権限の見直しや失効を行う
ビルド成果物 保存先、共有相手、引き渡し方法を記録する
遠隔アクセス 作業担当者と管理者のアクセスが必要な状態か再確認する

実行前後の確認リスト

  • [ ] Apple Accountの所有者と、本人確認を行う担当者を決める。
  • [ ] チームロールとApp Store Connect権限を別々に確認する。
  • [ ] スクリプト、ログ、環境変数、共有ディスクに固定のパスワードや確認コードがないか調べる。
  • [ ] 証明書、秘密鍵、APIキーの利用者、保管先、失効担当を記録する。
  • [ ] ビルド成果物の保存先と、閲覧・引き渡しの対象者を決める。
  • [ ] 作業終了後にサインイン状態、認証情報、遠隔アクセスを個別に確認する。

これらを記録すると、誰がタスクを開始し、どの認証方法を使い、成果物をどこへ置き、いつアクセスを見直したかを追跡できます。権限の付与と撤回を担当者任せにせず、プロジェクト責任者が確認できる形にしてください。

ローカルMacだけで運用すると、担当者の端末への依存、ビルド待ち、環境の引き継ぎが課題になることがあります。一方、クラウドMacへ移しても、認証情報の管理や作業後の清掃が自動的に安全になるわけではありません。長期間にわたり同じ環境で高頻度のビルドを続けるなら、自社管理のMacが適する場合もあります。

期間限定の移行検証や一時的なビルド環境を比較したい場合は、kvmsyncの料金案内で利用条件を確認してください。接続や利用前の確認事項はkvmsyncのヘルプページも参照し、必要なアクセス制御や終了後の確認を自分の運用要件に照らして判断してください。レンタル環境を選ぶ場合も、Apple Accountの認証やアプリ審査の成功が保証されるわけではありません。

関連記事

kvmsync M4 リモートノード

認証情報を分けて管理できるビルド環境を、kvmsyncで

ビルド用の環境を日常の作業環境から分けたい方は、実機を専有できるkvmsyncのクラウドMacをご検討ください。

今すぐ Mac mini M4 をレンタル M4 プランを比較