如何在没有接入互联网的情况下在运行 Amazon Linux 1、Amazon Linux 2 或 Amazon Linux 2023 的 EC2 实例上更新 yum 或安装软件包?

2 分钟阅读
0

我想更新 yum,或者在我的 Amazon Elastic Compute Cloud(Amazon EC2)实例上安装软件包。该实例在没有接入互联网的情况下运行 Amazon Linux 1、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 实例的子网关联的网络访问控制列表(网络 ACL)必须允许端口 80(HTTP)和 443(HTTPS)上的出口流量流向 AWS 区域 Amazon S3 服务。它们还必须允许流量从区域 S3 服务进入临时 TCP 端口。临时端口为 1024-65535。区域 Amazon S3 服务是 S3 服务的公有 IP 地址 CIDR(无类别域间路由)。网络 ACL 不支持前缀列表。要将 S3 CIDR 添加到您的网络 ACL,请使用 0.0.0.0/0。您还可以在网络 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 存储库桶上进行 s3:GetObject API 调用。以下示例使用的是 **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 官方已更新 2 年前