はじめに
AWS Summit 2025 Tokyo の申し込みを昨日行った @___nix___ です。
AWSから重要な通知が届きました。Amazon CognitoのM2M(Machine-to-Machine)認証フローの課金に関する変更についてです。この変更は、多くのAWSユーザーに影響を与える可能性のある重要なアップデートです。
背景
- 2024年5月9日にAmazon CognitoのM2M認証フローの課金に関する発表がありました。
- 最近になって最終警告として以下の通知がありました。
[Notification] Reminder: Amazon Cognito pricing for OAuth 2.0 client credentials (or machine-to-machine) flow will start on May 9, 2025 [AWS Account: xxxxxxxxxxxx]
概要
- 2025年5月9日から、Amazon CognitoのM2M認証フローの使用に対して課金が開始されます。
- 課金対象となるのは以下の通り。
- OAuth 2.0 client credentials grant typeで設定されたアプリケーションクライアント
- このフローを使用したトークンリクエストの数
基本料金: クライアント数 × 6.00 USD
リクエスト料金: リクエスト数 × 0.00225 USD
調査
現在の使用状況を確認するために、以下の方法を準備してみました。
1. スクリプトを使用した調査
-
check_m2m_clients.sh
スクリプトを使用して、M2M認証フローを使用しているアプリケーションクライアントを特定。 - スクリプトの実行方法
./check_m2m_clients.sh
- 出力結果から以下の情報を確認
- M2M認証フローを使用しているアプリケーションクライアントの数
- 各クライアントの使用状況
- 不要なクライアントの特定
実行結果の例:
$ ./check_m2m_clients.sh
チェック中: us-west-2_XXXXXXXX1
チェック中: us-west-2_XXXXXXXX2
チェック中: us-west-2_XXXXXXXX3
チェック中: us-west-2_XXXXXXXX4
チェック中: us-west-2_XXXXXXXX5
チェック中: us-west-2_XXXXXXXX6
チェック中: us-west-2_XXXXXXXX7
チェック中: us-west-2_XXXXXXXX8
M2Mクライアント検出: app_client_1 (UserPool: us-west-2_XXXXXXXX8)
M2Mクライアント検出: app_client_2 (UserPool: us-west-2_XXXXXXXX8)
M2Mクライアント検出: app_client_3 (UserPool: us-west-2_XXXXXXXX8)
チェック中: us-west-2_XXXXXXXX9
check_m2m_clients.sh
#!/bin/bash
# AWS CognitoのユーザープールIDのリストを取得
user_pool_ids=$(aws cognito-idp list-user-pools --max-results 60 --query 'UserPools[*].Id' --output text)
if [ -z "$user_pool_ids" ]; then
echo "エラー: ユーザープールが見つかりません"
exit 1
fi
# 各ユーザープールをチェック
for user_pool_id in $user_pool_ids; do
echo "チェック中: $user_pool_id"
# アプリケーションクライアントの一覧を取得
clients=$(aws cognito-idp list-user-pool-clients --user-pool-id "$user_pool_id" --query 'UserPoolClients[*].{ClientId:ClientId,ClientName:ClientName,AllowedOAuthFlows:AllowedOAuthFlows}' --output json)
# M2Mクライアントを検出
echo "$clients" | jq -r '.[] | select(.AllowedOAuthFlows[]? == "client_credentials") | "M2Mクライアント検出: \(.ClientName) (UserPool: \($user_pool_id))"' --arg user_pool_id "$user_pool_id"
done
注意事項:
- AWS CLIとjqが必要です
- スクリプトに実行権限を付与する必要があります(
chmod +x check_m2m_clients.sh
) - AWS認証情報が適切に設定されている必要があります
- 実際のユーザープールIDを
XXXXXXXX
の部分に置き換えて使用してください
2. AWSマネージドコンソールで確認
確認方法は以下が参考になると思います。
対応
- 現在の使用状況の確認
- 不要なアプリケーションクライアントがあれば削除
- 必要に応じてAWSサポートまたはアカウントチームへの問い合わせ
終わりに
この変更は、CognitoのM2M機能の継続的な改善と投資を可能にするための措置です。最近では、M2M認証フローのアクセストークンのカスタマイズ機能も追加されています。
一言
AI界隈では MCP や A2A 等目まぐるしく変化する中で AWS だけに気を取られないようにしないとですね。
とは言え、まだまだ変化が激しい AI界隈 の何にキャッチアップしていくかも重要そうです。