導入時にセキュアトークン、ブートストラップトークン、およびボリューム所有権を使用する
セキュアトークン
macOS 10.13以降のApple File System(APFS)では、FileVaultの暗号化鍵の生成方法が変更されています。CoreStorageボリュームの以前のバージョンのmacOSでは、FileVaultの暗号化処理で使用される鍵は、ユーザまたは組織がMacのFileVaultをオンにしたときに作成されていました。APFSボリュームのmacOSでは、ユーザの作成中、最初のユーザのパスワードを設定するとき、またはMacのユーザが初めてMacにログインするときに、暗号化鍵が生成されます。この暗号化鍵の実装、生成タイミング、および保存方法はすべて、セキュアトークンと呼ばれる機能の一部です。具体的には、セキュアトークンはユーザのパスワードで保護される鍵暗号化鍵(KEK)のラッピングされたバージョンです。
APFSにFileVaultを導入する場合は、引き続き以下のことが可能です:
既存のツールやプロセスを使用する(エスクローのためにモバイルデバイス管理(MDM)ソリューションで保存できるPRK(パーソナル復旧キー)など)
IRK(所属団体の復旧キー)を作成して使用する
ユーザがMacにログインするかMacからログアウトするまでFileVaultの有効化を延期する
macOS 11以降、Macの最初のユーザの初期パスワードを設定すると、そのユーザにセキュアトークンが付与されます。一部のワークフローでは、これが望ましい動作ではない場合があります。以前のように、最初のセキュアトークンを付与するために、そのユーザアカウントでのログインが必要になってしまいます。これが起こらないようにするには、以下に示すように、プログラムで作成されたユーザのAuthenticationAuthority
属性に;DisabledTags;SecureToken
を追加してから、そのユーザのパスワードを設定してください:
sudo dscl . -append /Users/<user name> AuthenticationAuthority ";DisabledTags;SecureToken"
ブートストラップトークン
macOS 10.15以降では、ブートストラップトークンは、既存のユーザアカウントへのセキュアトークンの付与以外の目的に使用されることもあります。Appleシリコンを搭載したMacコンピュータでは、ブートストラップトークンが使用可能でMDMを使用して管理されている場合に、ブートストラップトークンを使用して以下のことが可能です:
監視
MDMベンダーのサポート
MDMソリューションがブートストラップトークンをサポートしているとします。macOS 10.15.4以降では、セキュアトークンが有効なユーザが初めてログインすると、ブートストラップトークンが生成され、MDMにエスクローされます。必要に応じて、profiles
コマンドラインツールを使ってブートストラップトークンを生成し、MDMにエスクローすることもできます。
macOS 11以降では、ブートストラップトークンは、既存のユーザアカウントへのセキュアトークンの付与以外の目的に使用されることもあります。Appleシリコンを搭載したMacコンピュータでは、ブートストラップトークンが使用可能でMDMを使用して管理されている場合に、ブートストラップトークンを使用して以下のことが可能です:
ソフトウェアアップデートのインストールを認証する。
「すべてのコンテンツと設定を消去」MDMコマンドをサイレントに認可する(macOS 12.0.1以降)。
最初にプラットフォームSSOでログインするときに新しいユーザを作成する(macOS 13以降)。
ボリューム所有権
Appleシリコンを搭載したMacコンピュータには、ボリューム所有権という概念が導入されています。ボリューム所有権は、Macの実際の法的所有権または管理の連鎖に紐付けられるのではありません。代わりに、ボリューム所有権は、Macを自分で使用できるように構成することで、最初にMacの所有権を最初に主張したユーザとおよび追加のユーザとして緩やかに定義できます。macOSの特定のインストールの起動セキュリティポリシーを変更したり、macOSソフトウェアのアップデートまたはアップグレードのインストールを認可したり、Macで「すべてのコンテンツと設定を消去」を開始したりするには、ボリューム所有者である必要があります。起動セキュリティポリシーでは、起動できるmacOSのバージョンと、他社製カーネル機能拡張の読み込みまたは管理の可否および方法に関する制限が定義されます。
Macを使用できるように構成してMacの所有権を最初に主張したユーザは、Appleシリコンを搭載したMacでセキュアトークンが付与され、最初のボリューム所有者になります。ブートストラップトークンが使用可能で使用中の場合、そのブートストラップトークンもボリューム所有者になり、追加のアカウントにセキュアトークンを付与する際にボリューム所有権ステータスも付与します。最初にセキュアトークンを付与されたユーザとブートストラップトークンの両方がボリューム所有者になり、ブートストラップトークンは追加のユーザにセキュアトークンを(従ってボリューム所有権ステータスも)付与できるため、ボリューム所有権は組織で能動的に管理および操作しなければならないものではありません。セキュアトークンの管理および付与に関する以前の検討事項も、一般にボリューム所有権ステータスに一致します。
ボリューム所有者になっても管理者にならないことは可能ですが、特定のタスクでは両方の所有権を確認する必要があります。例えば、ソフトウェアアップデートは標準ユーザが許可でき、所有権のみが必要ですが、起動セキュリティ設定を変更するには、管理者とボリューム所有者の両方である必要があります。
Appleシリコンを搭載したMacコンピュータで現在のボリューム所有者のリストを表示するには、次のコマンドを実行します:
sudo diskutil apfs listUsers /
diskutil
コマンドの「Local Open Directory User」タイプの出力にリストされるGUIDは、Open DirectoryのユーザレコードのGeneratedUID
属性に対応します。GeneratedUID
でユーザを検索するには、次のコマンドを使用します:
dscl . -search /Users GeneratedUID <GUID>
次のコマンドを使用してユーザ名とGUIDを一緒に表示することもできます:
sudo fdesetup list -extended
所有権は、Secure Enclaveで保護された暗号化によって裏付けられます。詳しくは、以下を参照してください:
コマンドラインツールの使用法
ブートストラップトークンおよびセキュアトークンを管理するためのコマンドラインツールを利用できます。ブートストラップトークンは、通常、MDMソリューションがブートストラップトークン機能をサポートしていることをMacに通知したあと、macOS設定プロセス中にMacで生成され、MDMソリューションにエスクローされます。ただし、すでに導入されているMacでブートストラップトークンを生成することもできます。macOS 10.15.4以降では、MDMソリューションがブートストラップトークン機能をサポートする場合、セキュアトークンが有効になっているユーザの初回ログイン時にブートストラップトークンが生成され、MDMにエスクローされます。そのため、デバイスの設定後にprofilesコマンドラインツールを使ってブートストラップトークンを生成し、MDMソリューションにエスクローする必要が軽減されます。
profiles
コマンドラインツールには、ブートストラップトークンを操作するためのオプションが多数用意されています:
sudo profiles install -type bootstraptoken
: このコマンドは、新しいブートストラップトークンを生成し、MDMソリューションにエスクローします。このコマンドでは、ブートストラップトークンを初期生成する既存のセキュアトークン管理者情報が必要です。また、MDMソリューションがこの機能に対応していることも必要です。sudo profiles remove -type bootstraptoken
: MacおよびMDMソリューションの既存のブートストラップトークンを削除します。sudo profiles status -type bootstraptoken
: MDMソリューションがブートストラップトークン機能をサポートするかどうか、およびMac上のブートストラップトークンの現在の状態を返します。sudo profiles validate -type bootstraptoken
: MDMソリューションがブートストラップトークン機能をサポートするかどうか、およびMac上のブートストラップトークンの現在の状態を返します。
sysadminctlコマンドラインツール
Macコンピュータのユーザアカウントのセキュアトークンの状況を変更するときには、sysadminctl
コマンドラインツールを使用できます。これは必要な場合にのみ、注意して実行する必要があります。sysadminctl
を使ってユーザのセキュアトークンの状況を変更するときは、セキュアトークンが有効になっている既存の管理者のユーザ名とパスワードが常に要求されるため、これらを入力するか、コマンドに適切なフラグを付加して指定する必要があります。sysadminctl
でも、「システム設定」(macOS 13以降)または「システム環境設定」(macOS 12.0.1以前)でも、Macの最新の管理者やセキュアトークンが有効になっているユーザは削除されません。sysadminctl
を使ってローカルユーザの追加作成をスクリプティングする場合、それらのユーザに対してセキュアトークンを有効にするには、対話型オプションを使用して、またはsysadminctl
で-adminUser
および-adminPassword
フラグを指定して直接、現在セキュアトークンが有効になっている管理者の資格情報を指定する必要があります。作成時にセキュアトークンが付与されていない場合、macOS 11以降では、ブートストラップトークンがMDMソリューションから使用可能な場合、Macコンピュータにログインするローカルユーザにはログイン時にセキュアトークンが付与されます。詳細な使用方法については、sysadminctl -h
を使用してください。