設定 Amazon EC2 Mac 執行個體的系統完整性保護 - Amazon Elastic Compute Cloud

設定 Amazon EC2 Mac 執行個體的系統完整性保護

您可為 x86 Mac 執行個體和 Apple 晶片 Mac 執行個體設定系統完整性保護 (SIP) 設定。SIP 是 macOS 重要的安全功能,可協助防止未經授權的程式碼執行與系統層級修改。如需詳細資訊,請參閱關於系統完整性保護

您可以完全啟用或停用 SIP,也可選擇性地啟用或停用特定 SIP 設定。建議您僅暫時停用 SIP 來執行必要的任務,接著盡快重新啟用。保持 SIP 停用狀態可能會讓您的執行個體易受惡意程式碼攻擊。

所有支援 Amazon EC2 Mac 執行個體的 AWS 區域,均支援 SIP 組態。

考量事項

  • 支援下列 Amazon EC2 Mac 執行個體類型與 macOS 版本:

    • Mac1 | Mac2 | Mac2-m1ultra – macOS Ventura (13.0 版或更新版本)

    • Mac2-m2 | Mac2-m2pro – macOS Ventura (13.2 版或更新版本)

    • Mac-m4 | Mac-m4pro – macOS Sequoia (15.6 版或更新版本)

    注意

    不支援 macOS 的 Beta 版與預覽版。

  • 您可指定自訂 SIP 組態,以選擇性地啟用或停用個別 SIP 設定。若您實作自訂組態,請連線至執行個體並驗證設定,確保您的需求已正確實施且運作符合預期。

    SIP 組態可能會隨 macOS 更新而變更。建議您在每次升級 macOS 版本後,檢閱自訂 SIP 設定,確保安全配置的持續相容性與功能持續正常。

  • 對於 x86 Mac 執行個體,SIP 設定會於執行個體層級套用。任何連接到執行個體的根磁碟區都會自動繼承已設定的 SIP 設定。

    對於 Apple 晶片 Mac 執行個體,SIP 設定會在磁碟區層級套用。連接到執行個體的根磁碟區不會繼承 SIP 設定。若您連接到另一個根磁碟區,則必須將 SIP 設定重新設定為所需的狀態。

  • SIP 組態任務最長可能需要 90 分鐘才能完成。SIP 組態任務執行期間,執行個體將處於無法存取的狀態。

  • SIP 組態不會轉移至您後續從該執行個體建立的快照或 AMI。

  • Apple 晶片 Mac 執行個體只能有一個可啟動磁碟區,而且每個連接的磁碟區只能有一個額外的管理員使用者。

預設 SIP 組態

下列表格列出 x86 Mac 執行個體與 Apple 晶片 Mac 執行個體的預設 SIP 配置。

Apple 晶片 Mac 執行個體 x86 Mac 執行個體
Apple 內部 已啟用 Disabled
檔案系統保護 已啟用 Disabled
基礎系統 已啟用 已啟用
偵錯限制 已啟用 已啟用
Dtrace 限制 已啟用 已啟用
Kext 簽署 已啟用 已啟用
Nvram 保護 已啟用 已啟用

檢查您的 SIP 組態

我們建議您在進行變更前後檢查 SIP 組態,確保其設定符合預期。

檢查 Amazon EC2 Mac 執行個體的 SIP 組態

使用 SSH 連線至執行個體,然後在命令列執行下列命令。

$ csrutil status

下列為範例輸出。

System Integrity Protection status: enabled. Configuration: Apple Internal: enabled Kext Signing: disabled Filesystem Protections: enabled Debugging Restrictions: enabled DTrace Restrictions: enabled NVRAM Protections: enabled BaseSystem Verification: disabled

Apple 晶片 Mac 執行個體的先決條件

設定 Apple 晶片 Mac 執行個體的 SIP 設定前,您必須為 Amazon EBS 根磁碟區管理使用者 (ec2-user) 設定密碼並啟用安全字符。

注意

密碼和安全字符在您第一次使用 GUI 連接到 Apple 晶片 Mac 執行個體時設定。若您先前已透過 GUI 連線至執行個體,或使用的是 x86 Mac 執行個體,則無需執行這些步驟。

為 EBS 根磁碟區管理使用者設定密碼並啟用安全字符
  1. 使用 SSH 連線至執行個體

  2. 設定 ec2-user 使用者的密碼。

    $ sudo /usr/bin/dscl . -passwd /Users/ec2-user
  3. ec2-user 使用者啟用安全字符。對於 -oldPassword,指定與上一個步驟相同的密碼。對於 -newPassword,請指定不同的密碼。下列命令假設您已將舊密碼與新密碼儲存在 .txt 檔案中。

    $ sysadminctl -oldPassword `cat old_password.txt` -newPassword `cat new_password.txt`
  4. 確認安全字符已啟用。

    $ sysadminctl -secureTokenStatus ec2-user

