CPU・GPUを他者と共有しない
ビルド、シミュレーター、推論タスクは、割り当てられた物理ノード上で実行されます。同じマシンの計算リソースを他のユーザーに分割せず、仮想マシンの割り当て枠でタスクを制限することもありません。
マシン全体を割り当て専有物理Mac miniをレンタルできます。仮想マシンではありません。CPU、GPU、ユニファイドメモリ、ストレージは他のユーザーと共有しません。ソースコード、証明書、ビルド成果物は、チームのルールに沿って管理してください。
まずリソースの割り当てを確認し、アクセス権を設定してから、バックアップと利用終了時の手順を決めましょう。
物理的な分離により、ユーザー間でリソースを共有せずに利用できます。一方、OS上のユーザー、プロセス、CIタスク、シークレット情報の権限管理はチームで行う必要があります。この2つを分けて考えることで、セキュリティ対策の適用範囲が明確になります。
ビルド、シミュレーター、推論タスクは、割り当てられた物理ノード上で実行されます。同じマシンの計算リソースを他のユーザーに分割せず、仮想マシンの割り当て枠でタスクを制限することもありません。
マシン全体を割り当てユニファイドメモリとノードのストレージは、現在の契約期間中の作業環境です。プロジェクトのディレクトリ、DerivedData、キーチェーン、runnerのキャッシュを、他のユーザーがアクセスできる共有領域として扱うことはありません。
ユーザー間で分離専有環境でも、チームメンバー全員で管理者の認証情報を共有するべきではありません。手動開発用と自動ビルド用でシステムユーザーを分け、runnerが読み取れるディレクトリを制限し、すべてのビルドタスクに本番環境のシークレットを渡さないようにしましょう。
役割ごとに権限を設定システムの初期化、安全なデータ消去、業務データのバックアップは、それぞれ別のものとして扱いましょう。最初の2つはユーザー間の分離を確保するため、バックアップは次のマシンでもプロジェクトや証明書を使えるようにするために必要です。
物理ノードの割り当て後にシステムを初期化し、新しい利用環境を用意します。接続情報を受け取ったら、インスタンスIDとOSバージョンを確認してから、コードと証明書をインポートしてください。他の環境で使っていた共有パスワードはそのまま使わないでください。
コンソールからシステムを再インストールできます。再インストールするとローカルファイルや開発設定に影響するため、必要なデータを事前にエクスポートし、実行中のビルドを停止してください。チームのタスクがこのノードに依存していないことも確認しましょう。
契約終了後、ノードは安全にデータ消去されてから次の引き渡し手順に進みます。期限前に必要なデータをエクスポートしてください。期限後のディスク保持やファイル復元をバックアップとして頼らないでください。
SSH、リモートデスクトップ、コンソールはそれぞれ別のアクセス経路です。認証情報を個別に管理し、退職、引き継ぎ、タスク終了時にはそれぞれの権限を取り消してください。すべての経路で同じパスワードを使い回さないようにしましょう。
メンバーごと、また自動化タスクごとに専用の鍵を使います。初回接続時にホストフィンガープリントを確認し、引き継ぎ後は認証鍵の一覧を点検してください。メンバーの権限を削除するときは、対応する公開鍵も削除します。
秘密鍵をリポジトリに登録したり、ビルドログに記録したりしないでください。
リモートデスクトップには、他で使っていない強力なパスワードを設定してください。コマンドラインでのみビルドするノードでは、インターネットに公開するVNCを無効にできます。GUI操作が必要な場合は、実際の接続要件に合わせてアクセス経路を設定しましょう。
パスワード変更後は、古い認証情報を使っているクライアントがないか確認してください。
コンソールアカウントでは、インスタンスや請求情報を管理します。ログインや重要な操作では、画面の案内に従って二要素認証を完了してください。認証情報を受け取るメールアカウントも保護し、認証コードを他のメンバーに転送しないでください。
管理操作には自分のアカウントを使い、セッションを共有しないでください。
未審査の外部プルリクエストから、署名用キーチェーンやリリース用認証情報にアクセスできないようにしてください。テストとリリースのタスクを分け、リリース時に必要なシークレットは信頼できるブランチだけに公開します。
runnerのラベルは実行先の振り分け条件であり、セキュリティ権限として扱わないでください。
すべてのノードは年間365日稼働します。稼働率の保証はサービスの可用性に関するもので、個々のプロジェクトのビルド成功率を示すものではありません。また、ネットワークをまたぐすべての接続で同じ速度を保証するものでもありません。
月間稼働率の保証
99.9%
月間稼働率が99.9%を下回った場合、未達時間に応じて契約期間を延長して補償します。
以下の13個の期間区分は記録の対象期間を示すもので、正常稼働日数や障害日数を表すものではありません。現在、このページでは確認できていない日別の稼働状況を表示しておらず、サービス保証を実測結果として扱うこともありません。
コンソールのチケットに、インスタンスID、影響があった時間の開始・終了時刻とタイムゾーン、接続方法、エラー内容を記載してください。サービス停止時間の確認に使えるよう、機密情報を伏せたログを保管してください。
サービスの異常、ユーザー側の操作、プロジェクトの失敗、不可抗力は、それぞれ個別に確認する必要があります。適用条件は利用規約に基づいて判断され、この記録対象期間の図を使って補償額を算出することはありません。
お支払いには以下の2種類のみご利用いただけます。決済はすべて米ドル(USD)です。実際に利用可能な決済ゲートウェイはバックエンドAPIの応答に基づきます。支払い状況はコンソールの注文履歴で確認し、メールのスクリーンショットやブラウザーの表示だけで判断しないでください。
カード決済はStripeが処理し、MergeMacはカード番号を保存しません。注文の決済画面で手続きを完了してください。カード番号全桁、セキュリティコード、決済認証情報をメールやチケットで送信しないでください。
Stripeによる決済処理注文画面に表示されたネットワーク、アドレス、金額を確認して送金してください。ブロックチェーン上で入金が確認されたら、注文状況を確認します。支払いの確認を依頼する場合は、注文IDとトランザクションハッシュをお知らせください。ウォレットの秘密鍵やシードフレーズは送信しないでください。
オンチェーン入金を確認ソースコードは再取得できますが、シークレット情報は推測して復元できません。誰がインポートできるか、どのタスクがロックを解除できるか、いつ失効させるかを引き継ぎ手順に明記してください。ノードの利用期限を迎えてから証明書のバックアップがないと気づく事態を避けましょう。
CIの署名用に専用のキーチェーンを作成し、現在のプロジェクトで必要な証明書と秘密鍵だけをインポートしてください。ビルド時に必要な分だけロックを解除し、タスク終了後に再びロックします。すべての対話型セッションからリリース用情報にアクセスできる状態にしないでください。
CIプラットフォームの暗号化シークレット変数に機密情報を保存し、保護されたブランチまたはリリース環境に限定してください。シークレットを出力するデバッグコマンドは無効にします。ログを共有する前に、トークン、パス、環境変数が含まれていないか確認してください。
契約終了や再インストールの前に、保持が必要な署名情報をエクスポートし、ノード外の安全な場所に暗号化して保存してください。バックアップが利用できることを確認してから、runnerの登録を解除し、不要になったトークンと接続鍵を失効させます。
認証情報の漏えい、不審なログイン、権限のないアクセスが疑われる場合は、まず関連する鍵とトークンを失効させ、影響を受けるアクセス経路を制限してください。必要なログは保管し、調査範囲を広げたり、他のユーザーのデータを閲覧・拡散したりしないでください。
既存の注文に関する異常は、コンソールからチケットを送信してください。インスタンスID、発生日時とタイムゾーン、実施した被害拡大防止策、問題を再現するための最小限の手順を記載します。
ログインしてチケットを送信support@mergemac.com 宛てに状況をお知らせください。件名に「セキュリティ報告」と記載してください。まず機密情報を伏せた概要をお送りください。証明書の秘密鍵、認証コード、接続パスワード全体、ウォレットの秘密情報は添付しないでください。
メールでセキュリティサポートに連絡セキュリティ報告は、リスクと影響範囲に応じて優先的に確認し、元のチケットまたはメールで対応状況をご連絡します。最初の返信は問題の解決を意味するものではありません。同じ報告スレッドを使い、新しい情報はそのまま追加してください。別々に報告して経緯が分散しないようにしましょう。
専有物理ノードがリソースを分離し、ワークロードの安全は権限、バックアップ、証明書の運用で守ります。準備ができたら、必要な契約期間でお申し込みください。