marcomc.macos_filevault2
macOSのためのFileVault2 Ansibleロール
このAnsibleロールは、macOS v10.7以降のシステムに存在するfdesetup
を通じて、FileVault2をenable
(のみ)するためのコマンドのサブセットを実装しています。
Splinter, macOSのための意見のあるプロビジョニングツールで使用されています。
例のプレイブック
- vars:
filevault_additional_users_and_passwords:
- { username: "testuser", password: "test_password" }
filevault_certificate: yes
filevault_certificate_file: "/path/to/my/DER.cer"
filevault_showrecoverykey: yes
filevault_user_password: "FileVaultを有効にするユーザーのパスワード"
- hosts: localhost
roles:
- marcomc.macos_filevault2
変数
実装されているenable
オプションのサブセットは次の通りです。
fdesetup enable
[-outputplist]
[-forcerestart]
[-authrestart]
[-keychain | [-certificate path_to_cer_file]]
[
[-defer file_path]
[-forceatlogin max_cancel_attempts]
[-dontaskatlogout]
[-showrecoverykey]
]
[-norecoverykey]
[-verbose]
各オプションはansible変数に対応しています(さらにいくつかの追加変数もあります)。
verbose: no
filevault_user: "{{ ansible_user_id }}"
filevault_user_password: "{{ ansible_become_pass }}"
filevault_additional_users_and_passwords: []
filevault_input_plist: ''
filevault_keychain: no
filevault_keychain_file: no
filevault_keychain_file_override: no
filevault_certificate: no
filevault_certificate_file: ""
filevault_norecoverykey: no
filevault_recovery_key_output_file: "~/Desktop/{{ ansible_hostname }}-personal-recovery-key.txt"
filevault_outputplist: no
filevault_defer: no
filevault_defer_file: "/dev/null"
filevault_showrecoverykey: no
filevault_dontaskatlogout: no
filevault_forcerestart: no
filevault_authrestart: no
filevault_forceatlogin: no
filevault_max_cancel_attempts: '-1'
filevault_forcerestart: no
コマンドラインツール直接同様にオプションを切り替えることで、好みのインストール方法を取得できます。
入力リスト
自分の入力plistを指定して、インストールをさらにカスタマイズしたり、他のプロセスでそのファイルを生成したりできます。
自分の入力plistを指定しない場合(これはデフォルト動作です)、filevault_user
とfilevault_user_password
およびfilevault_additional_users_and_passwords
のリストを組み合わせて動的にplistが生成されます。
組織内のコンピュータ用に「institutional」リカバリキーを設定する
次のいずれかを選択できます:
- 事前生成されたキーチェーンリカバリキーをデプロイ
- キーチェーンに追加されるDER証明書をデプロイ(その場で生成されたリカバリキー)
証明書
提供された証明書ファイルで組織のリカバリキーを自動生成します。
これは、準備作業が最小限で、結果が「キーチェーン」オプションと同じであるため、私のお気に入りのオプションです。
証明書の共通名は「FileVault Recovery Key」である必要があります。
自分でDER証明書を手動で生成できます:
- FileVaultマスターキーチェーンの作成
- FileVaultRecoveryKey.cerに公開証明書要素のみをエクスポート
または、splinter-tools/filevault-recovery-key-generator.shスクリプトを使用することもできます。
キーチェーンとそのパスワードを安全な場所(Bitwarden、LastPass、1Passwordなど)に保存してください。
生成された自己署名証明書はFileVault Recovery Key (<your_hostname?>)
という名前になります。ホスト名は証明書の説明として設定され、変更できません。
説明をホスト名とは異なるものにする必要がある場合、キーチェーンを操作し、コンピュータ名を希望の証明書「説明」に一時的に設定し、その後元の値に戻す必要があります。
#!/usr/bin/env bash
# 元のホスト名を保存
ORIGINAL_HOSTNAME=$(eval hostname)
# 希望の説明にホスト名を変更
sudo scutil --set HostName "Institutional"
# 証明書でキーチェーンを作成
sh filevault-recovery-key-generator.sh FileVaultMaster
# 元のホスト名に戻す
sudo scutil --set HostName "${ORIGINAL_HOSTNAME}"
キーチェーン
キーチェーンのリカバリキーを選択する場合は、事前にリカバリキーを含むFileVaultMaster.keychain
ファイルを生成し、__秘密鍵を削除__して、マシンにデプロイしてください。
ユーザーの起動ディスクのロック解除
ユーザーがmacOSユーザーアカウントのパスワードを忘れ、Macにログインできない場合、元のFileVaultMaster.key
ファイルに含まれる秘密鍵を使用してディスクのロックを解除できます。
- Command-Rを押しながら起動してmacOSリカバリを起動します。
private-recovery-key
または秘密鍵を含む元のFileVaultMaster.keychain
を格納している外部ドライブを接続します。- macOSリカバリのメニューバーから「ユーティリティ」>「ターミナル」を選択します。
- FileVaultマスターキーチェーンのロックを解除します。
security unlock-keychain /path/to/FileVaultMaster.keychain
- 暗号化された起動ディスクのロックを解除します。
# APFSディスク
diskutil ap unlockVolume "暗号化ドライブの名前" -recoveryKeychain /path/to/FileVaultMaster.keychain
# Mac OS Extended (HFS Plus)ディスク
diskutil cs list # UUIDを見つける
diskutil cs unlockVolume {UUID} -recoveryKeychain /path/to/FileVaultMaster.keychain
ライセンス
著者 : Marco Massari Calderone (c) 2020 - marco@marcomc.com
Ansible role to configure FileVault2 on macOS. Also used in Splinter provisioning tool.
ansible-galaxy install marcomc.macos_filevault2