ノードを1台まるごと専有
ご利用いただくのは、Mac開発用ワークステーションの専用物理マシンです。分割された仮想マシンではありません。プロジェクトのビルドとローカルファイルは、レンタル中のノード内で扱います。
これはハードウェアの割り当てについての説明であり、コードの暗号化やバックアップが自動で行われるという意味ではありません。
ハードウェアの利用範囲を確認
各物理ノードは1ユーザー専用です。CPUやメモリを他のユーザーと共有しません。
ご利用いただくのは、Mac開発用ワークステーションの専用物理マシンです。分割された仮想マシンではありません。プロジェクトのビルドとローカルファイルは、レンタル中のノード内で扱います。
これはハードウェアの割り当てについての説明であり、コードの暗号化やバックアップが自動で行われるという意味ではありません。
マシンにログインできる人を、現在のプロジェクトで許可されたメンバーに限定しましょう。チームで使う場合は、macOSのユーザーアカウントとSSH公開鍵を個別に管理し、同じ秘密鍵を複数人に配布しないでください。
メンバーがプロジェクトを離れたら、その人の公開鍵を削除し、引き続き有効な接続認証情報がないか確認します。
アップロード前に、顧客がプロジェクトや署名資料をリモート環境に置くことを許可しているか確認します。今回のビルドに必要なものだけを転送し、他の顧客のアーカイブや無関係なデータはコピーしないでください。
チケットは問題の調査に使い、プロジェクト全体、秘密鍵、証明書のパスワードの保管には使わないでください。
ログイン方法を安全に
最初のログイン時は3段階で確認し、接続手段を先に無効にして再接続できなくなる事態を防ぎましょう。
接続情報を受け取ったら、まずインスタンスを確認し、macOSユーザー用の固有パスワードを設定します。コードリポジトリ、メール、他のプロジェクトのパスワードを使い回さないでください。
パスワードはチームで承認された安全な方法で共有し、チャットのスクリーンショット、ビルドログ、コミット履歴には残さないでください。
お使いのパソコンでSSHキーを生成し、公開鍵だけをリモートユーザーの認証リストに追加します。秘密鍵はローカルに保管し、パスフレーズで保護してください。
現在の接続を維持したまま、別のセッションを開いてSSHキーでログインできるか確認します。再接続できることを確かめてから、既存の認証方法を変更してください。
Xcodeや署名の設定にはGUIデスクトップを利用できます。コマンドラインでビルドするだけなら、不要なリモートアクセスを減らすため、画面共有を無効にしましょう。
無効にする前に、SSHだけで接続できることを確認してください。GUI接続を再び使いたいのにログインできない場合は、コンソールにログインしてチケットを送信してください。
署名資産を個別に管理
Flutter、React Native、Unityではビルドツールが異なりますが、秘密鍵と証明書の扱い方は共通です。
現在のプロジェクトに必要な署名証明書とプロビジョニングプロファイルだけを取り込みます。証明書と対応する秘密鍵はmacOSのキーチェーンに保管し、秘密鍵を含む書き出しファイルをダウンロードフォルダに長期間残さないでください。
書き出し可能な署名バックアップには強固なパスワードを設定し、バックアップファイルとは別に保管します。顧客の許可を確認してから署名資産を使用してください。
リポジトリの除外設定に、証明書、秘密鍵、環境変数ファイル、一時的な書き出し先を含めます。
自動ビルド用の認証情報を作成し、必要なプロジェクトと操作だけに権限を限定します。1回のArchiveを通すために、ビルドタスクへチーム全体の権限を長期間付与しないでください。
環境変数を渡すときは値がログに出力されないようにします。トラブルシューティング用のスクリーンショットでは、トークン、接続先の機密部分、証明書のパスワードを隠してください。
ログのマスキングとアクセス権の管理は別の対策です。ログをアップロードする前に、必ず手動で内容を確認してください。
署名バックアップが使えることを確認してから、不要になった証明書と対応する秘密鍵をキーチェーンから削除します。一時的なプロビジョニングプロファイル、書き出した複製、ビルドスクリプト内の機密情報も削除してください。
シェルの履歴、ログ、一時フォルダ、ゴミ箱を確認します。漏えいした、または利用範囲を超えたトークンは、発行元で失効またはローテーションしてください。
ファイルを削除するだけでは認証情報は失効しません。両方の対応を確認しましょう。
納品用のコピーを確保
契約を更新しない場合、ノードは停止し、ノード上のデータは利用規約に従って削除されます。成果物を持ち出してからレンタルを終了してください。
プロジェクトの最新コミット、ビルドスクリプト、依存関係のロックファイル、Archive、.ipa、保管が必要なデバッグシンボルを確認します。未コミットのローカル変更も個別に確認してください。
ノード上でのみ生成したファイルは、コードをプッシュしても自動でバックアップされません。
バックアップをノード外にコピーし、ファイルを開けること、アーカイブが完全であること、暗号化されたバックアップを解除できることを確認します。使用したツールのバージョンとビルドコマンドも保存してください。
転送の進行状況が完了になっただけで、リモート上の唯一のコピーを削除しないでください。
コンソールで契約終了日を確認し、利用規約のデータ処理に関する条項を読みましょう。契約終了時の停止を保存の一時停止とみなしたり、停止後にファイルを取り出せると考えたりしないでください。
顧客への引き継ぎ要件や削除ルールについて確認が必要な場合は、契約終了前にチケットで問い合わせてください。ページに記載のない保存期間を前提にしないでください。
支払い情報を分けて管理
支払い方法は以下の2種類に限られ、米ドルで決済されます。実際に利用できる決済ゲートウェイはコンソールの表示をご確認ください。
Visa / Mastercard / Amexに対応しています。当サイトではカード番号を保存しません。サポートメールにカードの写真、カード番号全桁、セキュリティコードを記載する必要はありません。
支払いの確認には、注文番号、請求状況、機密情報をマスキングしたエラーメッセージをご提示ください。決済情報全体は送らないでください。
支払い情報とノード上のプロジェクトファイルは、別々に管理します。
オンチェーン決済の確認にはトランザクションハッシュのみを使用します。送金前に、支払いページに表示されたネットワークと受取情報を確認してください。他のネットワークでの送金を同じ支払いとして扱わないでください。
入金確認が必要な場合は、注文番号とトランザクションハッシュを送信してください。ウォレットの秘密鍵、シードフレーズ、署名の承認情報はサポートに必要ありません。
注文情報とチケット情報の取り扱いについては、プライバシーポリシーをご覧ください。
項目ごとに確認
1項目ずつ確認してから次に進みましょう。ディスク暗号化、プロジェクトのバックアップ、証明書の引き継ぎは、それぞれ別の対策です。
システム設定でFileVaultの状態を確認します。有効化する前に、リモート再起動後のロック解除方法と復旧方法を確認し、復旧キーをノード外の安全な場所に保管してください。
リモートでロックを解除できる条件が不明な場合は、先にチケットで確認してから有効化してください。納品前に、動作を確かめずにマシンを再起動しないでください。
プロジェクトの進捗に合わせてコードをプッシュし、リポジトリ以外にある必要なファイルも別途保存します。重要なビルドの完了後、署名設定の変更後、解約前に、少なくとも1回ずつバックアップを確認してください。
バックアップに秘密鍵や平文のトークンが誤って含まれていないか確認します。バックアップ自体へのアクセスも制限してください。
証明書に今後の署名に必要な秘密鍵が含まれているか確認します。プロジェクトの要件に沿って暗号化バックアップを書き出し、管理された環境で読み込めることを検証してください。
受取人と保存先を確認してから、ノード上のコピーを削除します。顧客にとって唯一の署名資産を、レンタル期間の終了とともに失わないようにしてください。
アクセス、バックアップ、証明書の引き継ぎを準備してから、クラウドMacをレンタルしましょう。