fleet/docs/Using Fleet/MDM-custom-macOS-settings.md
Noah Talerman f24cc15546
MDM docs: custom macOS settings (#15112)
- Add info about Fleet's profile redelivery
- Cut words
2023-11-17 10:13:22 -06:00

4.5 KiB

Custom macOS settings

In Fleet you can enforce custom settings on your macOS hosts using configuration profiles.

Enforce custom settings

To enforce custom settings, we will do the following steps:

  1. Create a configuration profile with iMazing Profile editor
  2. Upload the profiles to Fleet
  3. Confirm the setting is enforced

Step 1: create a configuration profile

How to create a configuration profile with iMazing Profile Creator:

  1. Download and install iMazing Profile Creator.

  2. Open iMazing Profile Creator and select macOS in the top bar.

  3. Find and choose the settings you'd like to enforce on your macOS hosts.

The best practice is to limit the scope of a single profile: only include one setting (ex. Restrictions) per profile. To enforce more settings, create and add additional profiles.

  1. In iMazing Profile Creator, select the General tab. Enter a descriptive name in the Name field. When you add this profile to Fleet, Fleet will display this name in the Fleet UI.

  2. In your top menu bar select File > Save As... and save your configuration profile. Make sure the file is saved as .mobileconfig.

Step 2: upload configuration profile to Fleet

In Fleet, you can upload configuration profiles using the Fleet UI or fleetctl command-line tool.

The Fleet UI method is a good start if you're just getting familiar with Fleet.

The fleetctl CLI method enables managing configuration profiles in a Git repository. This way you can enforce code review and benefit from Git's change history.

Fleet UI:

  1. In the Fleet UI, head to the Controls > macOS settings > Custom settings page.

  2. Choose which team you want to add the configuration profile to by selecting the desired team in the teams dropdown in the upper left corner. Teams are available in Fleet Premium.

  3. Select Upload and choose your configuration profile. After your configuration profile is uploaded to Fleet, Fleet will apply the profile to all macOS hosts in the selected team. Thereafter, the profile will be applied to new macOS hosts that enroll to that team.

fleetctl CLI:

  1. Choose which team you want to add the configuration profile to.

In this example, we'll add a configuration profile to the "Workstations (canary)" team so that the setting only gets enforced on hosts assigned to this team.

  1. Create a workstations-canary-config.yaml file:
apiVersion: v1
kind: team
spec:
  team:
    name: Workstations (canary)
    mdm:
      macos_settings:
        custom_settings:
          - /path/to/configuration_profile.mobileconfig
    ...

Learn more about team configurations options here.

To enforce settings on hosts that aren't assigned to a team ("No team"), we'll need to create an fleet-config.yaml file:

apiVersion: v1
kind: config
spec:
  mdm:
    macos_settings:
      custom_settings:
        - /path/to/configuration_profile.mobileconfig
  ...

Learn more about configuration options for hosts that aren't assigned to a team here.

  1. Add an mdm.macos_settings.custom_settings key to your YAML document. This key accepts an array of paths to your configuration profiles.

  2. Run the fleetctl apply -f workstations-canary-config.yml command to upload the configuration profiles to Fleet. Note that this will override any configuration profiles added using the Fleet UI method.

Step 3: confirm the setting is enforced

  1. In the Fleet UI, head to the Controls > macOS settings tab.

  2. In the top box, with "Verified," "Verifying," "Pending," and "Failed" statuses, click each status to view a list of hosts:

  • Verified: hosts that installed all configuration profiles. Fleet has verified with osquery.

  • Verifying: hosts that have acknowledged all MDM commands to install configuration profiles. Fleet is verifying the profiles are installed with osquery. If the profile wasn't installed, Fleet will redeliver the profile.

  • Pending: hosts that will receive MDM commands to install configuration profiles when the hosts come online.

  • Failed: hosts that failed to install configuration profiles.

  1. In the list of hosts, click on an individual host and click the macOS settings item to see the status for a specific setting.