💷

AWS Cognito M2M認証フローの課金変更に関する重要なお知らせ

に公開

はじめに

AWS Summit 2025 Tokyo の申し込みを昨日行った @___nix___ です。

AWSから重要な通知が届きました。Amazon CognitoのM2M(Machine-to-Machine)認証フローの課金に関する変更についてです。この変更は、多くのAWSユーザーに影響を与える可能性のある重要なアップデートです。

背景

  • 2024年5月9日にAmazon CognitoのM2M認証フローの課金に関する発表がありました。

https://aws.amazon.com/jp/about-aws/whats-new/2024/05/amazon-cognito-tiered-pricing-m2m-usage/

  • 最近になって最終警告として以下の通知がありました。
    [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で設定されたアプリケーションクライアント
    • このフローを使用したトークンリクエストの数

https://aws.amazon.com/jp/cognito/pricing/

基本料金: クライアント数 × 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マネージドコンソールで確認

確認方法は以下が参考になると思います。

https://dev.classmethod.jp/articles/amazon-cognito-tiered-pricing-m2m-usage/

対応

  1. 現在の使用状況の確認
  2. 不要なアプリケーションクライアントがあれば削除
  3. 必要に応じてAWSサポートまたはアカウントチームへの問い合わせ

終わりに

この変更は、CognitoのM2M機能の継続的な改善と投資を可能にするための措置です。最近では、M2M認証フローのアクセストークンのカスタマイズ機能も追加されています。

一言

AI界隈では MCP や A2A 等目まぐるしく変化する中で AWS だけに気を取られないようにしないとですね。
とは言え、まだまだ変化が激しい AI界隈 の何にキャッチアップしていくかも重要そうです。

Discussion