本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要設定對序列主控台的存取權,您必須在帳戶層級授與序列主控台存取權,然後設定 IAM 政策以授予使用者存取權。針對 Linux 執行個體,您必須在每個執行個體上設定以密碼為基礎的使用者,以便使用者可以使用序列主控台進行疑難排解。
在開始之前,請務必檢查先決條件。
EC2 序列主控台的存取層級
依預設,帳戶層級無法存取序列主控台。您需要在帳戶層級明確授予對序列主控台的存取權。如需詳細資訊,請參閱 管理 EC2 序列主控台的帳戶存取。
您可以使用服務控制政策 (SCP) 來允許對組織內序列主控台的存取。然後,您可以使用 IAM 政策控制存取,在使用者層級進行精細的存取控制。透過組合使用 SCP 和 IAM 政策,您擁有對序列主控台不同層級的存取控制。
- 組織層級
-
您可以使用服務控制政策 (SCP) 來允許組織內成員帳戶存取序列主控台。如需 SCP 的詳細資訊,請參閱 AWS Organizations 使用者指南中的服務控制政策。
- 執行個體層級
-
您可以使用 IAM PrincipalTag 和 ResourceTag 結構,以及依其 ID 指定執行個體來設定序列主控台存取政策。如需詳細資訊,請參閱設定 EC2 序列主控台存取的 IAM 政策。
- 使用者層級
-
您可以設定 IAM 政策,以允許或拒絕指定的使用者將 SSH 公開金鑰推送至特定執行個體的序列主控台服務的權限,從而在使用者層級設定存取。如需詳細資訊,請參閱設定 EC2 序列主控台存取的 IAM 政策。
- 作業系統層級 (僅限 Linux 執行個體)
-
您可以在客體作業系統層級設定使用者密碼。在某些使用案例下,這可讓您存取序列主控台。不過,若要監控日誌,您不需要以密碼為基礎的使用者。如需詳細資訊,請參閱 在 Linux 執行個體上設定作業系統使用者密碼。
管理 EC2 序列主控台的帳戶存取
依預設,帳戶層級無法存取序列主控台。您需要在帳戶層級明確授予對序列主控台的存取權。
此設定是在帳戶層級配置,可直接在帳戶中設定,或使用宣告式政策設定。它必須在您要授予序列主控台存取權的每個 AWS 區域 中設定。您可使用宣告式政策同時在多個區域及多個帳戶套用設定。使用宣告式政策時,您無法直接在帳戶中修改設定。本主題說明如何直接在帳戶內配置設定。如需使用宣告式政策的相關資訊,請參閱「AWS Organizations 使用者指南」中的宣告式政策。
授予使用者管理帳戶存取的許可
若要允許使用者管理對 EC2 序列主控台的帳戶存取權,您必須授予他們所需的 IAM 許可。
下列政策會授與檢視帳戶狀態,以及允許和阻止帳戶存取 EC2 序列主控台的權限。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:GetSerialConsoleAccessStatus",
"ec2:EnableSerialConsoleAccess",
"ec2:DisableSerialConsoleAccess"
],
"Resource": "*"
}
]
}
如需詳細資訊,請參閱「IAM 使用者指南」中的建立 IAM 政策。
檢視序列主控台的帳戶存取狀態
- Console
-
檢視對序列主控台的帳戶存取權
前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。
-
在左側導覽窗格中,選擇 EC2 Dashboard (EC2 儀表板)。
-
在 Account attributes (帳戶屬性) 中,選擇 EC2 Serial Console (EC2 序列主控台)。
-
在 EC2 序列主控台索引標籤上,EC2 序列主控台存取的值為允許或禁止。
- AWS CLI
-
檢視對序列主控台的帳戶存取權
使用 get-serial-console-access-status 命令。
aws ec2 get-serial-console-access-status
下列為範例輸出。值 true
表示允許帳戶存取序列主控台。
{
"SerialConsoleAccessEnabled": true,
"ManagedBy": "account"
}
ManagedBy
欄位指示配置設定的實體。可能的值為 account
(直接設定) 或 declarative-policy
。如需詳細資訊,請參閱「AWS Organizations 使用者指南」中的宣告式政策。
- PowerShell
-
檢視對序列主控台的帳戶存取權
使用 Get-EC2SerialConsoleAccessStatus cmdlet。
Get-EC2SerialConsoleAccessStatus -Select *
下列為範例輸出。值 True
表示允許帳戶存取序列主控台。
ManagedBy SerialConsoleAccessEnabled
--------- --------------------------
account True
ManagedBy
欄位指示配置設定的實體。可能的值為 account
(直接設定) 或 declarative-policy
。如需詳細資訊,請參閱「AWS Organizations 使用者指南」中的宣告式政策。
授與序列主控台的帳戶存取權
- Console
-
授予 帳戶對序列主控台的存取權
前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。
-
在左側導覽窗格中,選擇 EC2 Dashboard (EC2 儀表板)。
-
在 Account attributes (帳戶屬性) 中,選擇 EC2 Serial Console (EC2 序列主控台)。
-
選擇 Manage (管理)。
-
若要允許存取帳戶中所有執行個體的 EC2 序列主控台,請選取運許核取方塊。
-
選擇更新。
- AWS CLI
-
授予 帳戶對序列主控台的存取權
使用 enable-serial-console-access 命令。
aws ec2 enable-serial-console-access
下列為範例輸出。
{
"SerialConsoleAccessEnabled": true
}
- PowerShell
-
授予 帳戶對序列主控台的存取權
使用 Enable-EC2SerialConsoleAccess cmdlet。
Enable-EC2SerialConsoleAccess
下列為範例輸出。
True
拒絕帳戶存取序列主控台
- Console
-
拒絕帳戶存取序列主控台
前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。
-
在左側導覽窗格中,選擇 EC2 Dashboard (EC2 儀表板)。
-
在 Account attributes (帳戶屬性) 中,選擇 EC2 Serial Console (EC2 序列主控台)。
-
選擇 Manage (管理)。
-
若要阻止存取帳戶中所有執行個體的 EC2 序列主控台,請清除允許核取方塊。
-
選擇更新。
- AWS CLI
-
拒絕帳戶存取序列主控台
使用 disable-serial-console-access 命令。
aws ec2 disable-serial-console-access
下列為範例輸出。
{
"SerialConsoleAccessEnabled": false
}
- PowerShell
-
拒絕帳戶存取序列主控台
使用 Disable-EC2SerialConsoleAccess cmdlet。
Disable-EC2SerialConsoleAccess
下列為範例輸出。
False
設定 EC2 序列主控台存取的 IAM 政策
依預設,使用者無法存取序列主控台。您的組織必須設定 IAM 政策,以授予使用者所需的存取權。如需詳細資訊,請參閱「IAM 使用者指南」中的建立 IAM 政策。
若要存取序列主控台,請建立包含 ec2-instance-connect:SendSerialConsoleSSHPublicKey
動作的 JSON 政策文件。此動作會授予使用者將公有金鑰推送至序列主控台服務的許可,此服務會啟動序列主控台工作階段。建議限制對特定 EC2 執行個體的存取。否則,擁有此許可的所有使用者都可以連線到所有 EC2 執行個體的序列主控台。
明確允許存取序列主控台
依預設,沒有人可以存取序列主控台。若要授與對序列主控台的存取權,您必須設定政策以明確允許存取。建議您設定限制存取特定執行個體的政策。
下列政策允許存取特定執行個體的序列主控台,並依其執行個體 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
"
}
]
}
明確拒絕存取序列主控台
下列 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
"
}
]
}
您可以使用資源標籤來控制對執行個體序列主控台的存取。
屬性型存取控制是一種授權策略,可根據可連接到使用者 AWS 和資源的標籤來定義許可。例如,下列政策允許使用者啟動執行個體的序列主控台連線,只有當該執行個體的資源標籤和主參與者的標籤具有相同的標籤鍵 SerialConsole
值時,才能啟動執行個體的序列主控台連線。
如需使用標籤控制對 AWS 資源的存取的詳細資訊,請參閱《IAM 使用者指南》中的控制對 AWS 資源的存取。
請注意,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 執行個體上設定作業系統使用者密碼
您無需密碼即可連線到序列主控台。不過,若要使用序列主控台進行 Linux 執行個體疑難排解,執行個體必須具有以密碼為基礎的 OS 使用者。
您可以為任何 OS 使用者 (包括根使用者) 設定密碼。請注意,根使用者可以修改所有檔案,而每個 OS 使用者的許可有限制。
您必須為每個要使用序列主控台的執行個體設定使用者密碼。這是每個執行個體都有的一次性要求。
下列指示僅適用於您使用 提供的 Linux AMI 啟動執行個體, AWS 因為預設情況下, AWS 提供的 AMIs 不會使用密碼型使用者設定。如果您使用已設定根使用者密碼的 AMI 啟動執行個體,則可以略過這些指示。
在 Linux 執行個體上設定作業系統使用者密碼
-
連線到您的執行個體。您可以使用任何方法連線到執行個體,EC2 序列主控台連線方法除外。
-
若要設定使用者的密碼,請使用 passwd 命令。在下列範例中,使用者是 root
。
[ec2-user ~]$
sudo passwd root
下列為範例輸出。
Changing password for user root.
New password:
-
出現 New password
提示時,輸入新密碼。
-
出現提示時,重新輸入密碼。