

# 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를 비활성화한 상태로 두면 인스턴스가 악성 코드에 취약해질 수 있습니다.

SIP 구성은 Amazon EC2 Mac 인스턴스가 지원되는 모든 AWS 리전에서 지원됩니다.

**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의 베타 및 미리 보기 버전은 지원되지 않습니다.
+ 사용자 지정 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 인스턴스에는 부팅 가능한 볼륨이 하나만 있어야 하며 연결된 각 볼륨에는 추가 관리 사용자가 1명만 있을 수 있습니다.

## 기본 SIP 구성
<a name="mac-sip-defaults"></a>

다음 표에는 x86 Mac 인스턴스와 Apple 실리콘 Mac 인스턴스의 기본 SIP 구성이 나열되어 있습니다.


|  | Apple 실리콘 Mac 인스턴스 | x86 Mac 인스턴스 | 
| --- | --- | --- | 
| Apple 내부 | 활성화됨 | 비활성화됨 | 
| 파일 시스템 보호 | 활성화됨 | 비활성화됨 | 
| 기본 시스템 | 활성화됨 | 활성화됨 | 
| 디버깅 제한 사항 | 활성화됨 | 활성화됨 | 
| 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 사용자 이름과 암호는 SIP 설정 API 직접 호출에 사용하기 위해 4\$116자여야 합니다.

**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 ]

**AWS CLI를 사용하여 SIP 구성 작업을 생성하려면**  
[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 설정을 선택적으로 활성화 또는 비활성화합니다.

다음 예제 명령은 `NvramProtections` 및 `FilesystemProtections`를 제외한 모든 SIP 설정을 활성화하는 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
```

다음 예제 명령은 `DtraceRestrictions`를 제외한 모든 SIP 설정을 비활성화하는 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 ]

**AWS CLI를 사용하여 SIP 구성 작업의 상태를 확인하려면**  
[describe-mac-modification-tasks](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-mac-modification-tasks.html) 명령을 사용합니다.

------