

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定 Amazon EC2 Mac 執行個體的系統完整性保護
<a name="mac-sip-settings"></a>

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

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

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

**Topics**
+ [考量事項](#mac-sip-considerations)
+ [預設 SIP 組態](#mac-sip-defaults)
+ [檢查您的 SIP 組態](#mac-sip-check-settings)
+ [Apple 晶片 Mac 執行個體的先決條件](#mac-sip-prereqs)
+ [設定 SIP 設定](#mac-sip-configure)
+ [檢查 SIP 組態任務狀態](#mac-sip-state)

## 考量事項
<a name="mac-sip-considerations"></a>
+ 支援下列 Amazon EC2 Mac 執行個體類型與 macOS 版本：
  + **Mac1 \$1 Mac2 \$1 Mac2-m1ultra** – macOS Ventura (13.0 版或更新版本)
  + **Mac2-m2 \$1 Mac2-m2pro** – macOS Ventura (13.2 版或更新版本)
  + **Mac-m4 \$1 Mac-m4pro** – macOS Sequoia (15.6 版或更新版本)
**注意**  
不支援 macOS 的 Beta 版與預覽版。
+ 您可指定自訂 SIP 組態，以選擇性地啟用或停用個別 SIP 設定。若您實作自訂組態，[請連線至執行個體並驗證設定](#mac-sip-check-settings)，確保您的需求已正確實施且運作符合預期。

  SIP 組態可能會隨 macOS 更新而變更。建議您在每次升級 macOS 版本後，檢閱自訂 SIP 設定，確保安全配置的持續相容性與功能持續正常。
+ 對於 x86 Mac 執行個體，SIP 設定會於執行個體層級套用。任何連接到執行個體的根磁碟區都會自動繼承已設定的 SIP 設定。

  對於 Apple 晶片 Mac 執行個體，SIP 設定會在磁碟區層級套用。連接到執行個體的根磁碟區不會繼承 SIP 設定。若您連接到另一個根磁碟區，則必須將 SIP 設定重新設定為所需的狀態。
+ SIP 組態任務最長可能需要 90 分鐘才能完成。SIP 組態任務執行期間，執行個體將處於無法存取的狀態。
+ SIP 組態不會轉移至您後續從該執行個體建立的快照或 AMI。
+ Apple 晶片 Mac 執行個體只能有一個可啟動磁碟區，而且每個連接的磁碟區只能有一個額外的管理員使用者。

## 預設 SIP 組態
<a name="mac-sip-defaults"></a>

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


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

## 檢查您的 SIP 組態
<a name="mac-sip-check-settings"></a>

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

**檢查 Amazon EC2 Mac 執行個體的 SIP 組態**  
[使用 SSH 連線至執行個體](connect-to-mac-instance.md#mac-instance-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 執行個體的先決條件
<a name="mac-sip-prereqs"></a>

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

**注意**  
密碼和安全字符在您第一次使用 GUI 連接到 Apple 晶片 Mac 執行個體時設定。若您先前[已透過 GUI 連線至執行個體](connect-to-mac-instance.md#mac-instance-vnc)，或使用的是 x86 Mac 執行個體，則**無需**執行這些步驟。

**注意**  
用於 macOS 身分驗證的所有 macOS 使用者名稱和密碼都必須介於 4 到 16 個字元之間，才能與 SIP 設定 API 呼叫搭配使用。

**為 EBS 根磁碟區管理使用者設定密碼並啟用安全字符**

1. [使用 SSH 連線至執行個體](connect-to-mac-instance.md#mac-instance-ssh)。

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

   ```
   $ sudo /usr/bin/dscl . -passwd /Users/ec2-user
   ```

1. 為 `ec2-user` 使用者啟用安全字符。對於 `-oldPassword`，指定與上一個步驟相同的密碼。對於 `-newPassword`，請指定不同的密碼。下列命令假設您已將舊密碼與新密碼儲存在 `.txt` 檔案中。

   ```
   $ sysadminctl -oldPassword `cat old_password.txt` -newPassword `cat new_password.txt`
   ```

1. 確認安全字符已啟用。

   ```
   $ sysadminctl -secureTokenStatus ec2-user
   ```

## 設定 SIP 設定
<a name="mac-sip-configure"></a>

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

**注意**  
若您實作自訂組態，[請連線至執行個體並驗證設定](#mac-sip-check-settings)，確保您的需求已正確實施且運作符合預期。  
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/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選取**執行個體**，然後選取 Amazon EC2 Mac 執行個體。

1. 在**安全性**索引標籤中，選擇**修改 Mac、修改系統完整性保護**。

1. 要啟用所有 SIP 設定，請選取**啟用 SIP**。要停用所有 SIP 設定，請清除**啟用 SIP**。

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

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

1. 選擇**建立 SIP 修改任務**。

------
#### [ AWS CLI ]

**使用 建立 SIP 組態任務 AWS CLI**  
使用 [ create-mac-system-integrity-protection-modification-task](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-mac-system-integrity-protection-modification-task.html) 命令。

**啟用或停用所有 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 組態任務，以啟用 `NvramProtections` 和 `FilesystemProtections` 以外的所有 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 組態任務狀態
<a name="mac-sip-state"></a>

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

------
#### [ Console ]

**使用主控台來檢視 SIP 組態設定**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選取**執行個體**，然後選取 Amazon EC2 Mac 執行個體。

1. 在**安全性**索引標籤中，向下捲動至 **Mac 修改任務**區段。

------
#### [ AWS CLI ]

**使用 檢查 SIP 組態任務的狀態 AWS CLI**  
使用 [ describe-mac-modification-tasks](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-mac-modification-tasks.html) 命令。

------