Cloudflare Zero Trust で BitLocker のデバイスポスチャを設定する

# 目的
Cloudflare Zero Trust では、ディスクが暗号化されているかのデバイスポスチャを設定できます。

- [Disk encryption · Cloudflare Zero Trust docs](https://developers.cloudflare.com/cloudflare-one/identity/devices/warp-client-checks/disk-encryption/)

Windows OS では BitLocker が有効化されていることのチェックになりますが、その設定を確認します。

# 参考：WARP クライアントダウンロード
以下の PowerShell コマンドで最新安定版をインストールできます。

```powershell:PowerShell
[System.Net.ServicePointManager]::SecurityProtocol = @([System.Net.SecurityProtocolType]::Tls13,[System.Net.SecurityProtocolType]::Tls12)
$releases = Invoke-RestMethod -Uri "https://install.appcenter.ms/api/v0.1/apps/cloudflare/1.1.1.1-windows-1/distribution_groups/release/public_releases" -Method GET
$latest_release_id = ConvertFrom-Json $releases[0].id
$latest_release_json = Invoke-RestMethod -Uri "https://install.appcenter.ms/api/v0.1/apps/cloudflare/1.1.1.1-windows-1/distribution_groups/release/releases/${latest_release_id}" -Method GET
$latest_download_url = $latest_release_json.download_url
Invoke-WebRequest $latest_download_url -OutFile "C:\Users\Administrator\Desktop\Cloudflare_WARP_Release-x64.msi"
```

# 参考：WARP クライアントインストール
以下の PowerShell コマンドでインストール・指定したアカウントへのログインができます。

```powershell:PowerShell
$TEAM_NAME='YOUR_TEAM_NAME'

msiexec /i "Cloudflare_WARP_Release-x64.msi" /qn `
ORGANIZATION="${TEAM_NAME}" `
SERVICE_MODE="warp" `
ONBOARDING="false" `
SWITCH_LOCKED="false" `
AUTO_CONNECT="0" 
```

# BitLocker 有効化
以下の手順で有効化します。

- [BitLocker 操作ガイド - Windows Security | Microsoft Learn](https://learn.microsoft.com/ja-jp/windows/security/operating-system-security/data-protection/bitlocker/operations-guide?tabs=controlpanel#enable-bitlocker)

:::note info
TPM 未搭載のデバイスで BitLocker を有効化するためにはグループ ポリシーの変更が必要です。
- [TPM 非搭載のデバイスを BitLocker で保護する | 株式会社イルミネート・ジャパン](https://www.illuminate-j.jp/blog/m365_security4_bitlocker_wotpm)
:::

コントロールパネルから有効化をおこないます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/0f75bc71-bd17-d483-5f6c-066018a56f59.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/dbe79797-7ee5-6154-a211-b873e13456be.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/fc9a6efb-7ac5-1b73-45f2-7843df670cf8.png)

BitLocker が有効になっているかの確認は `Get-BitLockerVolume` の PowerShell コマンドでも確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/ee90ced7-77ed-9bbe-f5b6-828eee2a7d93.png)

# デバイスポスチャ設定

`Settings > WARP Client > Device Posture > WARP client checks > Add new` から `Disk Encryption` のデバイスポスチャを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/bdc8472e-e8b0-06fa-3a15-510d3a444e7c.png)

`Operating system > Windows` にして、`Volume name > C` 等として保存します。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/b09f58c1-716b-ebfb-c7c2-4699903484ef.png)

# 確認

## クライアント
クライアント側では、以下のように辿ることで実際のデバイスポスチャ情報が確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/559f34c4-edb7-c1a2-45b7-30a8f4471685.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/4046fda2-3120-b6ea-24fa-8757cddd037a.png)

## ダッシュボード
`My Team > Devices > Device Name > View details` から `Posture checks` の状態確認ができます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/8a5fedf9-5328-9630-856d-bfb047b9a498.png)


# まとめ

Cloudflare Zero Trust でも BitLocker のデバイスポスチャを設定して、ポリシーの条件に加えることができます。

また、デバイスポスチャチェックの反映は以下のように schedule 値（1m〜24h、デフォルト 5m）の設定により動きます。

> - [Device posture · Cloudflare Zero Trust docs](https://developers.cloudflare.com/cloudflare-one/identity/devices/#policy-enforcement-rate)
> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/8ca1752a-bc84-1e94-9a32-a03a8a404da3.png)

Windows OS デバイス向けにぜひご活用ください。