メインコンテンツへスキップ
ZUNDA株式会社

Jamf Pro ブループリントで実現する USB ストレージ制御

はじめに

「USB メモリを制御したい。でも Jamf Pro だけではできないから、セキュリティ製品で設定するしかない……」
Jamf Pro を使ってデバイス管理をしているのに、ポリシーの一部だけEDRを併用しなければならないこの状況は、管理者にとって地味にストレスのかかる問題です。
しかし、Jamf Pro 11.15 で利用できるようになったブループリントを使えば、USB ストレージの制御が Jamf Pro だけで実現できます。
この記事では、なぜそれが実現できるようになったのか、その背景にある技術的な仕組みから解説します。
なお、設定値として「許可」「読み取り専用」「禁止」の3つが用意されていますが、「読み取り専用」は読み書き可能な一般的なUSBメモリの場合認識されなくなるため、現実的なユースケースはほぼありません。実用上は「許可」か「禁止」の二択です。この点は記事の中で詳しく説明します。

背景:なぜ今まで USB 制御がMDMで完結しなかったのか

非推奨となった構成プロファイルによるデバイス制御

Jamf Pro の構成プロファイルには、以前から「制限」ペイロードの中に外部ストレージを制限する設定項目が存在していました。しかし macOS 11 Big Sur 以降、この項目は非推奨となり、Apple Silicon 搭載の Mac では実質的に動作しないことから、利用を避けられていました。

デバイス制御をセキュリティ製品に依存する状況が続いていた

結果として、USB 制御を実現するためには Jamf Protect や Microsoft Defender for Endpoint(MDE)といったエンドポイントセキュリティ製品に頼る構成が広まっていきました。
ブループリントを使えば、本来MDMの役割であるデバイス制御をJamf Proに集約することができます。
  • EDR → 脅威の検出・インシデント対応・セキュリティの可視化
  • Jamf Pro(ブループリント) → デバイスのあるべき状態の定義と維持・ポリシーの制御

ブループリント:DDM(宣言型デバイス管理)とは何か

ブループリントを理解するためには、その土台となっている DDM(Declarative Device Management:宣言型デバイス管理)の仕組みを知る必要があります。

従来の管理方法:デバイスは「指示待ち」の状態

従来の MDM の仕組みは、命令型と呼ばれ、大まかに言うと以下のような流れです。
  1. 管理者が Jamf Pro で設定を作成し、デバイスに送る
  2. Jamf Pro サーバーがデバイスに向けてコマンドをプッシュする
  3. デバイスがコマンドを受け取り、設定を適用する
  4. 適用が完了したら、Jamf Pro に結果を返す
  5. Jamf Pro は設定が反映されたかを確認するため、再度ポーリングを行う
MDMがすべての主導権を持っています。デバイスは「言われたことをやる」存在です。

新しい管理方法:デバイス自身が「自律的」に動く(DDM)

DDM では、MDMが「命令」を送るのではなく、「デバイスがあるべき状態」を「宣言(Declaration)」として定義します。デバイスはその宣言を受け取った後、自分自身でその状態を自律的にその宣言に合わせて状態を維持しようとします。
  1. 管理者がブループリントで「あるべき状態」を宣言する(例:「外部ストレージは禁止」)
  2. 宣言がデバイスに配信される
  3. デバイスは宣言に基づき、自律的に設定を適用する
  4. 再起動後も、オフライン時も、デバイス自身が宣言された状態を維持し続ける
  5. 状態に変化があった場合は、デバイスから Jamf Pro へ自律的に報告する
デバイスは「監視して命令する存在」から「状態を定義して報告を受け取る存在」に変わります。

事前要件

ブループリントを利用するには、以下の環境が必要です。
  • Jamf Pro: バージョン 11.15.0 以降
  • macOS: 15 Sequoia 以降(Intel / Apple Silicon 両対応)
  • Jamf Account(OIDC)による SSO の有効化
  • 監視対象(Supervised)デバイス: ADE(自動デバイス登録)による監視対象デバイス
注意: Jamf Pro のオンプレミス環境ではブループリントの一部機能が利用できない場合があります。Jamf Cloud 環境での利用を推奨します。

事前準備:Jamf Account SSO を有効化する

ブループリントを使うための前提として、Jamf Account を使った SSO を Jamf Pro に設定します。

手順 1: Jamf Account のメールアドレスを確認する

Jamf Proで「設定 → システム → ユーザアカウントおよびグループ」を開き、自分のアカウントの 「Eメールアドレス」欄に Jamf Account で使用しているメールアドレスがSSO可能な設定で登録されていることを確認します。

手順 2: SSO の設定を変更する

「設定 → システム → シングルサインオン」を開き、「SSO認証の有効化」にチェックを入れます。認証方式は「Jamf Account (OIDC)」を選択します。
「OIDC IdP 統合設定」のユーザマッピングが「Eメール」になっていることを確認して保存します。
設定を保存する前に、必ず フェイルオーバーログイン URL をメモしておいてください。SSO設定を間違えてロックアウトされても、ここからログインすることができます。

