専用コンピューティングとローカルストレージ

まずデータの境界を明確にし、クラウドMacをワークフローに組み込む

有効な各注文には専用物理Mac miniが1台割り当てられ、コンピューティングリソースとデバイスのローカルストレージは他のテナントと共有されません。セキュリティは共同で担うものです。プラットフォームは物理ノードとサービスのコントロールプレーンを管理し、ユーザーはアカウント、接続認証情報、コード、サードパーティーツールの権限を管理します。

1注文 専用物理ノード1台に対応
共有なし コンピューティングリソースとデバイスのローカルストレージ
365日 ノードを正常稼働
デバイスセキュリティシート CONTROL / DATA / RECYCLE
境界を明確化
コンピューティングの割り当て
単一の有効な注文
デバイス形態
専用物理Mac mini
アクセス経路
コンソールとデバイス認証情報を分離
操作の確認
重要な操作を再確認
監視範囲
インフラの状態とセキュリティインシデント
契約終了時
アクセスを取り消し、消去プロセスへ移行

仮想マシンではないからといって、セキュリティ設定が不要になるわけではありません。専用デバイスによりテナント間のリソース混在は減りますが、アカウント保護、キーのローテーション、最小権限、バックアップはプロジェクト内で実施する必要があります。

セキュリティモデルの概要

分離はデバイスの割り当てから始まる

MiniRentが提供するのは専用物理マシンです。1台のデバイスのプロセッサ、メモリ、ローカルSSDを複数のテナントに分割して提供することはありません。注文、デバイス、アクセス記録によって、確認可能な割り当ての連鎖が形成されます。

デバイス単位の専用利用

有効な契約期間中、注文に対応するMac miniはその注文で使用します。計算タスク、メモリ状態、デバイスのローカルストレージが、共有仮想リソースとして他のテナントに割り当てられることはありません。

コントロールプレーンとデバイスを分離

コンソールでは注文、サービス記録の確認やサポートチケットの送信を行い、デバイス接続認証情報ではmacOSのグラフィカルインターフェースまたはコマンドラインに接続します。2種類の認証情報を使い回したり、同じ共有ドキュメントに保存したりしないでください。

権限はタスクに応じて設定

ビルドアカウント、CI Runner、手動のリモートセッションには、それぞれ個別の権限を設定します。タスクに必要なディレクトリ、コマンド、トークンだけを許可し、自動化スクリプトに長期的な高権限認証情報を渡さないでください。

アカウントとコンソールのセキュリティ

ログインセッションをデバイスの操作権限として管理する

アカウントでは注文に関連する情報を確認し、サービス操作を開始できます。チームではメンバーごとにアクセス権を割り当て、同じログイン情報を複数人で長期間共有しないでください。

デバイスアクセス制御

接続方式ごとに独立した、取り消し可能な認証情報を使用する

リモート接続は「誰が、いつ、どのタスクのために、どのデバイスへアクセスしたか」を軸に設計します。長期間使うキーを1本共有するのは簡単ですが、権限の回収とインシデント追跡が難しくなります。

  1. 01

    クラウドMac専用のSSHキーを作成

    個人が日常的に使うデバイスのデフォルトキーを使い回さないでください。チーム、プロジェクト、自動化タスクごとにキーを分け、秘密鍵には適切なローカル保護を設定します。

  2. 02

    メンバーとタスク単位で認可を記録

    デバイス上に明確な認可リストを整備します。CI Runner、開発者、一時的なトラブル対応担当者には異なる認証情報を使い、他のタスクに影響を与えず個別に取り消せるようにします。

  3. 03

    リモートアクセス元を制限

    チームのネットワーク環境に応じて、許可する接続元を制限します。外部公開が不要なサービスは停止し、一時的に開放したポートはタスク終了後すぐに閉じます。

  4. 04

    定期的にローテーションし、旧認証情報の無効化を確認

    ローテーション後は新しい認証情報を配置するだけでなく、旧キーでセッションを確立できないことを実際に確認します。メンバー変更や漏えいの疑いがある場合は通常の周期を待たず、直ちにローテーションします。

