
心当たりのない AWS SDK for Java 1.x サポート終了通知を Kiro CLI と CloudTrail で調査してみた
はじめに
開発環境として利用している個人アカウントに、以下の通知が届きました。

Our records indicate that one or more applications in this account made AWS API calls using the AWS SDK for Java 1.x within the last 16 days.
AWS SDK for Java 1.x は 2025 年 12 月 31 日にサポート終了しています。しかし、このアカウントで Java SDK を使ったアプリケーションを動かしている覚えがありません。心当たりがないため、AWS Health ダッシュボードと CloudTrail で呼び出し元を調査することにしました。
通知内容の確認
AWS Health のイベントログを確認しました。

AWS_SDK_PLANNED_LIFECYCLE_EVENT として記録されています。イベント詳細画面で通知本文と影響範囲を確認しました。

通知の要点は以下のとおりです。
- 過去 16 日間に AWS SDK for Java 1.x を使用した API 呼び出しが検出された
- SDK 1.x は 2025 年 12 月 31 日にサポート終了済み
- 既存アプリケーションは動作し続けるが、セキュリティパッチやバグ修正は提供されない
- SDK 2.x への移行を推奨
Affected Resources タブで影響リージョンを確認しました。

Affected Resources JSON
[
{
"entityValue": "us-east-1",
"awsAccountId": "xxxxxxxxxxxx",
"lastUpdatedTime": "2026-06-03T01:10:49.723Z",
"statusCode": "PENDING"
}
]
us-east-1 のリソースが対象であることがわかりました。
Kiro CLI で CloudTrail を調査
LookupEvents での初動調査
Kiro CLI に以下のように依頼しました。
次の案内が届きました。利用に心当たりがありません。バージニアのCloudTrailで、利用サービス、実行元などの調査は可能?
(通知本文の抜粋)
Kiro CLI は CloudTrail の LookupEvents API を使い、us-east-1 から直近 3,000 件を取得して UserAgent に aws-sdk-java/1. を含むイベントを抽出しました。結果は 1 件のみ検出でした。
ただし 3,000 件では通知の検出期間(16 日間)全体をカバーできていませんでした。LookupEvents での調査は非効率と判断し、Athena に切り替えました。
Athena での本調査
まず、Athena テーブルの作成を依頼しました。
us-east-1 の CloudTrail ログを Athena で検索したい。
必要なテーブルを作成して。
ログの容量が多い可能性があるので、年月日で調査範囲は限定したい。適切なパーティション投影を設定して。
S3 バケット、リージョンは CloudTrail 設定から確認して。
Kiro CLI は describe-trails で S3 バケットとプレフィックスを特定し、パーティション投影付きのテーブルを作成しました。
Kiro CLI が生成した CREATE TABLE
CREATE EXTERNAL TABLE cloudtrail_logs_use1 (
eventVersion STRING,
userIdentity STRUCT<
type: STRING, principalId: STRING, arn: STRING,
accountId: STRING, invokedBy: STRING, accessKeyId: STRING,
userName: STRING,
sessionContext: STRUCT<
attributes: STRUCT<mfaAuthenticated: STRING, creationDate: STRING>,
sessionIssuer: STRUCT<type: STRING, principalId: STRING, arn: STRING, accountId: STRING, userName: STRING>,
ec2RoleDelivery: STRING, webIdFederationData: MAP<STRING, STRING>
>
>,
eventTime STRING, eventSource STRING, eventName STRING,
awsRegion STRING, sourceIPAddress STRING, userAgent STRING,
errorCode STRING, errorMessage STRING,
requestParameters STRING, responseElements STRING,
additionalEventData STRING, requestId STRING, eventId STRING,
readOnly STRING,
resources ARRAY<STRUCT<arn: STRING, accountId: STRING, type: STRING>>,
eventType STRING, apiVersion STRING, recipientAccountId STRING,
serviceEventDetails STRING, sharedEventID STRING, vpcEndpointId STRING,
tlsDetails STRUCT<tlsVersion: STRING, cipherSuite: STRING, clientProvidedHostHeader: STRING>
)
PARTITIONED BY (`year` STRING, `month` STRING, `day` STRING)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 's3://cm-members-cloudtrail-xxxxxxxxxxxx/AWSLogs/xxxxxxxxxxxx/CloudTrail/us-east-1/'
TBLPROPERTIES (
'projection.enabled' = 'true',
'projection.year.type' = 'integer',
'projection.year.range' = '2020,2026',
'projection.month.type' = 'integer',
'projection.month.range' = '1,12',
'projection.month.digits' = '2',
'projection.day.type' = 'integer',
'projection.day.range' = '1,31',
'projection.day.digits' = '2',
'storage.location.template' = 's3://cm-members-cloudtrail-xxxxxxxxxxxx/AWSLogs/xxxxxxxxxxxx/CloudTrail/us-east-1/${year}/${month}/${day}',
'classification' = 'cloudtrail'
)
テーブルが作成できたので、続けて検索を依頼しました。
過去16日間で UserAgent に "aws-sdk-java/1." を含むイベントの一覧を出して。
呼び出し元の IAM プリンシパル、操作名、サービス、ソースIP を整理して報告して。
Kiro CLI はパーティションで期間を限定したクエリを生成し、実行しました。
Kiro CLI が生成したクエリ
SELECT
eventtime, eventsource, eventname,
useridentity.arn AS principal,
useragent, sourceipaddress
FROM cloudtrail_logs_use1
WHERE useragent LIKE '%aws-sdk-java/1.%'
AND (
(year = '2026' AND month = '05' AND day >= '18')
OR (year = '2026' AND month = '06')
)
ORDER BY eventtime DESC
調査結果
以下のイベントが検出されました。
| 呼び出し元 | 件数 | 操作 |
|---|---|---|
| AWSServiceRoleForAWSChatbot | 107 件 | CreateLogStream |
| CodeBuild 関連ロール | 3 件 | GetBucketLocation / CreateLogStream |
| kiro-headless-lambda-role | 1 件 | RetireGrant |
全体の 95% 以上が AWS Chatbot のサービスリンクドロールによる CreateLogStream でした。UTC 00:02 ごろ(JST 09:02 ごろ)にまとまって発生する傾向があり、サービスの定期処理と見られます。
検出された 3 パターンのイベントを示します。
パターン 1: AWS Chatbot(107 件)
{
"eventtime": "2026-06-03T00:02:39Z",
"eventsource": "logs.amazonaws.com",
"eventname": "CreateLogStream",
"principal": "arn:aws:sts::xxxxxxxxxxxx:assumed-role/AWSServiceRoleForAWSChatbot/Assuming-ServiceRole-For-AWSChatbot-chatbot-logs-management",
"useragent": "aws-internal/3 aws-sdk-java/1.12.797 Linux/5.10.253-286.1015.amzn2.x86_64 OpenJDK_64-Bit_Server_VM/17.0.18+9-LTS java/17.0.18 kotlin/2.2.21 vendor/Amazon.com_Inc. cfg/retry-mode/standard cfg/auth-source#unknown m/P exec-env/AWS_Lambda_java17",
"sourceipaddress": "3.134.xx.xxx"
}
パターン 2: CodeBuild(3 件)
{
"eventtime": "2026-05-20T15:53:30Z",
"eventsource": "s3.amazonaws.com",
"eventname": "GetBucketLocation",
"principal": "arn:aws:sts::xxxxxxxxxxxx:assumed-role/kiro-headless-codebuild-role/AWSCodeBuild",
"useragent": "[aws-internal/3 aws-sdk-java/1.12.797 Linux/5.10.253-253.1015.amzn2int.x86_64 OpenJDK_64-Bit_Server_VM/21.0.11+10-LTS java/21.0.11 scala/2.12.19 kotlin/2.3.21 vendor/Amazon.com_Inc. cfg/retry-mode/standard cfg/auth-source#unknown m/P]",
"sourceipaddress": "10.195.xx.xxx"
}
パターン 3: Lambda ランタイム(1 件)
{
"eventtime": "2026-05-20T15:46:34Z",
"eventsource": "kms.amazonaws.com",
"eventname": "RetireGrant",
"principal": "arn:aws:sts::xxxxxxxxxxxx:assumed-role/kiro-headless-lambda-role/kiro-headless-docker",
"useragent": "aws-internal/3 aws-sdk-java/1.12.797 Linux/5.10.252-285.992.amzn2.x86_64 OpenJDK_64-Bit_Server_VM/17.0.18+9-LTS java/17.0.18 kotlin/1.8.22 vendor/Amazon.com_Inc. cfg/retry-mode/standard cfg/auth-source#STSAssumeRoleCredentialsProvider m/P,T exec-env/AWS_Lambda_java17",
"sourceipaddress": "52.90.xx.xxx"
}
原因の特定
検出されたイベントはいずれも aws-internal/3 プレフィックスを含んでいました。ロール名、セッション名、操作内容と合わせて確認した結果、ユーザーアプリケーションが直接 AWS SDK for Java 1.x を使用しているものではなく、AWS サービス側の内部処理に伴う呼び出しと判断しました。
そのため、この検証用アカウントでは SDK 移行対応は不要と判断し、今回は静観することにしました。
各パターンの判断根拠は以下のとおりです。
パターン 1: AWS Chatbot(107 件)
- ロール名
AWSServiceRoleForAWSChatbot— AWS マネージドサービスが自動作成するサービスリンクドロール - セッション名
chatbot-logs-management— Chatbot がログ管理目的で CloudWatch Logs を操作 - 毎日同じ時刻帯にまとまって発生 — サービスの定期処理
パターン 2: CodeBuild(3 件)
- セッション名が
AWSCodeBuild— CodeBuild サービスが自動付与するセッション名 GetBucketLocation/CreateLogStream— ビルド実行時に CodeBuild サービスが行う S3 アーティファクト確認やログ出力に伴う処理と見られる- SourceIP がプライベートアドレス(10.195.x.x)— AWS 内部ネットワーク
パターン 3: Lambda ランタイム(1 件)
RetireGrant(KMS)— Lambda ランタイムがコンテナイメージの復号に使用した KMS Grant のリタイア- ユーザー実装(
kiro-headless-docker)に SDK 1.x は含まれておらず、Lambda ランタイムの内部操作
まとめ
Kiro CLI を使うことで、CloudTrail 設定の確認から Athena クエリの実行、結果整理までを一連の流れで進められました。心当たりのない AWS Health 通知を調査する機会があれば、Kiro CLI をお試しください。
参考リンク




