跳至內容

如何對由 AMI 導致的 EC2 執行個體啟動失敗問題進行疑難排解?

2 分的閱讀內容
0

我想對 Amazon Machine Image (AMI) 無法啟動 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的問題進行疑難排解。

簡短描述

當您從 AMI 啟動執行個體時,可能會收到下列其中一個錯誤訊息:

  • 「Error launching AMI: In order to use the AWS Marketplace product you need to accept the terms and subscribe.」(啟動 AMI 時發生錯誤:若要使用 AWS Marketplace 產品,您需要接受條款並訂閱。)
  • 「Error: The instance configuration for this AWS Marketplace product is not supported.」(錯誤:不支援此 AWS Marketplace 產品的執行個體組態。)

或者,您的執行個體可能會在啟動後立即停止。此問題通常發生在您加密執行個體的 Amazon Elastic Block Store (Amazon EBS) 磁碟區時。

解決方法

對「you need to accept the terms and subscribe」(您需要接受條款並訂閱) 錯誤進行疑難排解

您可以從使用 AWS Marketplace AMI 建立的執行個體建立或啟動新的 AMI 和快照。與您共用這些執行個體的 AWS 帳戶必須訂閱 AWS Marketplace AMI。如果共用帳戶未訂閱原始 AWS Marketplace AMI,則您無法從新 AMI 啟動執行個體。您也無法附加從該 AMI 的快照建立的 EBS 磁碟區。

若要解決此問題,請開啟錯誤訊息中的連結,以將帳戶訂閱到 AMI。然後,同意 AMI 的條款。或者,使用 AWS Marketplace 主控台訂閱 AMI

對「instance configuration for this AWS Marketplace product is not supported」(不支援此 AWS Marketplace 產品的執行個體組態) 錯誤進行疑難排解

您可以依供應商限制 AWS Marketplace AMI,以僅允許特定的執行個體類型。如果您嘗試啟動不支援的執行個體類型,則會收到「instance configuration for this AWS Marketplace product is not supported」(不支援此 AWS Marketplace 產品的執行個體組態) 錯誤訊息。

查看 AMI 的 AWS Marketplace 頁面,以取得有關支援執行個體類型的資訊。請確定您使用 AMI 支援的執行個體類型。

對加密 EBS 磁碟區的問題進行疑難排解

AWS Identity and Access Management (IAM) 使用者必須有權存取 AWS Key Management Service (AWS KMS) 加密金鑰才能啟動執行個體。否則,執行個體將啟動失敗。

若要解決此問題,請確認您已與目的地帳戶正確共用 AMI。若要共用 AMI,來源帳戶的 IAM 使用者或角色必須具有該 AMI 的 ModifyImageAttribute 權限。IAM 政策範例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:ModifyImageAttribute"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/12345678"
            ]                                                    
        }
    ]
}

**注意:**將 arn:aws:ec2:us-east-1::image/12345678 替換為 Amazon Resource Name (ARN)。

在來源帳戶中,完成以下步驟,以與目的地帳戶共用 AWS KMS key:

  1. 開啟 AWS KMS console (AWS KMS 主控台)。
  2. 在導覽窗格中,選擇 Customer managed keys (客戶自管金鑰),然後選擇您的 AWS KMS key。
  3. Other AWS accounts (其他 AWS 帳戶) 下,選擇 Add other AWS accounts (新增其他 AWS 帳戶),然後選擇 Add another AWS account (新增另一個 AWS 帳戶)。
  4. arn:aws:iam:: 中,輸入目標帳戶的 ID。例如,1234567890
  5. 選擇 Save changes (儲存變更)。

在目標帳戶中,確認 IAM 使用者或角色具有所需的加密權限。政策範例:

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kms:DescribeKey",
        "kms:ReEncrypt*",
        "kms:Decrypt",
        "kms:GenerateDataKeyWithoutPlainText"
      ],
      "Resource": [
        "arn:aws:kms:us-east-1:Source-Account:key/key-id"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "kms:CreateGrant",
      "Resource": [
        "arn:aws:kms:us-east-1:Source-Account:key/key-id"
      ],
      "Condition": {
        "Bool": {
          "kms:GrantIsForAWSResource": true
        }
      }
    }
  ]
}

**注意:**將 us-east-1 替換為您的 AWS 區域,將 Source-Account 替換為來源帳戶 ID,並將 key-id 替換為 AWS KMS key ID。

若要測試您的組態,請使用加密的 AMI 啟動您的 EC2 執行個體。當您使用共用加密 AMI 時,您可以使用自己的 AWS KMS key 或來源 AWS KMS 進行磁碟區加密。最佳做法是使用目的地帳戶中的 AWS KMS 重新加密磁碟區,以防止來源金鑰遭入侵或權限撤銷問題。

如需詳細資訊,請參閱如何跨帳戶共用加密的 AMI 以啟動加密的 EC2 執行個體

AWS 官方已更新 1 年前