アイドルセッションの処理 リモート操作が完了したら、グラフィカルインターフェースのセッションとコマンドライン接続を終了し、高権限のターミナルを長時間放置しないでください。
接続失敗時の確認 デバイス識別子、ネットワーク接続元、ユーザー名、キーの権限、リモートサービスの状態を順番に確認し、トラブル対応のために公開アクセス範囲を直接広げないでください。
データの転送と保管

コード、証明書、キー、ビルド成果物を分けて管理

ローカルSSDは注文単位で専用利用できますが、データの安全性は転送方法、ディレクトリ権限、バックアップ先、消去の習慣にも左右されます。機密性の高い素材を通常のソースコードと同じ方法で扱わないでください。

転送

暗号化された経路を使用

SSH、暗号化されたリポジトリ接続、またはチームが承認した安全な転送方法でデータを同期します。公開ダウンロードURLに証明書、秘密鍵、マスキングしていないビルドパッケージを置かないでください。

権限

最小権限を適用

機密ディレクトリの読み取り範囲を制限し、ビルドアカウントと日常的な対話用アカウントを分離します。スクリプトにはタスクの完了に必要なファイルとコマンドの権限だけを与えます。

バックアップ

必要なコピーを保持

ソースコード、ビルド設定、証明書バックアップ、再生成できない成果物について、個別のバックアップ戦略を策定します。デバイスのローカルデータをプロジェクト唯一のコピーにしないでください。

消去

機密素材の保存期間を短縮

一時証明書、エクスポートしたキーファイル、一度限りの成果物はタスク完了後すぐに削除し、キャッシュ、一時ディレクトリ、パイプラインのワークスペースも確認します。

一般的なデータ種別と推奨される管理方法
データ種別 主なリスク 推奨される保管方法 デバイスから離れる前の確認
ソースコードと依存関係設定 リポジトリ権限の拡大、非公開URLのログ記録 管理されたリポジトリと最小限の読み取り権限 コミット完了を確認し、一時的な認証情報ファイルを削除
証明書と署名用素材 複製・拡散、有効期限の管理不備 暗号化して保管し、タスクごとにインポート エクスポートしたコピーを確認し、一時ファイルを削除
APIキーと短期トークン ハードコード、ビルド出力からの漏えい 環境変数注入または管理されたシークレットストレージ 不要なトークンを取り消し、ログを確認
ビルド成果物とデバッグログ パス、ユーザー情報、内部アドレスの含有 分類して保管し、アクセス範囲を設定 必要な成果物をエクスポートし、保存不要なデータを削除
CI/CD認証情報管理

自動化には1回のビルドに必要な最小権限だけを与える

パイプラインは通常、コードリポジトリ、依存サービス、署名用素材、成果物ストレージに同時にアクセスします。長期間使う高権限キーをスクリプトに直接記述すると、1件のログ漏えいが複数システムへのアクセスリスクに拡大します。

パイプラインセキュリティチェックリスト 設定をコミットする前に項目ごとに確認
5 CONTROLS
A

短期トークンを優先

単一のリポジトリ、単一のタスク、明確な期限に限定してアクセス権を発行し、自動化に組織全体へ及ぶ高権限認証情報を長期間保持させないでください。

B

実行時にキーを注入

管理された変数またはシークレットストレージから注入し、リポジトリ、イメージ、スクリプト引数、一般メンバーが読める設定ファイルに書き込まないでください。

C

デフォルトで実行ログをマスキング

環境変数全体、リクエストヘッダー、証明書パスを出力しないでください。トラブル対応時も必要なログだけを追加し、完了後は管理された出力レベルに戻します。

D

ビルド後にワークスペースを消去

一時トークン、展開済みの署名用素材、中間成果物、キャッシュ内の機密情報を消去してから、Runnerを次のタスクに引き渡します。

E

プロジェクトと実行IDを分離

異なるリポジトリやセキュリティレベルの異なるタスクには独立した実行IDを使用し、共有ワークスペース経由で別プロジェクトのデータを読み取れないようにします。

監視とインシデント対応

デバイスの状態を監視し、ユーザーの作業内容を稼働指標にしない

インフラ監視では、ノードの接続性、デバイスの稼働状態、リソースの異常、セキュリティイベントの兆候を確認します。ユーザーのソースコード、ビルド内容、業務データは通常の稼働指標ではありません。