設定 SIP 設定

當您為執行個體設定 SIP 設定時,可以啟用或停用所有 SIP 設定,也可指定選擇性啟用或停用特定 SIP 設定的自訂組態。

注意

若您實作自訂組態,請連線至執行個體並驗證設定,確保您的需求已正確實施且運作符合預期。

SIP 組態可能會隨 macOS 更新而變更。建議您在每次升級 macOS 版本後,檢閱自訂 SIP 設定,確保安全配置的持續相容性與功能持續正常。

要設定執行個體的 SIP 設定,您必須建立 SIP 組態任務。SIP 組態任務會指定執行個體的 SIP 設定。

為 Apple 晶片 Mac 執行個體建立 SIP 組態時,必須指定下列憑證:

  • 內部磁碟的管理使用者

    • 使用者名稱 – 僅支援預設的管理使用者 (aws-managed-user),並且預設會使用。您無法指定其他管理員使用者。

    • 密碼 – 若您未變更 aws-managed-user 的預設密碼,請指定預設密碼,即空白。否則,請指定您自訂的密碼。

  • Amazon EBS 根磁碟區管理使用者

    • 使用者名稱 – 若您未變更預設管理使用者,請指定 ec2-user。否則,為您的管理使用者指定使用者名稱。

    • 密碼 – 您必須一律指定密碼。

使用下列方法建立 SIP 組態任務。

Console
使用主控台建立 SIP 組態任務
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選取執行個體,然後選取 Amazon EC2 Mac 執行個體。

  3. 安全性索引標籤中,選擇修改 Mac、修改系統完整性保護

  4. 要啟用所有 SIP 設定,請選取啟用 SIP。要停用所有 SIP 設定,請清除啟用 SIP

  5. 若要指定選擇性啟用或停用特定 SIP 設定的自訂組態,請選取指定自訂 SIP 組態,隨後選取要啟用的 SIP 設定,或清除要停用的 SIP 設定。

  6. 指定根磁碟區使用者和內部磁碟擁有者的憑證。

  7. 選擇建立 SIP 修改任務

AWS CLI
使用 AWS CLI 建立 SIP 組態任務

使用 create-mac-system-integrity-protection-modification-task 命令。

啟用或停用所有 SIP 設定

若要完全啟用或停用所有 SIP 設定,僅使用 --mac-system-integrity-protection-status 參數。

下列範例命令會啟用全部 SIP 設定。

aws ec2 create-mac-system-integrity-protection-modification-task \ --instance-id i-0abcdef9876543210 \ --mac-system-integrity-protection-status enabled \ --mac-credentials file://mac-credentials.json
指定自訂 SIP 組態

要指定選擇性啟用或停用特定 SIP 設定的自訂 SIP 組態,請指定 --mac-system-integrity-protection-status--mac-system-integrity-protection-configuration 參數。在此情況下,使用 mac-system-integrity-protection-status 指定整體 SIP 狀態,並使用 mac-system-integrity-protection-configuration 選擇性啟用或停用個別 SIP 設定。

下列範例命令會建立 SIP 組態任務,以啟用 NvramProtectionsFilesystemProtections 以外的所有 SIP 設定。

aws ec2 create-mac-system-integrity-protection-modification-task \ --instance-id i-0abcdef9876543210 \ --mac-system-integrity-protection-status enabled \ --mac-system-integrity-protection-configuration "NvramProtections=disabled, FilesystemProtections=disabled" \ --mac-credentials file://mac-credentials.json

下列範例命令會建立 SIP 組態任務,以停用除 DtraceRestrictions 以外的所有 SIP 設定。

aws ec2 create-mac-system-integrity-protection-modification-task \ --instance-id i-0abcdef9876543210 \ --mac-system-integrity-protection-status disabled \ --mac-system-integrity-protection-configuration "DtraceRestrictions=enabled" \ --mac-credentials file://mac-credentials.json
mac-credentials.json 檔案的內容

之前範例中所參考 mac-credentials.json 檔案的內容如以下所示。

{ "internalDiskPassword":"internal-disk-admin_password", "rootVolumeUsername":"root-volume-admin_username", "rootVolumepassword":"root-volume-admin_password" }

檢查 SIP 組態任務狀態

使用下列其中一種方法來檢查 SIP 組態任務的狀態。

Console
使用主控台來檢視 SIP 組態設定
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選取執行個體,然後選取 Amazon EC2 Mac 執行個體。

  3. 安全性索引標籤中,向下捲動至 Mac 修改任務區段。

AWS CLI
使用 AWS CLI 檢查 SIP 組態任務的狀態

使用 describe-mac-modification-tasks 命令。