

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

# 設定對 EC2 序列主控台的存取
<a name="configure-access-to-serial-console"></a>

若要設定對序列主控台的存取權，您必須在帳戶層級授與序列主控台存取權，然後設定 IAM 政策以授予使用者存取權。針對 Linux 執行個體，您必須在每個執行個體上設定以密碼為基礎的使用者，以便使用者可以使用序列主控台進行疑難排解。

EC2 序列主控台會使用虛擬序列連接埠連線與執行個體互動。此連線與執行個體 VPC 無關，因此即使發生開機失敗或網路組態問題，您也可使用執行個體作業系統並執行疑難排解工具。由於此連線位於 VPC 網路外部，EC2 序列主控台不會使用執行個體安全群組或子網路網路 ACL 來授權執行個體的流量。

**開始之前**  
確認符合[先決條件](ec2-serial-console-prerequisites.md)。

**Topics**
+ [EC2 序列主控台的存取層級](#serial-console-access-levels)
+ [管理 EC2 序列主控台的帳戶存取](#serial-console-account-access)
+ [設定 EC2 序列主控台存取的 IAM 政策](#serial-console-iam)
+ [在 Linux 執行個體上設定作業系統使用者密碼](#set-user-password)

## EC2 序列主控台的存取層級
<a name="serial-console-access-levels"></a>

依預設，帳戶層級無法存取序列主控台。您需要在帳戶層級明確授予對序列主控台的存取權。如需詳細資訊，請參閱 [管理 EC2 序列主控台的帳戶存取](#serial-console-account-access)。

您可以使用服務控制政策 (SCP) 來允許對組織內序列主控台的存取。然後，您可以使用 IAM 政策控制存取，在使用者層級進行精細的存取控制。透過組合使用 SCP 和 IAM 政策，您擁有對序列主控台不同層級的存取控制。

**組織層級**  
您可以使用服務控制政策 (SCP) 來允許組織內成員帳戶存取序列主控台。如需 SCP 的詳細資訊，請參閱 *AWS Organizations 使用者指南*中的[服務控制政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。

**執行個體層級**  
您可以使用 IAM PrincipalTag 和 ResourceTag 結構，以及依其 ID 指定執行個體來設定序列主控台存取政策。如需詳細資訊，請參閱[設定 EC2 序列主控台存取的 IAM 政策](#serial-console-iam)。

**使用者層級**  
您可以設定 IAM 政策，以允許或拒絕指定的使用者將 SSH 公開金鑰推送至特定執行個體的序列主控台服務的權限，從而在使用者層級設定存取。如需詳細資訊，請參閱[設定 EC2 序列主控台存取的 IAM 政策](#serial-console-iam)。

**作業系統層級** (僅限 Linux 執行個體)  
您可以在客體作業系統層級設定使用者密碼。在某些使用案例下，這可讓您存取序列主控台。不過，若要監控日誌，您不需要以密碼為基礎的使用者。如需詳細資訊，請參閱 [在 Linux 執行個體上設定作業系統使用者密碼](#set-user-password)。

## 管理 EC2 序列主控台的帳戶存取
<a name="serial-console-account-access"></a>

依預設，帳戶層級無法存取序列主控台。您需要在帳戶層級明確授予對序列主控台的存取權。

此設定是在帳戶層級配置，可直接在帳戶中設定，或使用宣告式政策設定。它必須在您要授予序列主控台存取權的每個 AWS 區域 中設定。您可使用宣告式政策同時在多個區域及多個帳戶套用設定。使用宣告式政策時，您無法直接在帳戶中修改設定。本主題說明如何直接在帳戶內配置設定。如需使用宣告式政策的相關資訊，請參閱「AWS Organizations 使用者指南」**中的[宣告式政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html)。

**Contents**
+ [授予使用者管理帳戶存取的許可](#sc-account-access-permissions)
+ [檢視序列主控台的帳戶存取狀態](#sc-view-account-access)
+ [授與序列主控台的帳戶存取權](#sc-grant-account-access)
+ [拒絕帳戶存取序列主控台](#sc-deny-account-access)

### 授予使用者管理帳戶存取的許可
<a name="sc-account-access-permissions"></a>

若要允許使用者管理對 EC2 序列主控台的帳戶存取權，您必須授予他們所需的 IAM 許可。

下列政策會授與檢視帳戶狀態，以及允許和阻止帳戶存取 EC2 序列主控台的權限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:GetSerialConsoleAccessStatus",
                "ec2:EnableSerialConsoleAccess",
                "ec2:DisableSerialConsoleAccess"
            ],
            "Resource": "*"
        }
    ]
}
```

------

如需詳細資訊，請參閱「IAM 使用者指南」**中的[建立 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

### 檢視序列主控台的帳戶存取狀態
<a name="sc-view-account-access"></a>

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

**檢視序列主控台的帳戶存取**

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

1. 在導覽窗格中，選擇 **Dashboard (儀表板)**。

1. 在**帳戶屬性**卡片**的設定**下，選擇 **EC2 序列主控台**。

1. 在 **EC2 序列主控台**索引標籤上，**EC2 序列主控台存取**的值為**允許**或**禁止**。

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

**檢視序列主控台的帳戶存取**  
使用 [get-serial-console-access-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-serial-console-access-status.html) 命令。

```
aws ec2 get-serial-console-access-status
```

以下為範例輸出。若值為 `true`，表示允許帳戶存取序列主控台。

```
{
    "SerialConsoleAccessEnabled": true,
    "ManagedBy": "account"
}
```

`ManagedBy` 欄位指示配置設定的實體。可能的值為 `account` (直接設定) 或 `declarative-policy`。如需詳細資訊，請參閱「AWS Organizations 使用者指南」**中的[宣告式政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html)。

------
#### [ PowerShell ]

**檢視序列主控台的帳戶存取**  
使用 [Get-EC2SerialConsoleAccessStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SerialConsoleAccessStatus.html) cmdlet。

```
Get-EC2SerialConsoleAccessStatus -Select *
```

以下為範例輸出。若值為 `True`，表示允許帳戶存取序列主控台。

```
ManagedBy SerialConsoleAccessEnabled
--------- --------------------------
account   True
```

`ManagedBy` 欄位指示配置設定的實體。可能的值為 `account` (直接設定) 或 `declarative-policy`。如需詳細資訊，請參閱「AWS Organizations 使用者指南」**中的[宣告式政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html)。

------

### 授與序列主控台的帳戶存取權
<a name="sc-grant-account-access"></a>

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

**授與帳戶存取序列主控台**

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

1. 在導覽窗格中，選擇 **Dashboard (儀表板)**。

1. 在**帳戶屬性**卡片**的設定**下，選擇 **EC2 序列主控台**。

1. 選擇**管理**。

1. 若要允許存取帳戶中所有執行個體的 EC2 序列主控台，請選取**運許**核取方塊。

1. 選擇**更新**。

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

**授與帳戶存取序列主控台**  
使用 [enable-serial-console-access](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-serial-console-access.html) 命令。

```
aws ec2 enable-serial-console-access
```

以下為範例輸出。

```
{
    "SerialConsoleAccessEnabled": true
}
```

------
#### [ PowerShell ]

**授與帳戶存取序列主控台**  
使用 [Enable-EC2SerialConsoleAccess](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2SerialConsoleAccess.html) cmdlet。

```
Enable-EC2SerialConsoleAccess
```

以下為範例輸出。

```
True
```

------

### 拒絕帳戶存取序列主控台
<a name="sc-deny-account-access"></a>

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

**拒絕帳戶存取序列主控台**

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

1. 在導覽窗格中，選擇 **Dashboard (儀表板)**。

1. 在**帳戶屬性**卡片**的設定**下，選擇 **EC2 序列主控台**。

1. 選擇**管理**。

1. 若要阻止存取帳戶中所有執行個體的 EC2 序列主控台，請清除**允許**核取方塊。

1. 選擇**更新**。

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

**拒絕帳戶存取序列主控台**  
使用 [disable-serial-console-access](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-serial-console-access.html) 命令。

```
aws ec2 disable-serial-console-access
```

以下為範例輸出。

```
{
    "SerialConsoleAccessEnabled": false
}
```

------
#### [ PowerShell ]

**拒絕帳戶存取序列主控台**  
使用 [Disable-EC2SerialConsoleAccess](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2SerialConsoleAccess.html) cmdlet。

```
Disable-EC2SerialConsoleAccess
```

以下為範例輸出。

```
False
```

------

## 設定 EC2 序列主控台存取的 IAM 政策
<a name="serial-console-iam"></a>

依預設，使用者無法存取序列主控台。您的組織必須設定 IAM 政策，以授予使用者所需的存取權。如需詳細資訊，請參閱「IAM 使用者指南」**中的[建立 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

若要存取序列主控台，請建立包含 `ec2-instance-connect:SendSerialConsoleSSHPublicKey` 動作的 JSON 政策文件。此動作會授予使用者將公有金鑰推送至序列主控台服務的許可，此服務會啟動序列主控台工作階段。建議限制對特定 EC2 執行個體的存取。否則，擁有此許可的所有使用者都可以連線到所有 EC2 執行個體的序列主控台。

**Topics**
+ [明確允許存取序列主控台](#iam-explicitly-allow-access)
+ [明確拒絕存取序列主控台](#serial-console-IAM-policy)
+ [使用資源標籤來控制對序列主控台的存取](#iam-resource-tags)

### 明確允許存取序列主控台
<a name="iam-explicitly-allow-access"></a>

依預設，沒有人可以存取序列主控台。若要授與對序列主控台的存取權，您必須設定政策以明確允許存取。建議您設定限制存取特定執行個體的政策。

下列政策允許存取特定執行個體的序列主控台，並依其執行個體 ID 進行識別。

請注意，`DescribeInstances`、`DescribeInstanceTypes`、和 `GetSerialConsoleAccessStatus` 動作不支援資源層級許可，因此為這些動作指定所有資源，以 `*` (星號) 表示。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribeInstances",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:GetSerialConsoleAccessStatus"
            ],
             "Resource": "*"
        },
        {
            "Sid": "AllowinstanceBasedSerialConsoleAccess",
            "Effect": "Allow",
            "Action": [
                "ec2-instance-connect:SendSerialConsoleSSHPublicKey"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/i-0598c7d356eba48d7"
        }
    ]
}
```

------

### 明確拒絕存取序列主控台
<a name="serial-console-IAM-policy"></a>

下列 IAM 政策允許存取所有執行個體的序列主控台 (以 `*` (星號) 表示)，並明確拒絕存取特定執行個體的序列主控台 (依其 ID 進行識別)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowSerialConsoleAccess",
            "Effect": "Allow",
            "Action": [
                "ec2-instance-connect:SendSerialConsoleSSHPublicKey",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:GetSerialConsoleAccessStatus"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DenySerialConsoleAccess",
            "Effect": "Deny",
            "Action": [
                "ec2-instance-connect:SendSerialConsoleSSHPublicKey"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/i-0598c7d356eba48d7"
        }
    ]
}
```

------

### 使用資源標籤來控制對序列主控台的存取
<a name="iam-resource-tags"></a>

您可以使用資源標籤來控制對執行個體序列主控台的存取。

屬性型存取控制是一種授權策略，可根據可連接到使用者 AWS 和資源的標籤來定義許可。例如，下列政策允許使用者啟動執行個體的序列主控台連線，只有當該執行個體的資源標籤和主參與者的標籤具有相同的標籤鍵 `SerialConsole` 值時，才能啟動執行個體的序列主控台連線。

如需使用標籤控制對 AWS 資源的存取的詳細資訊，請參閱《*IAM 使用者指南*》中的[控制對 AWS 資源的存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)。

請注意，`DescribeInstances`、`DescribeInstanceTypes`、和 `GetSerialConsoleAccessStatus` 動作不支援資源層級許可，因此為這些動作指定所有資源，以 `*` (星號) 表示。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribeInstances",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:GetSerialConsoleAccessStatus"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowTagBasedSerialConsoleAccess",
            "Effect": "Allow",
            "Action": [
                "ec2-instance-connect:SendSerialConsoleSSHPublicKey"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/SerialConsole": "${aws:PrincipalTag/SerialConsole}"
                }
            }
        }
    ]
}
```

------

## 在 Linux 執行個體上設定作業系統使用者密碼
<a name="set-user-password"></a>

您無需密碼即可連線到序列主控台。不過，若要*使用*序列主控台進行 Linux 執行個體疑難排解，執行個體必須具有以密碼為基礎的 OS 使用者。

您可以為任何 OS 使用者 (包括根使用者) 設定密碼。請注意，根使用者可以修改所有檔案，而每個 OS 使用者的許可有限制。

您必須為每個要使用序列主控台的執行個體設定使用者密碼。這是每個執行個體都有的一次性要求。

**注意**  
根據預設， 提供的 AMIs AWS 不會設定密碼型使用者。如果您使用已設定根使用者密碼的 AMI 啟動執行個體，則可以略過這些指示。

**在 Linux 執行個體上設定作業系統使用者密碼**

1. [連線到您的執行個體](connect-to-linux-instance.md)。您可以使用任何方法連線到執行個體，EC2 序列主控台連線方法除外。

1. 若要設定使用者的密碼，請使用 **passwd** 命令。在下列範例中，使用者是 `root`。

   ```
   [ec2-user ~]$ sudo passwd root
   ```

   下列為範例輸出。

   ```
   Changing password for user root.
   New password:
   ```

1. 出現 `New password` 提示時，輸入新密碼。

1. 出現提示時，重新輸入密碼。