重設EC2執行個體上的密碼和SSH金鑰 - AWS Systems Manager

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

重設EC2執行個體上的密碼和SSH金鑰

您可以使用 AWSSupport-ResetAccess runbook 在 Amazon 彈性運算雲端 (AmazonEC2) 執行個體上自動重新啟用本機管理員密碼產生,Windows Server並在 Linux 執行個EC2體上產生新SSH金鑰。AWSSupport-ResetAccessrunbook 旨在執行 AWS Systems Manager 動作、動作和功能的組合,這些 AWS Lambda 功能會自 AWS CloudFormation 動執行重設本機管理員密碼通常所需的步驟。

您可以使用自動化,功能 AWS Systems Manager,與 AWSSupport-ResetAccess runbook 來解決下列問題:

Windows

您遺失了 EC2 key pair:若要解決此問題,您可以使用 AWSSupport-ResetAccess runbook 從目前的執行個體建立啟用密碼的執行個體、AMI從啟動新執行個體AMI,然後選取您擁有的 key pair。

您遺失了本機系統管理員密碼:若要解決此問題,您可以使用 AWSSupport-ResetAccess runbook 產生新的密碼,您可以使用目前的 EC2 key pair 來解密。

Linux

您遺失 EC2 key pair,或是使用遺失的金鑰設定對執行個體的SSH存取權:若要解決此問題,您可以使用 AWSSupport-ResetAccess runbook 為目前的執行個體建立新SSH金鑰,讓您再次連線至執行個體。

注意

如果您的EC2執行個體Windows Server已設定為「Systems Manager 員」,您也可以使用EC2Rescue和來重設本機管理員密碼 AWS Systems Manager Run Command。如需詳細資訊,請參閱 Amazon 使EC2Rescue用EC2者指南Run Command中的搭配 Systems Manager 使用 Windows 伺服器

相關資訊

使用 Amazon 使用EC2者指南TTY中的 Pu 從 Windows Connect 到您的 Linux 執行個體

運作方式

使用 Automation 和 AWSSupport-ResetAccess Runbook 對執行個體進行故障診斷的運作方式如下:

  • 您要指定執行個體 ID 並執行 Runbook。

  • 系統會建立暫時性的VPC,然後執行一系列 Lambda 函數來設定VPC.

  • 系統會在與原始執行個體位於相同可用區域VPC中的暫時性識別子網路。

  • 系統會啟動SSM已啟用的暫時協助程式執行個體。

  • 系統會停止您的原始執行個體,並建立備份。接著系統會將原始根磁碟區連接至協助程式執行個體。

  • 系統會使用Run Command在協助程式執行個體EC2Rescue上執行。在 Windows 上,透過使用EC2Config或EC2Launch連接的原始根磁碟區,為本機管理員EC2Rescue啟用密碼產生。在 Linux 上,EC2Rescue生成並注入一個新密SSH鑰,並將私鑰保存在中Parameter Store加密。完成後,將根磁碟區EC2Rescue重新附加至原始例證。

  • 密碼產生啟用後,系統會在您的執行個體建立新的 Amazon Machine Image (AMI)。您可以使用它AMI來創建一個新EC2實例,並在需要時關聯新的 key pair。

  • 系統會重新啟動您的原始執行個體,並終止暫時執行個體。系統也會終止在自動化開始時建立的暫時性VPC和 Lambda 函數。

  • Windows:您的執行個體會產生一個新密碼,您可以使用指派給執行個體的目前 key pair 從 Amazon EC2 主控台解碼。

    Linux:您可以SSH使用存儲在 Systems Manager 參數存儲中的SSH密鑰作為 /ec2rl/openssh/instance ID/鍵

開始之前

執行以下自動化之前,請先執行以下項目:

  • 複製您想要重設管理員密碼的執行個體之執行個體 ID。您會在程序中指定此 ID。

  • 或者,收集與無法連線之執行個體位於相同可用區域中的子網路 ID。EC2Rescue執行個體將在此子網路中建立。如果您未指定子網路,則自動化會VPC在您的 AWS 帳戶. 確認您至少 AWS 帳戶 有一個VPC可用的資料。默認情況下,您可以VPCs在一個區域中創建五個。如果您已經在區域VPCs中建立了五個,則自動化操作會失敗,而不會對執行個體進行變更。如需 Amazon VPC 配額的詳細資訊,請參閱 Amazon VPC 使用者指南中的VPC和子網路

  • 或者,您可以為自動化建立和指定 AWS Identity and Access Management (IAM) 角色。如果您不指定此角色,則自動化會在執行自動化的使用者內容中執行。

