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

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

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

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

在開始之前,請務必檢查先決條件

EC2序列主控台的存取層級

依預設,帳戶層級無法存取序列主控台。您需要在帳戶層級明確授予對序列主控台的存取權。如需詳細資訊,請參閱管理EC2序列主控台的帳戶存取權

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

組織層級

您可以使用服務控制策略 (SCP) 來允許存取組織內成員帳戶的序列主控台。如需有關的詳細資訊SCPs,請參閱AWS Organizations 使用指南中的服務控制策略

執行個體層級

您可以使用IAM PrincipalTag 和 ResourceTag 建構,並透過 ID 指定執行個體,來設定序列主控台存取原則。如需詳細資訊,請參閱設IAM定EC2序列主控台存取的原則

使用者層級

您可以將IAM政策設定為允許或拒絕指定使用者將SSH公開金鑰推送至特定執行個體之序列主控台服務的權限,以便在使用者層級設定存取權。如需詳細資訊,請參閱設IAM定EC2序列主控台存取的原則

作業系統層級 (僅限 Linux 執行個體)

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

管理EC2序列主控台的帳戶存取權

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

授予使用者管理帳戶存取的許可

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

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

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

如需詳細資訊,請參閱《使用指南》中的IAM〈建立IAM策略

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

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

  2. 在左側導覽窗格中,選擇 [EC2儀表板]。

  3. 帳號屬性中,選擇EC2序列主控台

    EC2序列主控台存取」欄位會指出「允許」還是「禁」帳戶存取。

    下列螢幕擷取畫面顯示帳戶無法使用EC2序列主控台。

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

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

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

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

{ "SerialConsoleAccessEnabled": true }

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

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

  2. 在左側導覽窗格中,選擇 [EC2儀表板]。

  3. 帳號屬性中,選擇EC2序列主控台

  4. 選擇管理

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

  6. 選擇 Update (更新)。

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

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

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

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

{ "SerialConsoleAccessEnabled": true }

拒絕帳戶存取序列主控台

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

  2. 在左側導覽窗格中,選擇 [EC2儀表板]。

  3. 帳號屬性中,選擇EC2序列主控台

  4. 選擇管理

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

  6. 選擇 Update (更新)。

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

使用此指disable-serial-console-access令可防止帳戶存取序列主控台。

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

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

{ "SerialConsoleAccessEnabled": false }

設IAM定EC2序列主控台存取的原則

依預設,使用者無法存取序列主控台。您的組織必須設定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 因為依預設,AMIs提供者並未設定以密碼為基礎的使用者。 AWS 如果您使用已設定 root 使用者密碼AMI的執行個體啟動執行個體,則可以略過這些指示。

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

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

    [ec2-user ~]$ sudo passwd root

    下列為範例輸出。

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

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