Kinesisエージェントのアップデートについて

AWS
AWSKinesis

Kinesisエージェントのアップデートについて、および、脆弱性にも関連するLog4jの利用について記載します。Kinesisエージェント自体に関する記事はKinesis AgentとFirehoseを利用してEC2からS3にログを転送するをご参照ください。

スポンサーリンク

アップデート

次のコマンドにてアップデートを行うことができます。

Amazon Linux系

Amazon Linux系については、通常通りパッケージ名を指定してアップデートが可能です。

# yum update aws-kinesis-agent

その他RHEL系

その他、RHEL系のOSについては、更新先のKinesisエージェントのバージョンが1系か2系かで異なります。特別な事情等がない限り、2系にアップデートすることをお勧め致します。1系から2系にアップデートすることも可能です。

バージョン1系

# yum update https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm

バージョン2系

# yum update https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn2.noarch.rpm

バージョン確認

次のようなコマンドにてバージョン等を含むパッケージの情報を取得することができます。

# rpm -qi aws-kinesis-agent
Name        : aws-kinesis-agent
Version     : 2.0.4
Release     : 1.amzn2
Architecture: noarch
Install Date: Fri 31 Dec 2021 05:21:34 AM UTC
Group       : Applications/Communications
Size        : 25523949
License     : Amazon Software License and Apache 2.0 and MIT
Signature   : (none)
Source RPM  : aws-kinesis-agent-2.0.4-1.amzn2.src.rpm
Build Date  : Wed 15 Dec 2021 03:18:21 AM UTC
Build Host  : build.amazon.com
Relocations : (not relocatable)
Packager    : Amazon Linux
Vendor      : Amazon Linux
URL         : http://aws.amazon.com/
Summary     : Amazon Kinesis Streaming Data Agent
Description :
aws-kinesis-agent is a software service that runs on customer hosts and continuously monitors a set of log files
and sends new data to the Amazon Kinesis Stream service and Amazon Kinesis Firehose service in near-real-time.

アップデート後

基本的に特別な対応は必要ない想定です。私の環境では、Kinesisエージェントの設定内容や、サービスの自動起動設定等も引き継がれたことが確認できました。

念のため、事前に開発環境等にてアップデートが正常に実行できることと、アップデート後もKinesisにデータを転送できていることを確認する程度で問題ないかと存じます。

Log4jについて

KinesisエージェントはLog4jを利用しています。しかしながら、内部的なログ出力に利用しているだけで、外部からの入力値をログ出力するような仕組みではないため、世間を騒がせたApache Log4jの任意のコード実行の脆弱性(CVE-2021-44228)に関する注意喚起の影響は受けない想定です。

また、Amazon Kinesis Agent 1.1.5.1未満を利用している場合は、そもそもLog4jがバージョン1系のものであるため、上記の脆弱性の影響は受けない想定です。

Upgraded log4j dependency to 2.x.

Amazon Kinesis Agent 1.1.5.1

しかしながら、「とにかくアップデートする」という方針もあるかもしれませんので、その場合は上述の方法をご参考にアップデートいただければと存じます。

なお、下記のように、2系にアップデートしても、日本時間2021年12月31日時点では、エージェントは2.0.4で、Log4jは2.16でした。Log4jは2.17以降のバージョンでも脆弱性が見つかっているようなので、そちらには対応できていない状況です。おそらく、いずれ対応されてパッケージにもされるかとは存じます。
※追記: 日本時間2022年1月11日時点では、エージェントのバージョンが2.0.6で、Log4jについても2.17.1になっていました。

エージェント2.0.4

# ls -1 /usr/share/aws-kinesis-agent/lib
aws-java-sdk-cloudwatch-1.11.700.jar
aws-java-sdk-core-1.11.700.jar
aws-java-sdk-ec2-1.11.700.jar
aws-java-sdk-kinesis-1.11.700.jar
aws-java-sdk-sts-1.11.700.jar
AWSKinesisStreamingDataAgent-1.1.jar
commons-cli-1.2.jar
commons-codec-1.6.jar
commons-lang3-3.4.jar
commons-logging-adapters-1.1.jar
commons-logging-api-1.1.jar
guava-28.2-jre.jar
httpclient-4.5.1.jar
httpclient-cache-4.5.1.jar
httpcore-4.4.3.jar
httpcore-ab-4.4.3.jar
httpcore-nio-4.4.3.jar
httpmime-4.5.1.jar
jackson-annotations-2.10.3.jar
jackson-core-2.10.3.jar
jackson-databind-2.10.5.1.jar
jackson-dataformat-cbor-2.10.3.jar
jackson-dataformat-xml-2.10.3.jar
jcommander-1.48.jar
joda-time-2.8.2.jar
jsr305-3.0.1.jar
log4j-1.2-api-2.16.0.jar
log4j-api-2.16.0.jar
log4j-core-2.16.0.jar
log4j-slf4j-impl-2.16.0.jar
slf4j-api-1.7.12.jar
sqlite-jdbc-3.20.1.jar

エージェント2.0.6

# rpm -qi aws-kinesis-agent
Name        : aws-kinesis-agent
Version     : 2.0.6
Release     : 1.amzn2
Architecture: noarch
Install Date: Tue 11 Jan 2022 10:16:31 AM UTC
Group       : Applications/Communications
Size        : 25568570
License     : Amazon Software License and Apache 2.0 and MIT
Signature   : (none)
Source RPM  : aws-kinesis-agent-2.0.6-1.amzn2.src.rpm
Build Date  : Fri 07 Jan 2022 05:44:46 PM UTC
Build Host  : build.amazon.com
Relocations : (not relocatable)
Packager    : Amazon Linux
Vendor      : Amazon Linux
URL         : http://aws.amazon.com/
Summary     : Amazon Kinesis Streaming Data Agent
Description :
aws-kinesis-agent is a software service that runs on customer hosts and continuously monitors a set of log files
and sends new data to the Amazon Kinesis Stream service and Amazon Kinesis Firehose service in near-real-time.
# ls -1 /usr/share/aws-kinesis-agent/lib
aws-java-sdk-cloudwatch-1.11.700.jar
aws-java-sdk-core-1.11.700.jar
aws-java-sdk-ec2-1.11.700.jar
aws-java-sdk-kinesis-1.11.700.jar
aws-java-sdk-sts-1.11.700.jar
AWSKinesisStreamingDataAgent-1.1.jar
commons-cli-1.2.jar
commons-codec-1.6.jar
commons-lang3-3.4.jar
commons-logging-adapters-1.1.jar
commons-logging-api-1.1.jar
guava-29.0-jre.jar
httpclient-4.5.13.jar
httpclient-cache-4.5.1.jar
httpcore-4.4.3.jar
httpcore-ab-4.4.3.jar
httpcore-nio-4.4.3.jar
httpmime-4.5.1.jar
jackson-annotations-2.10.3.jar
jackson-core-2.10.3.jar
jackson-databind-2.10.5.1.jar
jackson-dataformat-cbor-2.10.3.jar
jackson-dataformat-xml-2.10.3.jar
jcommander-1.48.jar
joda-time-2.8.2.jar
jsr305-3.0.1.jar
log4j-1.2-api-2.17.1.jar
log4j-api-2.17.1.jar
log4j-core-2.17.1.jar
log4j-slf4j-impl-2.17.1.jar
slf4j-api-1.7.12.jar
sqlite-jdbc-3.20.1.jar

コメント

タイトルとURLをコピーしました