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

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

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

若要設定對序列主控台的存取權,您必須在帳戶層級授與序列主控台存取權,然後設定 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 序列主控台的權限。

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

如需詳細資訊,請參閱「IAM 使用者指南」中的建立 IAM 政策

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

檢視序列主控台 (主控台) 的帳戶存取狀態
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

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

  3. Account attributes (帳戶屬性) 中,選擇 EC2 Serial Console (EC2 序列主控台)。

    EC2 Serial Console access (EC2 序列主控台存取) 欄位會指出是 Allowed (允許) 還是 Prevented (禁止) 帳戶存取。

    下列螢幕擷取畫面顯示該帳戶被禁止使用 EC2 序列主控台。

    禁止存取 EC2 序列主控台。
檢視序列主控台的帳戶存取狀態 (AWS CLI)

使用 get-serial-console-access-status 命令來檢視序列主控台的帳戶存取狀態。

aws ec2 get-serial-console-access-status --region us-east-1

在下面的輸出中,true 表示允許該帳戶存取序列控制台。

ManagedBy 欄位指示配置設定的實體。在此範例中,account 表示設定是直接在帳戶內配置。值為 declarative-policy 表示設定是透過宣告式政策來配置。如需詳細資訊,請參閱「AWS Organizations 使用者指南」中的宣告式政策

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

授與序列主控台的帳戶存取權

授與序列主控台 (主控台) 的帳戶存取權
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

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

  3. Account attributes (帳戶屬性) 中,選擇 EC2 Serial Console (EC2 序列主控台)。

  4. 選擇 Manage (管理)

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

  6. 選擇 Update (更新)。

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

使用 enable-serial-console-access 命令,允許帳戶存取序列主控台。

aws ec2 enable-serial-console-access --region us-east-1

在下面的輸出中,true 表示允許該帳戶存取序列控制台。

{ "SerialConsoleAccessEnabled": true }

拒絕帳戶存取序列主控台

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

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

  3. Account attributes (帳戶屬性) 中,選擇 EC2 Serial Console (EC2 序列主控台)。

  4. 選擇 Manage (管理)

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

  6. 選擇 Update (更新)。

拒絕帳戶存取序列主控台 (AWS CLI)

使用 disable-serial-console-access 命令來阻止帳戶存取序列主控台。

aws ec2 disable-serial-console-access --region us-east-1

在下面的輸出中,false 表示該帳戶被拒絕存取序列控制台。

{ "SerialConsoleAccessEnabled": false }

設定 EC2 序列主控台存取的 IAM 政策

依預設,使用者無法存取序列主控台。您的組織必須設定 IAM 政策,以授予使用者所需的存取權。如需詳細資訊,請參閱「IAM 使用者指南」中的建立 IAM 政策

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

明確允許存取序列主控台

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

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

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

{ "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:region:account-id:instance/i-0598c7d356eba48d7" } ] }

明確拒絕存取序列主控台

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

{ "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:region:account-id:instance/i-0598c7d356eba48d7" } ] }

使用資源標籤來控制對序列主控台的存取

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

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

如需使用標籤控制對 AWS 資源的存取的詳細資訊,請參閱《IAM 使用者指南》中的控制對 AWS 資源的存取

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

{ "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:region:account-id:instance/*", "Condition": { "StringEquals": { "aws:ResourceTag/SerialConsole": "${aws:PrincipalTag/SerialConsole}" } } } ] }

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

注意

本區段只適用於 Linux 執行個體。

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

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

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

注意

下列指示僅適用於您使用 提供的 Linux AMI 啟動執行個體, AWS 因為預設情況下, AWS 提供的 AMIs 不會設定密碼型使用者。如果您使用已設定根使用者密碼的 AMI 啟動執行個體,則可以略過這些指示。

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

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

    [ec2-user ~]$ sudo passwd root

    下列為範例輸出。

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

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