専有ノードで、明確なセキュリティ境界を

証明書は、お客様専用のマシンで

OSXBuildでは、仮想マシンではなく物理マシンを1台まるごとご利用いただけます。CPU・メモリ・ディスクを他のお客様と共有することはありません。署名証明書、ソースコード、ビルド成果物の保存場所やアクセス権、エクスポート方法はお客様が管理できます。

まず隔離方式を確認してから、署名とアクセス権を設定してください。秘密鍵やパスワードをサポートチケットに記載しないでください。

リソースの利用範囲を確認

1台のマシンで、自分のビルドだけを実行

専有するのは物理ノードです。共有ホスト上のタスク枠ではありません。契約期間中、Mac mini 1台をお客様のワークロード専用でご利用いただけます。

CPUとメモリを専有

他のお客様がこのマシンでコンパイル、テスト、推論を実行することはありません。ビルドプロセスはマシン上のリソースを使用し、他のお客様の処理とCPUやメモリを奪い合うこともありません。

同じノードで実行する並列タスクの数は、お客様のrunnerとビルドスクリプトで制御できます。

ディスクとキャッシュはお客様が管理

ソースコード、DerivedData、依存関係のキャッシュ、エクスポートしたIPAは、お客様のノードに保存されます。他のお客様のタスクによって上書きされることはなく、署名ファイルを共有ビルドキューに預ける必要もありません。

キャッシュはバックアップではありません。重要な成果物や復旧用データは、別途保管してください。

物理的な隔離だけではアクセス管理はできません

マシンの専有により、お客様同士のリソースを分離できます。チーム内のアクセス権はプロジェクトごとに設定してください。通常のビルドには専用ユーザーと専用鍵を使い、管理者の認証情報をパイプラインに記載しないでください。

macOSのGUIとコマンドラインを利用でき、アクセス範囲はお客様が設定できます。

マシン内のコードとビルド成果物はお客様の所有物であり、当社が業務上の内容を閲覧することはありません。トラブルシューティングの際は、必要なエラー箇所だけをお送りください。送信前にトークン、署名データ、プロジェクトの機密情報を削除してください。

契約終了時の引き継ぎ

ディスクを消去してから次のお客様へ

前のお客様の作業ディレクトリを、そのまま次のお客様に引き渡すことはありません。回収時にはディスクを安全に消去し、OSを再インストールします。

  1. まずバックアップを作成

    契約終了前に、必要なソースコード、IPA、設定、署名の復旧用データをエクスポートしてください。他の環境でファイルを読み込めることも確認しましょう。「コピーコマンドを実行した」ことだけで完了と判断しないでください。

  2. ノードを回収

    契約期間の終了後、ノードの回収時にディスクを安全に消去します。回収処理は一時保管サービスではありません。契約終了後もファイルを取り出せる保管場所として、ノードを利用しないでください。

  3. 再インストール後に引き渡し

    OSの再インストールが完了してから、次のお客様にノードを引き渡します。プロジェクトのディレクトリ、ビルドキャッシュ、署名資産が次のお客様の初期環境に残ることはありません。

最後のarchiveまで引き継ぎを後回しにしない

バックアップの確認をプロジェクトの引き継ぎリストに含め、ノードで不要になったリポジトリへのアクセス権、runnerの登録、配布トークンも取り消してください。マシンのディスクを消去しても、外部システムで有効な権限は自動では取り消されません。

署名はリリース権限として管理

証明書で署名できても、誰でも持ち出せるわけではありません

ビルドタスクには、リリースに必要な最小限の権限だけを付与しましょう。目立たないディレクトリにファイルを隠すより、次の3つの対策が効果的です。

専用キーチェーンを使い、作業後にロック

ビルドユーザー用のキーチェーンを作成してください。署名の直前だけロックを解除し、パイプラインの終了後に再度ロックします。タスクが失敗した場合もクリーンアップを実行し、異常終了後もキーチェーンが使える状態のままにならないようにしてください。

ロック解除パスワードは管理された認証情報ストアから読み込み、コマンドの引数に含めて表示しないでください。

アップロードにはAPIキーを使用

App Store Connectへの成果物のアップロードには、タスクに必要な権限を満たすAPIキーを使用し、自動化スクリプトにアカウントのパスワードを保存しないでください。キーのファイルはプロジェクトコードとは分けて保管し、ローテーション時にはビルド設定も更新してください。

キーの内容をログ、ビルド成果物、エラーのスクリーンショットに記録しないでください。

.p12を共有リポジトリに置かない

秘密鍵を含む.p12ファイルをコミットしないでください。エクスポート用パスワードも同じリポジトリに保存しないでください。Fastlane matchを使用する場合は、暗号化データと復号用認証情報を別々に管理し、署名用リポジトリへのアクセスを制限してください。

