如何在沒有網際網路接入的情況下,在執行於 Amazon Linux 1、Amazon Linux 2 或 Amazon Linux 2023 的 EC2 執行個體上更新 yum 或安裝套件?

2 分的閱讀內容
0

我想更新 yum,或在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上安裝套件。該執行個體在無網際網路的情況下執行 Amazon Linux 2、Amazon Linux 2 或 Amazon Linux 2023。

簡短描述

Amazon Linux 儲存庫在 Amazon Simple Storage Service (Amazon S3) 儲存貯體上託管。要在無網際網路連線的情況下,在執行個體上更新和安裝套件,則請建立 S3 Amazon Virtual Private Cloud (Amazon VPC) 閘道端點。在 Amazon S3 VPC 閘道端點中,包含允許存取儲存庫儲存貯體的政策。然後,將 VPC 端點與執行個體子網路的路由表建立關聯。

**注意:**要開啟第三方儲存庫 (例如 EPEL),您的 EC2 執行個體必須透過下列其中一個裝置,存取網際網路:

解決方法

先決條件:

  • 連接到 EC2 執行個體的安全群組,必須允許傳輸 HTTP 流量。
  • 連接到 S3 VPC 端點的安全群組,必須允許來自 EC2 執行個體子網路的傳入 HTTP 流量。
  • 與 EC2 執行個體子網路關聯的網路存取控制清單 (network ACL),必須允許在連接埠 80 (HTTP) 和 443 (HTTPS) 上輸出至 AWS 區域 Amazon S3 服務。它們還必須允許來自區域 S3 服務的臨時 TCP 連接埠輸入。臨時連接埠為 1024-65535。區域 Amazon S3 服務是 S3 服務的公有 IP 地址 CIDR (無類別域間路由)。Network ACL 不支援字首清單。要將 S3 CIDR 新增至您的 network ACL,請使用 0.0.0.0/0。您也可以在 network ACL 中使用實際的 S3 CIDR。不過,S3 CIDR 可以隨時變更。

1.    開啟 Amazon EC2 主控台,然後選取您的執行個體。

2.    在聯網標籤上,記下 VPC ID子網路 ID

3.    開啟 Amazon VPC 主控台,選擇子網路,然後選取您的子網路 ID

4.    選擇路由表標籤,然後記下路由表 ID

5.    選擇端點,然後選擇建立端點

6.    建立閘道端點:
如果您要在 us-east-1 中建立端點,則請選取 com.amazonaws.us-east-1.s3。如果要在其他 AWS 區域中建立端點,則請選取相應的區域代碼。如需區域代碼的完整清單,請參閱可用區域
針對 VPC,選取執行個體的 VPC ID
針對設定路由表,選取執行個體的路由表 ID

7.    針對政策,選擇完整存取自訂

如果您選擇完整存取,則端點政策允許完整存取 Amazon S3。

如果您選擇自訂,則必須在 Amazon Linux 儲存庫儲存貯體上,允許 API 呼叫 s3:GetObject。以下範例使用 **us-east-1。**如果您的端點在不同的區域,則請將 us-east-1 取代為您的區域。

Amazon Linux 2023

{
  "Statement": [
    {
      "Principal": "*",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::al2023-repos-us-east-1-de612dc2/*"
      ]
    }
  ]
}

Amazon Linux 2

S3 儲存貯體 arn:aws:s3:::amazonlinux.us-east-1.amazonaws.comarn:aws:s3:::amazonlinux-2-repos-us-east-1/* 託管儲存庫。以下是允許 s3:GetObject API 呼叫的範例政策。

{
  "Statement": [
    {
      "Principal": "*",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::amazonlinux.us-east-1.amazonaws.com/*",
        "arn:aws:s3:::amazonlinux-2-repos-us-east-1/*"
      ]
    }
  ]
}

Amazon Linux 1

{
  "Statement": [
    {
      "Principal": "*",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::packages.us-east-1.amazonaws.com/*",
        "arn:aws:s3:::repo.us-east-1.amazonaws.com/*"
      ]
    }
  ]
}

8.    選擇建立端點

建立 S3 VPC 端點後,您可以在 Amazon Linux 執行個體中安裝和更新套件。

相關資訊

為什麼我在執行 Amazon Linux 1 或 Amazon Linux 2 的 EC2 執行個體上使用 yum 會收到錯誤訊息?

Amazon S3 的閘道端點

AWS 官方
AWS 官方已更新 1 年前