プラットフォームが確認する項目

インフラとサービスの状態

  • 物理ノードが接続を維持し、正常に稼働しているか
  • コントロールプレーンの主要サービスが利用可能か
  • デバイスまたはネットワークに異常状態の兆候があるか
  • サービス操作が注文と認可に一致しているか
ユーザーが管理する項目

プロジェクト内容とツール権限

  • コードリポジトリ、依存関係ソース、成果物ストレージの権限
  • 証明書、キー、トークン、ビルド環境変数
  • リモートセッションでのファイル操作とコマンド操作
  • 第三者CI/CDツールにおける監査と権限回収
  1. 01

    識別

    状態の兆候、ユーザーからの報告、サービス記録に基づき、影響対象、発生時刻、確認できる現象を特定します。

  2. 02

    隔離

    影響を受けたアクセス経路を制限して異常の拡大を防ぎ、調査に必要な記録は保持します。

  3. 03

    調査

    デバイス、注文、操作記録、ユーザーが提供したマスキング済み情報を照合し、インフラ、認証情報、第三者ツールの問題を切り分けます。

  4. 04

    通知と復旧

    チケットまたはサポートメールで実行可能な情報を共有し、問題の範囲に応じて認証情報のローテーション、アクセス復旧、追加確認を行います。

契約終了時の消去

先にエクスポートし、その後デバイスへのアクセスを終了

契約終了前に、保持が必要なすべてのデータについて検証可能なコピーがあることを確認してください。デバイス回収後は元のアクセス経路が取り消され、デバイスはデータ消去プロセスに移行します。

01

保持が必要なデータを棚卸し

ソースコードの変更、ビルド設定、署名用素材のバックアップ、ビルド成果物、デバッグログ、デバイスにしか存在しないプロジェクトファイルを確認します。

02

コピーをエクスポートして検証

必要な内容をチームが管理する場所へ転送し、ファイルを開けること、リポジトリへのコミットが完全であること、バックアップに復元に必要な情報があることを確認します。

03

外部システムの認可を取り消す

デバイスで使用したリポジトリトークン、Runner登録、デプロイキー、一時証明書を削除し、契約終了後も管理者不在のアクセス権が残らないようにします。

04

デバイスの回収と消去

契約終了後にデバイスへのアクセスを取り消し、デバイスと注文の関係を確認したうえで回収・消去を実行します。以前のテナントの認証情報とデータが後続サービスで使われないようにします。

責任範囲と報告窓口

問題の説明が詳細であるほど、隔離と判断を迅速に行える

セキュリティ問題はインフラ、アカウント、デバイス設定だけでなく、コードリポジトリ、CIプラットフォーム、依存サービスに起因する場合もあります。報告時はまず影響範囲を切り分け、マスキングしていない機密情報を送らないでください。

プラットフォームの責任

物理ノードとサービスのコントロールプレーン

デバイスの割り当て、インフラの稼働、注文との関連付け、アクセスの取り消し、デバイス回収・消去のプロセスを管理します。インフラの異常を特定し、サポートプロセスを通じて調査を進めます。

ユーザーの責任

アカウント、認証情報、作業データ

コンソールアカウントとデバイス認証情報を保護し、コード、証明書、トークン、ビルド成果物を管理します。最小権限、必要なバックアップ、ログのマスキング、メンバーの権限回収を実施してください。

第三者ツールの責任

リポジトリ、パイプライン、依存サービス

第三者サービスは、それぞれの権限モデルに従ってトークン、ログ、データを処理します。ユーザーは該当する設定、アクセス記録、取り消しの仕組みを確認し、認可範囲を管理してください。

送信前の準備

セキュリティ報告に含める情報

注文番号、デバイス識別子、問題の発生時刻、影響範囲、再現手順、実施済みの隔離措置、マスキング済みログを提供してください。秘密鍵、完全なトークン、完全な証明書、直接ログインできる認証情報は送信しないでください。

最初のクラウドMacにセキュリティ基準を適用する準備を始める

まずモデルとノードを確認し、チーム専用の接続認証情報、最小権限、バックアップ手順を整備します。デバイスの注文とその後の管理はすべてコンソールで行います。