スキップしてコンテンツを表示

Amazon Linux を実行する EC2 インスタンスで、インターネットにアクセスせずに yum を更新したり、パッケージをインストールしたりする方法を教えてください。

所要時間2分
0

インターネットに接続せず、yum を更新したり、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにパッケージをインストールしたりする方法を知りたいです。そのインスタンスでは、Amazon Linux 2 (AL2) または Amazon Linux 2023 (AL2023) を実行しています。

簡単な説明

Amazon Linux リポジトリは、Amazon Simple Storage Service (Amazon S3) バケットでホストされます。インターネットに接続せずにインスタンス上でパッケージを更新およびインストールするには、Amazon S3 に Amazon Virtual Private Cloud (Amazon VPC) ゲートウェイエンドポイントを作成します。リポジトリバケットへのアクセスを許可するポリシーを VPC エンドポイントに含めます。次に、その VPC エンドポイントをインスタンスサブネットのルーティングテーブルに関連付けます。

注: Extra Packages for Enterprise Linux (EPEL) などのサードパーティリポジトリを有効化するには、インスタンスが次のいずれかのデバイス経由でインターネットにアクセスできる必要があります。

解決策

設定をテストする

インスタンスにアタッチされたセキュリティグループで、アウトバウンド HTTP および HTTPS トラフィックが許可されていることを確認します。Amazon S3 用の VPC エンドポイントにアタッチするセキュリティグループは、インスタンスのサブネットからのインバウンド HTTP トラフィックを許可する必要があります。

インスタンスのサブネットに関連付けられたネットワークアクセスコントロールリスト (ネットワーク ACL) も確認してください。ネットワーク ACL は、ポート 80 (HTTP) および 443 (HTTPS) で、Amazon S3 サービスの AWS リージョンへのアウトバウンドトラフィックを許可する必要があります。ネットワーク ACL は、Amazon S3 サービスのリージョンからのエフェメラル TCP ポート (1024-65535) でのインバウンドトラフィックも許可する必要があります。Amazon S3 サービスのリージョンは、Amazon S3 サービスのパブリック IP アドレス CIDR です。ネットワーク ACL ではプレフィックスリストを使用できません。代わりに、0.0.0.0/0 を使用して Amazon S3 CIDR をネットワーク ACL に追加してください。ネットワーク ACL では、実際の Amazon S3 CIDR も使用できます。ただし、Amazon S3 CIDR は変更される可能性があります。

VPC エンドポイントを作成する

次の手順を実行します。

  1. Amazon EC2 コンソールを開きます。

  2. 使用するインスタンスを選択します。

  3. [ネットワーク機能] タブを選択し、[VPC ID][サブネット ID] の値を書き留めます。

  4. Amazon VPC コンソールを開きます。

  5. [サブネット] を選択し、該当するサブネット ID を選択します。

  6. [ルートテーブル] タブを選択し、[ルートテーブル ID] の値を書き留めます。

  7. [エンドポイント] を選択し、[エンドポイントの作成] を選択します。

  8. ゲートウェイエンドポイントを作成するには、次の設定を行います。
    [リージョン] でエンドポイントを作成するリージョンのリージョンコードを選択します。たとえば、us-east-1 にエンドポイントを作成する場合は、com.amazonaws.us-east-1.s3 を選択します。
    [VPC] で該当するインスタンスの VPC ID を選択します。
    [ルートテーブルの設定] で該当するインスタンスのルートテーブル ID を選択します。
    [ポリシー][フルアクセス] を選択し、Amazon S3 へのフルアクセスを許可します。[カスタム] を選択する場合は、Amazon Linux リポジトリバケットに対する s3:GetObject API コールを許可する必要があります。
    注: 次のポリシー例では、us-east-1 を実際のエンドポイントのリージョンに置き換えます。
    AL2023

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

    AL2:

    {  "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/*"
          ]
        }
      ]
    }

    注: 上記の AL2 ポリシーでは、バケット arn:aws:s3:::amazonlinux.us-east-1.amazonaws.com/*arn:aws:s3:::amazonlinux-2-repos-us-east-1/* がリポジトリをホストします。

  9. [エンドポイントを作成] を選択します。

VPC エンドポイントの作成後は、Amazon Linux インスタンスにパッケージをインストールして更新できます。

関連情報

Amazon Linux 1、Amazon Linux 2、Amazon Linux 2023 を実行している EC2 インスタンスで、yum の実行時にエラーが発生する理由を知りたいです

Amazon S3 用のゲートウェイエンドポイント

AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