授EC2Rescue予 AWSSupport-對執行個體執行動作的權限

EC2Rescue需要權限才能在自動化期間對執行個體執行一系列動作。這些動作會叫用 AWS Lambda IAM、和 Amazon EC2 服務,以安全且安全地嘗試修復執行個體的問題。如果您在您的 AWS 帳戶 和/或中具有管理員層級權限VPC,則可以執行自動化操作而無需設定權限,如本節所述。如果您沒有管理員層級的許可,則您或管理員必須使用以下其中一個選項來設定許可。

使用 IAM 政策授予許可

您可以將下列IAM原則作為內嵌原則附加至使用者、群組或角色;或者,您可以建立新的IAM受管理原則,並將其附加至您的使用者、群組或角色。如需有關新增內嵌政策至使用者、群組或角色的詳細資訊,請參閱使用內嵌政策。如需建立新受管政策的詳細資訊,請參閱使用受管政策

注意

如果您建立新的IAM受管原則,也必須將 A mazonSSMAutomation 角色受管理的原則附加至該原則,以便您的執行個體能夠與 Systems Manager 通訊API。

IAM政策 AWSSupport-ResetAccess

Replace (取代) account ID 使用您自己的信息。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction", "lambda:DeleteFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:*:account ID:function:AWSSupport-EC2Rescue-*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::awssupport-ssm.*/*.template", "arn:aws:s3:::awssupport-ssm.*/*.zip" ], "Effect": "Allow" }, { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile" ], "Resource": [ "arn:aws:iam::account ID:role/AWSSupport-EC2Rescue-*", "arn:aws:iam::account ID:instance-profile/AWSSupport-EC2Rescue-*" ], "Effect": "Allow" }, { "Action": [ "lambda:CreateFunction", "ec2:CreateVpc", "ec2:ModifyVpcAttribute", "ec2:DeleteVpc", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:DetachInternetGateway", "ec2:DeleteInternetGateway", "ec2:CreateSubnet", "ec2:DeleteSubnet", "ec2:CreateRoute", "ec2:DeleteRoute", "ec2:CreateRouteTable", "ec2:AssociateRouteTable", "ec2:DisassociateRouteTable", "ec2:DeleteRouteTable", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:Describe*" ], "Resource": "*", "Effect": "Allow" } ] }

使用 AWS CloudFormation 範本授與權限

AWS CloudFormation 使用預先設定的範本,將建立IAM角色和原則的程序自動化。使用下列程序,透過使用建立EC2Rescue自動化的必要IAM角色和原則 AWS CloudFormation。

若要建立必要的IAM角色和原則 EC2Rescue
  1. 下載 AWSSupport-EC2RescueRole.zip 並將 AWSSupport-EC2RescueRole.json 檔案解壓縮至本機電腦上的目錄。

  2. 如果您 AWS 帳戶 的分割區位於特殊分割區中,請編輯範本,將ARN值變更為分割區的值。

    例如,對於中國區域,將 arn:aws 的所有案例變更為 arn:aws-cn

  3. 登入 AWS Management Console 並在 https://console.aws.amazon.com/cloudFormation 中開啟 AWS CloudFormation 主控台。

  4. 選擇 Create stack (建立堆疊)With new resources (standard) (使用新資源 (標準))

  5. Create stack (建立堆疊) 頁面上,對於 Prerequisite - Prepare template (先決條件 - 準備範本),選擇 Template is ready (範本已準備就緒)

  6. 對於 Specify template (指定範本),選擇 Upload a template file (上傳範本檔案)

  7. 選擇 Choose file (選擇檔案),然後瀏覽並從您解壓縮檔案的目錄中選取 AWSSupport-EC2RescueRole.json 檔案。

  8. 選擇 Next (下一步)

  9. Specify stack details (指定堆疊詳細資訊) 頁面上,對於 Stack name (堆疊名稱) 欄位,輸入識別此堆疊的名稱,然後選擇 Next (下一步)

  10. (選用) 在 Tags (標籤) 區域中將一個或多個標籤索引鍵名稱/值對套用到堆疊。

    標籤是您指派給資源的選用性中繼資料。標籤可讓您以不同的方式 (例如用途、擁有者或環境) 將資源分類。例如,您可能想要標記堆疊來識別其執行的任務類型、相關的目標類型或其他資源,以及其執行所在的環境。

  11. 選擇 Next (下一步)

  12. 在 [複查] 頁面上,檢閱堆疊詳細資料,然後向下捲動並選擇 [我確認 AWS CloudFormation 可能會建立IAM資源] 選項。

  13. AWS CloudFormation 顯示 CREATE_IN_ PROGRESS 狀態持續幾分鐘。堆疊建立COMPLETE之後,狀態會變更為 CREATE_。您也可以選擇重新整理圖示來檢查建立程序的狀態。

  14. 在堆疊清單中,選擇您剛建立堆疊旁的選項,然後選擇 Outputs (輸出) 標籤。

  15. 複製 Value (值)。是ARN的 AssumeRole. 當您執行「自動化」ARN 時,您將指定此選項。