誤ってコミットした場合は、証明書の失効と鍵のローテーションを検討してください。現在のファイルを削除するだけでは、履歴から消えません。

最後に、ビルド用キーチェーンをロック

以下はキーチェーンのパスの例です。実際の名前に置き換え、パイプラインの終了処理にも同じクリーンアップを追加してください。

security lock-keychain "$HOME/Library/Keychains/build.keychain-db"
2つの入口を、それぞれ保護

注文はコンソール、マシンはSSH

コンソールのログイン情報とノードへのログイン鍵は、役割が異なります。使い回さず、それぞれの権限が不要なタスクに共有しないでください。

コンソールとメール

コンソールには専用のパスワードを設定し、ログインや認証メールを受け取るメールアカウントも保護してください。信頼できるデバイスからのみログインし、他の人から転送されたページで認証情報を入力しないでください。

引き渡し情報、注文状況、関連する操作履歴はコンソールで確認できます。想定外の変更が見つかった場合は、注文番号と発生時刻を記録してからサポートチケットを送信してください。認証情報をそのまま添付しないでください。

コンソールにログイン

SSHとチームアクセス

SSH公開鍵でログインし、秘密鍵は管理されたローカルデバイスまたはCIの認証情報ストアに保管してください。メンバーごと、パイプラインごとに別の鍵を使えば、個別に失効できます。追跡できない秘密鍵を使い回さないでください。

鍵で接続でき、復旧用のアクセス手段も確保できてから、パスワードログインやポートの設定を変更してください。メンバーがチームを離れたときやrunnerを廃止したときは、該当する権限を速やかに削除してください。

接続・移行ガイドを見る

操作を記録し、ログの機密情報を削除

各リリースにコミット、パイプライン番号、成果物のバージョンを関連付け、ビルドログを閲覧できる範囲も制限してください。サポートを依頼する場合は、エラー発生時刻とログ末尾の関連箇所を残し、環境変数、アクセストークン、認証情報を含むリポジトリURLを削除してください。

請求情報とマシンのデータは別々に管理

カード番号はOSXBuildに保存されません

すべての注文は米ドル(USD)で決済されます。お支払いには以下の2種類をご利用いただけます。実際に利用可能な決済ゲートウェイは、バックエンドの応答をご確認ください。

Visa / Mastercard / Amex

クレジットカード決済はStripeが処理し、OSXBuildがカード番号を保存することはありません。注文記録には納品と照合に必要な決済状況のみを保存し、サポート資料としてカード番号を収集することもありません。

決済に問題がある場合は、注文番号、決済時刻、ページに表示されたエラーメッセージをお知らせください。

USDT-TRC20

決済ページにその時点で表示されている情報のみを使用してください。送金前にネットワーク、金額、送金先を確認しましょう。過去のスクリーンショットや他の人から届いたメールのアドレスを、現在の注文ページの代わりに使用しないでください。

決済の照合を依頼する場合は取引IDをお知らせください。ウォレットの秘密鍵や復旧用データは送らないでください。

請求書、更新、決済結果はコンソールで確認できます。決済の調査を理由にカード番号全桁、セキュリティコード、秘密鍵を求められても、決して共有しないでください。

対応できる窓口へ報告

脆弱性を報告する際は、秘密情報を送らない

セキュリティ報告、権限の異常、認証情報の漏えいが疑われる場合は、サポートメールまたはログイン後のコンソールからチケットを送信してください。専用のセキュリティ報告用メールアドレスはありません。

最初の報告には4つの情報を

  • 影響箇所:ページのパス、ノード、関連する注文番号。アクセスパスワードは含めないでください。ページのパス、ノード、関連する注文番号。アクセスパスワードは含めないでください。
  • 発生状況:再現に必要な最小限の手順、期待した結果、実際の結果。
  • 発生時刻:発生時刻とタイムゾーン。操作履歴との照合に役立ちます。
  • 機密情報を除いた証拠:エラーの該当箇所、または機密情報を隠したスクリーンショット。秘密鍵や署名ファイル全体は添付しないでください。

連絡先はどちらか1つでOK

まだ注文していない場合やログインできない場合はメールをご利用ください。注文済みの問題は、ノードや引き渡し情報を紐付けられるため、チケットの送信をおすすめします。

support@osxbuild.com

鍵が漏えいした疑いがある場合は、関連する権限を取り消して認証情報をローテーションしてから、報告してください。検証にはアクセス権のあるリソースのみを使用し、他のお客様のデータを閲覧したり、破壊的なテストを行ったりしないでください。

次の署名作業にも、明確な境界を

ノードは1台まるごと専有し、署名資産はお客様が管理します。構成を選び、鍵、バックアップ、回収時の確認事項をビルドフローに組み込みましょう。