デバイス単位の専用利用
有効な契約期間中、注文に対応するMac miniはその注文で使用します。計算タスク、メモリ状態、デバイスのローカルストレージが、共有仮想リソースとして他のテナントに割り当てられることはありません。
有効な各注文には専用物理Mac miniが1台割り当てられ、コンピューティングリソースとデバイスのローカルストレージは他のテナントと共有されません。セキュリティは共同で担うものです。プラットフォームは物理ノードとサービスのコントロールプレーンを管理し、ユーザーはアカウント、接続認証情報、コード、サードパーティーツールの権限を管理します。
仮想マシンではないからといって、セキュリティ設定が不要になるわけではありません。専用デバイスによりテナント間のリソース混在は減りますが、アカウント保護、キーのローテーション、最小権限、バックアップはプロジェクト内で実施する必要があります。
MiniRentが提供するのは専用物理マシンです。1台のデバイスのプロセッサ、メモリ、ローカルSSDを複数のテナントに分割して提供することはありません。注文、デバイス、アクセス記録によって、確認可能な割り当ての連鎖が形成されます。
有効な契約期間中、注文に対応するMac miniはその注文で使用します。計算タスク、メモリ状態、デバイスのローカルストレージが、共有仮想リソースとして他のテナントに割り当てられることはありません。
コンソールでは注文、サービス記録の確認やサポートチケットの送信を行い、デバイス接続認証情報ではmacOSのグラフィカルインターフェースまたはコマンドラインに接続します。2種類の認証情報を使い回したり、同じ共有ドキュメントに保存したりしないでください。
ビルドアカウント、CI Runner、手動のリモートセッションには、それぞれ個別の権限を設定します。タスクに必要なディレクトリ、コマンド、トークンだけを許可し、自動化スクリプトに長期的な高権限認証情報を渡さないでください。
アカウントでは注文に関連する情報を確認し、サービス操作を開始できます。チームではメンバーごとにアクセス権を割り当て、同じログイン情報を複数人で長期間共有しないでください。
まず認証情報の共有を停止し、異常が発生した時刻、関連する注文、確認できる現象を記録してから、コンソールでサポートチケットを送信します。マスキングしていないキーや完全な証明書をチケット本文に貼り付けないでください。
コンソールからサポートチケットを送信影響を受けたログイン情報、SSHキー、コードリポジトリトークン、署名用素材を直ちにローテーションし、その後、自動化タスク、最近のログイン履歴、ビルドログに異常な利用がないか確認します。
対応手順を見るリモート接続は「誰が、いつ、どのタスクのために、どのデバイスへアクセスしたか」を軸に設計します。長期間使うキーを1本共有するのは簡単ですが、権限の回収とインシデント追跡が難しくなります。
個人が日常的に使うデバイスのデフォルトキーを使い回さないでください。チーム、プロジェクト、自動化タスクごとにキーを分け、秘密鍵には適切なローカル保護を設定します。
デバイス上に明確な認可リストを整備します。CI Runner、開発者、一時的なトラブル対応担当者には異なる認証情報を使い、他のタスクに影響を与えず個別に取り消せるようにします。
チームのネットワーク環境に応じて、許可する接続元を制限します。外部公開が不要なサービスは停止し、一時的に開放したポートはタスク終了後すぐに閉じます。
ローテーション後は新しい認証情報を配置するだけでなく、旧キーでセッションを確立できないことを実際に確認します。メンバー変更や漏えいの疑いがある場合は通常の周期を待たず、直ちにローテーションします。
ローカルSSDは注文単位で専用利用できますが、データの安全性は転送方法、ディレクトリ権限、バックアップ先、消去の習慣にも左右されます。機密性の高い素材を通常のソースコードと同じ方法で扱わないでください。
SSH、暗号化されたリポジトリ接続、またはチームが承認した安全な転送方法でデータを同期します。公開ダウンロードURLに証明書、秘密鍵、マスキングしていないビルドパッケージを置かないでください。
機密ディレクトリの読み取り範囲を制限し、ビルドアカウントと日常的な対話用アカウントを分離します。スクリプトにはタスクの完了に必要なファイルとコマンドの権限だけを与えます。
ソースコード、ビルド設定、証明書バックアップ、再生成できない成果物について、個別のバックアップ戦略を策定します。デバイスのローカルデータをプロジェクト唯一のコピーにしないでください。
一時証明書、エクスポートしたキーファイル、一度限りの成果物はタスク完了後すぐに削除し、キャッシュ、一時ディレクトリ、パイプラインのワークスペースも確認します。
| データ種別 | 主なリスク | 推奨される保管方法 | デバイスから離れる前の確認 |
|---|---|---|---|
| ソースコードと依存関係設定 | リポジトリ権限の拡大、非公開URLのログ記録 | 管理されたリポジトリと最小限の読み取り権限 | コミット完了を確認し、一時的な認証情報ファイルを削除 |
| 証明書と署名用素材 | 複製・拡散、有効期限の管理不備 | 暗号化して保管し、タスクごとにインポート | エクスポートしたコピーを確認し、一時ファイルを削除 |
| APIキーと短期トークン | ハードコード、ビルド出力からの漏えい | 環境変数注入または管理されたシークレットストレージ | 不要なトークンを取り消し、ログを確認 |
| ビルド成果物とデバッグログ | パス、ユーザー情報、内部アドレスの含有 | 分類して保管し、アクセス範囲を設定 | 必要な成果物をエクスポートし、保存不要なデータを削除 |
パイプラインは通常、コードリポジトリ、依存サービス、署名用素材、成果物ストレージに同時にアクセスします。長期間使う高権限キーをスクリプトに直接記述すると、1件のログ漏えいが複数システムへのアクセスリスクに拡大します。
単一のリポジトリ、単一のタスク、明確な期限に限定してアクセス権を発行し、自動化に組織全体へ及ぶ高権限認証情報を長期間保持させないでください。
管理された変数またはシークレットストレージから注入し、リポジトリ、イメージ、スクリプト引数、一般メンバーが読める設定ファイルに書き込まないでください。
環境変数全体、リクエストヘッダー、証明書パスを出力しないでください。トラブル対応時も必要なログだけを追加し、完了後は管理された出力レベルに戻します。
一時トークン、展開済みの署名用素材、中間成果物、キャッシュ内の機密情報を消去してから、Runnerを次のタスクに引き渡します。
異なるリポジトリやセキュリティレベルの異なるタスクには独立した実行IDを使用し、共有ワークスペース経由で別プロジェクトのデータを読み取れないようにします。
インフラ監視では、ノードの接続性、デバイスの稼働状態、リソースの異常、セキュリティイベントの兆候を確認します。ユーザーのソースコード、ビルド内容、業務データは通常の稼働指標ではありません。
状態の兆候、ユーザーからの報告、サービス記録に基づき、影響対象、発生時刻、確認できる現象を特定します。
影響を受けたアクセス経路を制限して異常の拡大を防ぎ、調査に必要な記録は保持します。
デバイス、注文、操作記録、ユーザーが提供したマスキング済み情報を照合し、インフラ、認証情報、第三者ツールの問題を切り分けます。
チケットまたはサポートメールで実行可能な情報を共有し、問題の範囲に応じて認証情報のローテーション、アクセス復旧、追加確認を行います。
契約終了前に、保持が必要なすべてのデータについて検証可能なコピーがあることを確認してください。デバイス回収後は元のアクセス経路が取り消され、デバイスはデータ消去プロセスに移行します。
ソースコードの変更、ビルド設定、署名用素材のバックアップ、ビルド成果物、デバッグログ、デバイスにしか存在しないプロジェクトファイルを確認します。
必要な内容をチームが管理する場所へ転送し、ファイルを開けること、リポジトリへのコミットが完全であること、バックアップに復元に必要な情報があることを確認します。
デバイスで使用したリポジトリトークン、Runner登録、デプロイキー、一時証明書を削除し、契約終了後も管理者不在のアクセス権が残らないようにします。
契約終了後にデバイスへのアクセスを取り消し、デバイスと注文の関係を確認したうえで回収・消去を実行します。以前のテナントの認証情報とデータが後続サービスで使われないようにします。
セキュリティ問題はインフラ、アカウント、デバイス設定だけでなく、コードリポジトリ、CIプラットフォーム、依存サービスに起因する場合もあります。報告時はまず影響範囲を切り分け、マスキングしていない機密情報を送らないでください。
デバイスの割り当て、インフラの稼働、注文との関連付け、アクセスの取り消し、デバイス回収・消去のプロセスを管理します。インフラの異常を特定し、サポートプロセスを通じて調査を進めます。
コンソールアカウントとデバイス認証情報を保護し、コード、証明書、トークン、ビルド成果物を管理します。最小権限、必要なバックアップ、ログのマスキング、メンバーの権限回収を実施してください。
第三者サービスは、それぞれの権限モデルに従ってトークン、ログ、データを処理します。ユーザーは該当する設定、アクセス記録、取り消しの仕組みを確認し、認可範囲を管理してください。
注文番号、デバイス識別子、問題の発生時刻、影響範囲、再現手順、実施済みの隔離措置、マスキング済みログを提供してください。秘密鍵、完全なトークン、完全な証明書、直接ログインできる認証情報は送信しないでください。
まずモデルとノードを確認し、チーム専用の接続認証情報、最小権限、バックアップ手順を整備します。デバイスの注文とその後の管理はすべてコンソールで行います。