執行自動化

下列程序說明如何使用 AWS Systems Manager 主控台來執行 AWSSupport-ResetAccess Runbook。

重要

以下自動化會停止執行個體。停止執行個體可能會導致已連接執行個體存放磁碟區上的資料遺失 (若有)。停止執行個體也可能會導致公有 IP 變更 (若無關聯的彈性 IP)。為了避免這些組態變更,請使用 Run Command 重設存取。如需詳細資訊,請參閱 Amazon 使EC2Rescue用EC2者指南Run Command中的搭配 Systems Manager 使用 Windows 伺服器

若要執行 AWSSupport-ResetAccess 自動化
  1. 在開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Automation (自動化)。

  3. 選擇 Execute automation (執行自動化)

  4. Automation document (自動化文件) 部分,從清單選擇 Owned by Amazon (由 Amazon 所有)

  5. 在 Runbook 清單中,選擇卡片中的按鈕 AWSSupport-ResetAccess,然後選擇 [下一步]。

  6. Execute automation document (執行自動化文件) 頁面上,選擇 Simple execution (簡易執行)

  7. Document details (文件詳細資訊) 部分,確認 Document version (文件版本) 設為最高的預設版本。例如,$ DEFAULT3 (預設值)

  8. Input parameters (輸入參數) 區段中,指定以下參數:

    1. 針對 InstanceID,指定無法連線之執行個體的 ID。

    2. 對於 SubnetId,指定與您指定執行個體位於相同可用區域VPC中的現有子網路。根據預設,Systems Manager 會建立新的子網路VPC,但您可以視需要在現有VPC子網路中指定子網路。

      注意

      如果您沒見到指定子網路 ID 的選項,請確認您使用的是 Runbook 最新的 Default (預設) 版本。

    3. 對於 EC2RescueInstanceType,指定執行個體的執行個EC2Rescue體類型。預設執行個體類型為 t2.medium

    4. 對於 AssumeRole,如果您使用本主題前面描述的 AWS CloudFormation 程序為此自動化建立角色,請指 AssumeRole ARN定您在主 AWS CloudFormation 控台中註明的角色。

  9. (選用) 在 Tags (標籤) 區域中,套用一個或多個標籤索引鍵名稱/值對以協助識別自動化,例如 Key=Purpose,Value=ResetAccess

  10. 選擇 Execute (執行)

  11. 若要監控自動化進度,請選擇執行中的自動化,接著選擇 Steps (步驟) 標籤。自動化結束時,選擇 Descriptions (描述) 標籤,接著選擇 View output (檢視輸出) 以檢視結果。若要檢視個別步驟的輸出,請選擇 Steps (步驟) 標籤,然後選擇步驟旁的 View Outputs (檢視輸出)

作為自動化的一部分,Runbook 會建立備份 AMI 和已啟用密碼的 AMI。其他所有由自動化建立的資源都會自動刪除,但此 AMIs 會保留於您的帳戶。這些 AMIs 使用以下慣例命名:

  • BackupAMI:AWSSupport-EC2Rescue:InstanceID

  • 啟用密碼AMI: AWSSupport-EC2Rescue: 密碼啟用來源 AMI Instance ID

您可以搜尋自動化執行 ID 以找到這些 AMIs。

對於 Linux,您執行個體的新SSH私密金鑰會在中儲存、加密Parameter Store。參數名稱是 /ec2rl/開放式/instance ID/鍵