

# Amazon EC2 Mac インスタンスのシステム整合性保護を構成する
<a name="mac-sip-settings"></a>

x86 Mac インスタンスと Apple シリコン Mac インスタンスのシステム整合性保護 (SIP) を設定できます。SIP は、不正なコード実行やシステムレベルの改変を防ぐのに役立つ重要な macOS セキュリティ機能です。詳細については、「[About System Integrity Protection](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 つだけあることが前提です。アタッチされた各ボリュームには、それぞれ管理者ユーザーを 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 インスタンスを使用している場合は、これらのステップを実行する必要は**ありません**。

**注記**  
SIP 設定の API コールで使用するには、macOS 認証に使用されるすべての macOS ユーザー名とパスワードが 4～16 文字である必要があります。

**パスワードを設定し、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. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/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. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/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) コマンドを使用します。

------