Amazon Linux 2023 移行にあたっての注意点
2023.03.09
Amazon Linux 2のサポート終了を受けて、後継であるAmazon Linux 2023への移行を検討していらっしゃる方も多いかと思います。
そこで本記事ではAmazon Linux 2023へ移行する場合の注意点について解説いたします。
はじめに
Amazon Linux 2が2025年6月30日に サポート終了することを受けて、OSの移行を検討しているといったお問い合わせを頂くことが増えてきました。OS移行先の候補としてAmazon Linux 2023を検討していらっしゃる方も多いかと思います。
そこで本記事ではAmazon Linux 2023の解説及び、OSを移行する場合の注意点についてご紹介いたします。
Amazon Linux 2023とは
Amazon Linux 2023はAWSに最適化された次世代のLinux OSであり、Amazon Linux 2の後継になります。Amazon Linux 2023ではアップストリームの「Fedora34~36」が含まれており、AWSで独自に開発、デバッグを行い、AWS向けにカスタマイズされた状態で提供されます。また、最新のAWS機能と統合しており、AWS固有のツール(AWS Systems ManagerやAWSCLI)が使用可能です。
Fedoraを採用しているため、リリーススケジュールはメジャーバージョンが2年ごと、マイナーバージョンは4カ月ごとと短いスパンで行われ、サポート期間はバージョン毎に開発フェーズが2年間、メンテナンスフェーズが3年間の合計5年間となっております。
Amazon Linux 2023の利用にあたって追加料金は発生せず、各サービスを利用する場合の料金体系はAWS EC2 を利用した場合と同じ課金が発生します。
参考:Amazon Linux 2023 に関するよくある質問(AWS公式)
Amazon Linux 2023移行時の注意点
Amazon Linux 2とは異なる仕様が多数存在しております。以下はその一例になります。
OpenSSL
Amazon Linux 2023ではオープンセキュアソケットレイヤーバージョン 3 (OpenSSL 3) 暗号化ツールキットが搭載されています。OpenSSH 8.6p1を使用していますので、RSA/SHA1が廃止されており、サーバにSSH接続する場合はrsa-sha2-256及び、rsa-sha2-512もしくはed25519 キーを使用したssh-ed25519を利用する必要があります。
SELinux(Security-Enhanced Linux)
Amazon Linux 2では無効化されておりましたが、Amazon Linux 2023ではデフォルトで有効化かつpermissiveモードで設定されています。アクセスの制御は無効ですが、違反しているアクセスはログに書き出されます。
IMDSv2
こちらもAmazon Linux 2023ではデフォルトで有効化されています。
IMDSv1ではcurlでエンドポイントのhttp://169.254.169.254/latest/meta-data/へアクセスすることでメタデータを取得可能でしたが、IMDSv2ではセッショントークンを取得してエンドポイントへアクセスする必要があります。
IMDSv2とは
Instance Metadata Service Version 2の略で、インスタンスに関する情報(インスタンスIDや、自身のIPアドレス、セキュリティグループ等)のことを指します。
実行中のEC2からcurlやwgetコマンドなどを使用して、URLへアクセスすることでインスタンス内のデータを取得できます。
参考:
IMDSv2 の使用(AWS公式)
Comparing Amazon Linux 2 and AL2023(AWS公式)
実際に起動して検証してみた
実際にAmazon Linux 2023を起動して、Amazon Linux2との違いを踏まえて検証を行ってみます。
OpenSSL
インスタンスを立ち上げる際にキーペアのタイプを「ED25519」で作成する。
RSA/SHA1でログインしたい場合はPowerShellからSSH接続を行い、「sshd_config」ファイルの先頭行に「PubkeyAcceptedAlgorithms=+ssh-rsa」を追加することで接続可能になります。
手順
PowerShellからSSHでEC2へ接続する。
PS C:\Users> ssh -i 〓秘密鍵のファイルパス〓 ec2-user@〓EC2インスタンスのパブリックIPアドレス〓
「sshd_config」ファイルのバックアップを取得する。
$ sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_$(date +%Y%m%d)
sshd_configファイルの先頭行に「PubkeyAcceptedAlgorithms=+ssh-rsa」を記入する。
$ sudo sed -i '1s/^/PubkeyAcceptedAlgorithms=+ssh-rsa\n/' /etc/ssh/sshd_config
sshdを再起動して設定を反映させる。
$ sudo systemctl restart sshd.service
Teraterm等を使用すると、RSA/SHA1でサーバへSSH接続が可能になっています。
SELinux
万が一システムが攻撃者にアクセスされた場合に、ユーザーの操作を最小限にすることで防御する仕組みですので、実際の運用では有効化しておくべきですが、今回は検証になりますので無効化します。
手順
SELinuxがPermissiveであることを確認する。
# getenforce
Permissive
grubbyパッケージがインストールされていることを確認する。
# rpm -q grubby
grubby-version
selinux=0カーネルコマンドラインに追加するようにブートローダーを設定する。
# sudo grubby --update-kernel ALL --args selinux=0
システムの再起動。
# sudo reboot
SELinuxが無効化されたことを確認する。
$ getenforce
Disabled
まとめ
今回はAmazon Linux 2023へ移行する場合の注意点についてご紹介いたしました。Amazon Linux 2023の特徴や、Amazon Linux 2からの変更点を知っていただき、実際にAmazon Linux 2023へ移行する場合の参考となれば幸いです。
【Google Cloud Next’24 Las Vegas セッションレポート】Gemini Code Assistを活用したソフトウェア開発支援とは?
【Google Cloud Next’24 Las Vegas セッションレポート】サーバレスアーキテクチャに最適!Cloud Runの新機能紹介
【Google Cloud Next’24 Las Vegas セッションレポート】Google Cloud環境でLangChainを使用して生成AIアプリケーションをビルド・デプロイしよう
【Google Cloud Next ’24 Las Vegas 現地レポート】 Day1 基調講演 Part2