手順3: Jamf AccountでSSOを有効化する

Jamf Accountにログインして、Jamf ProのSSO設定を有効化します。
この設定を忘れると、Jamf Pro に ID・パスワードでのログインが必要になってしまいますので注意してください。
これらの設定が完了すると、以降は Jamf Pro 管理コンソールへのログインが Jamf Account の認証情報で行えるようになります。

ブループリントで USB ストレージを制御する手順

手順 1: ブループリントを新規作成する

Jamf Pro サイドバーから「ブループリント」を選択します。右上の「ブループリントを作成」をクリックし、ブループリント名を入力します。(例: Block External Storage

手順 2: ディスク管理設定コンポーネントを追加する

ブループリントエディタが開いたら、左側のコンポーネント一覧から「ディスク管理設定」を見つけ、「宣言グループ」エリアにドラッグ&ドロップします。

手順 3: ストレージポリシーを設定する

追加した「ディスク管理設定」をクリックして設定を開きます。
外部ストレージのポリシーを選択します。
設定値
動作
許可
外部ストレージのマウントを許可
読み取り専用
もともと読み取り専用のストレージのみマウント許可。一般的な読み書き可能なUSBメモリはマウント拒否
禁止
すべての外部ストレージのマウントを拒否
ここで注意が必要なのは 「読み取り専用」 の挙動です。「読み書き可能なUSBメモリを読み取り専用でマウントする」設定ではなく、「もともと読み取り専用であるメディア(CD-ROMなど)だけを許可する」設定です。
現実的にもともと読み取り専用であるメディアだけを使う場面はほぼないため、 実用上の選択肢は「許可」か「禁止」の二択と考えて問題ありません。
また、「禁止」「読み取り専用」どちらの設定でも、一般的なUSBメモリを挿した際にFinderへの表示も警告も出ずに静かにブロックされます。ユーザー側には何も通知されないため、「USBが壊れているのか?」と混乱する可能性があります。運用前にエンドユーザーへの周知をしておくことをおすすめします。
この挙動は、Jamf Proによる制限ではなく、DDMのフレームワーク自体の挙動のようです。Apple Developer DocumentationのDiskManagementSettingsRestrictionsObjectの項目にも
ReadOnly: The system can only mount read-only external storage. Note that external storage that is read-write will not be mounted read-only.
と記載があります。

手順 4: スコープを設定してデプロイする

画面上部の「スコープ」で、適用するSmart GroupまたはStatic Groupを選択します。
「保存」をクリックします。
最後に、「展開」をクリックして配信します。

手順 5: 端末側で確認する

DDM の宣言は従来の構成プロファイルとは異なり、「プロファイル」の一覧には表示されません。確認する場所が違うので注意が必要です。
「システム設定 → 一般 → デバイス管理」 を開き、MDM Profile(登録プロファイル)をダブルクリックしてプロファイルの詳細ウィンドウを開きます。
そのまま一番下までスクロールすると、「Device Declarations」 というセクションが現れます。
そこに 「ディスク管理」 が表示されていれば、DDM の宣言として正常に適用されています。

補足:管理者側からの適用状況の確認について

従来のコンピュータインベントリ画面では、ブループリントの適用状況は直接表示されません。管理者側から確認する場合は、以下の方法を使用してください。
  1. ブループリント画面から逆引きする
    Jamf Pro サイドバーの 「ブループリント」から該当のブループリントを開き、スコープを確認することで、どのグループ・デバイスに適用されているかを把握できます。端末起点ではなくブループリント起点の確認になります。また、グループのスコープに含まれる端末は、別途グループの設定画面から確認する必要があります。(直接グループに含まれる端末を表示できない)
  2. Jamf Pro API を使う
    より詳細な適用状況やDDM宣言のステータスを端末単位で確認したい場合は、Jamf Pro API を使う必要があります。現時点ではGUIのコンピュータレコードからブループリントの適用状況を直接確認する方法はなく、今後のバージョンアップで対応が進むことが期待されます。
Jamf Pro API https://テナント名.jamfcloud.com/api からGUIで手軽にAPIを利用することができます。
  1. declarative-device-management をクリックして、展開する
  2. GET /v1/declarative-device-management/{clientManagementId}/status-itemsをクリックする
  3. Try it Out をクリックする
  4. clientManagementIdに確認したい端末の「Jamf Pro 管理 ID」を入力して、Executeをクリックする(インベントリから確認できる)
  5. 返ってきた値の中に確認したいブループリントIDが含まれているか確認する
    ※ブループリントIDはブループリントを表示した時のURLの末尾の値です

まとめ

ブループリントを使ってUSBストレージの制御を行う方法を解説しました。
一般的なユースケースとして、USBは読み取り専用で運用することが多いため、完全に禁止できる組織であればこちらの設定が利用できそうです。
しかし、USB ストレージの制御は一例に過ぎず、ブループリントはパスコードポリシー、ソフトウェアアップデート管理など、MDM による制御をより自律的に管理させることができるようになります。ぜひ試してみてください。

参考リンク

関連記事