Amazon Linux chrony 同期先をAmazon Time Sync Serviceに限定する
Contents
概要
- 今回は、Amazon Linux chrony サービスの同期先をAmazon Time Sync Serviceに限定する方法を紹介します。
背景
- Amazon Linux OS が動作するシステムでは、chrony サービスがデフォルトのNTPクライアントとして使用され、Amazon Time Sync Service (169.254.169.123) が優先的に同期先として設定されています。しかし、chrony サービスは、Amazon Time Sync Service (169.254.169.123)以外に、インターネット上の他のNTPサーバーへも同期を行います。インターネットへのアクセスが制限された環境では、外部のNTPサーバーとの同期を避ける (Amazon Time Sync Serviceのみに限定する) ことがセキュリティ上の要件となる場合があります。
- 本記事では、chrony サービスの設定ファイルを編集することで、同期先をAmazon Time Sync Service (169.254.169.123)のみに限定する方法を解説します。これにより、インターネットに接続できない環境でもシステム時刻を維持することができ、セキュリティの要件も満たすことができます。
Amazon Time Sync Serviceとは
- Amazon Time Sync Service は、AWSが提供する時刻同期のサービスであり、各リージョンで冗長化している衛星接続の原子時計を使って高精度な時刻参照を提供します。追加料金は必要ありません。
- このサービスには、"169.254.169.123″ のリンクローカル IP アドレスを使用してアクセスを行います。VPC内のインスタンスは、インターネットにアクセスすることなく、このアドレスを通じてAmazon Time Sync Serviceに安全に接続が可能です。
chrony の同期先をAmazon Time Sync Serviceに限定する方法
デフォルトの動作
- Amazon Linux OS が動作するシステムでは、デフォルトでchrony サービスが有効であり、かつ同期先に 169.254.169.123 が設定されています。
-
systemctl status コマンドの次に、chronyc sources コマンドを実行しています。chronyc sources コマンドは、chrony サービスが現在同期しているソースを確認できます。以下の出力が示す通り、169.254.169.123 以外のソースと時刻同期していることが分かります。
- chrony の設定ファイルである /etc/chrony.conf に以下の記述があります。/etc/chrony.d に時刻同期のソースに関する設定がある様です。
# Use NTP sources found in /etc/chrony.d/*.sources
sourcedir /etc/chrony.d
- /etc/chrony.d/ntp-pool.sources が今回編集する目的のファイルです。今回、public のNTPサーバーである pool.ntp.org は使用しません。NTPプールのドメインを対象外にします。
- chrony サービスを再起動すると設定が反映されます。
- chronyc sources コマンドを実行します。以下の出力が示す通り、169.254.169.123 のソースのみ表示されました。
- 補足ですが、Amazon Time Sync Service (169.254.169.123) は、/etc/chrony.d/link-local.sources に記述があります。
- これで、Amazon Linux chrony サービスの同期先をAmazon Time Sync Serviceに限定できました。
Amazon Linux 2023 の場合
- Amazon Linux 2023 の場合は、/usr/share/amazon-chrony-config/amazon-pool_aws.sources を編集します。"pool time.aws.com iburst" をコメントアウトします。