設定對 EC2 序列主控台的存取 - Amazon Elastic Compute Cloud

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

設定對 EC2 序列主控台的存取

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

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

開始之前

確認符合先決條件

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
檢視序列主控台的帳戶存取
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Dashboard (儀表板)

  3. 帳戶屬性卡片的設定下,選擇 EC2 序列主控台

  4. 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
授與帳戶存取序列主控台
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Dashboard (儀表板)

  3. 帳戶屬性卡片的設定下,選擇 EC2 序列主控台

  4. 選擇管理

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

  6. 選擇更新

AWS CLI
授與帳戶存取序列主控台

使用 enable-serial-console-access 命令。

aws ec2 enable-serial-console-access

以下為範例輸出。

{ "SerialConsoleAccessEnabled": true }
PowerShell
授與帳戶存取序列主控台

使用 Enable-EC2SerialConsoleAccess cmdlet。

Enable-EC2SerialConsoleAccess

以下為範例輸出。

True

拒絕帳戶存取序列主控台

Console
拒絕帳戶存取序列主控台
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Dashboard (儀表板)

  3. 帳戶屬性卡片的設定下,選擇 EC2 序列主控台

  4. 選擇管理

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

  6. 選擇更新

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 進行識別。

請注意,DescribeInstancesDescribeInstanceTypes、和 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 資源的存取

請注意,DescribeInstancesDescribeInstanceTypes、和 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 使用者的許可有限制。

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

注意

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

在 Linux 執行個體上設定作業系統使用者密碼
  1. 連線到您的執行個體。您可以使用任何方法連線到執行個體,EC2 序列主控台連線方法除外。

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

    [ec2-user ~]$ sudo passwd root

    下列為範例輸出。

    Changing password for user root. New password:
  3. 出現 New password 提示時,輸入新密碼。

  4. 出現提示時,重新輸入密碼。