カスタム ID プロバイダーの問題をトラブルシューティングする - AWS Transfer Family

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

カスタム ID プロバイダーの問題をトラブルシューティングする

このセクションでは、Transfer Family を使用したカスタム ID プロバイダーに関連する問題の考えられる解決策について説明します。

API Gateway 統合エラーのトラブルシューティング

説明

ユーザーは Transfer Family サーバーで認証できません。ID プロバイダーをテストすると、次のようなエラーが表示されます。

{ "Response": "", "StatusCode": 500, "Message": "Internal server error" }

原因

API Gateway 統合エラーは、以下が原因で発生する可能性があります。

  • API Gateway の設定が正しくない

  • Lambda 関数エラーが適切に処理されていない

  • API Gateway と Lambda 間のアクセス許可の問題

  • Lambda 関数からの不正な形式のレスポンス

解決策

API Gateway 統合エラーをトラブルシューティングするには:

  1. 詳細なエラー情報については、Lambda 関数ログを確認してください。

    • CloudWatch コンソールで、ロググループ > /aws/lambda/your-function-name に移動します。

    • 根本原因を示すエラーメッセージまたはスタックトレースを探す

  2. Lambda 関数が適切にフォーマットされたレスポンスを返すことを確認します。

    { "Role": "arn:aws:iam::123456789012:role/TransferUserRole", "HomeDirectory": "/mybucket/home/username" }
  3. API Gateway の詳細な CloudWatch ログ記録を有効にします。

    • API Gateway コンソールで API を選択し、ステージを選択します。

    • ステージを選択し、ログ/トレースCloudWatch Logs を有効にする

    • ログレベルを ERROR または INFO に設定する

  4. API Gateway エンドポイントを直接テストします。

    curl -X POST https://your-api-id.execute-api.region.amazonaws.com/prod/servers/your-server-id/users/username/config \ -H "Content-Type: application/json" \ -d '{"Password": "password"}'
  5. API Gateway と Lambda 間のアクセス許可を確認します。

    • API Gateway に Lambda 関数を呼び出すアクセス許可があることを確認します。

    • Lambda 関数の実行ロールに必要なアクセス許可があることを確認します。

Lambda 関数のタイムアウトのトラブルシューティング

説明

ユーザーがカスタム ID プロバイダーを使用して Transfer Family サーバーで認証しようとすると、長い遅延が発生し、認証が失敗します。Lambda ログにタイムアウトエラーが表示されます。

原因

カスタム ID プロバイダーに使用される Lambda 関数のデフォルトのタイムアウトは 3 秒です。認証ロジックがこのタイムアウトよりも時間がかかる場合 (外部データベースのクエリやサードパーティー ID プロバイダーへの API 呼び出しなど)、関数はタイムアウトし、認証は失敗します。

解決策

Lambda タイムアウトの問題を解決するには:

  1. Lambda 関数のタイムアウトを長くします。

    • Lambda コンソールで、関数に移動し、設定タブを選択します。

    • 全般設定で、編集 をクリックします。

    • タイムアウト値を増やす (認証機能には最大 15 秒を推奨)

  2. Lambda 関数コードを最適化します。

    • データベースクエリの接続プーリングを使用する

    • 頻繁にアクセスされるデータのキャッシュを実装する

    • 認証中の外部 API コールの最小化

  3. Lambda プロビジョニングされた同時実行を使用してコールドスタートを排除することを検討してください。

    aws lambda put-provisioned-concurrency-config \ --function-name my-authentication-function \ --qualifier prod \ --provisioned-concurrent-executions 5
  4. CloudWatch メトリクスを使用して Lambda パフォーマンスをモニタリングし、期間しきい値のアラームを設定する

一貫した Lambda タイムアウト問題のトラブルシューティング

説明

認証に Lambda 関数を使用すると、一貫したタイムアウトが発生します。

原因

Lambda は、認証に使用される対応する AWS サービス (DynamoDB、Secrets Manager、またはその他の ID プロバイダーなど) に到達できません。

解決策

サブネットが AWS サービスに到達できることを確認します。または、インターネット ID プロバイダー (Okta など) に接続する場合は、Lambda 関数のサブネットが NAT ゲートウェイ経由でインターネットにアクセスできることを確認します。

KeyError 例外のトラブルシューティング

説明

Transfer Family ログエントリに、KeyError」例外があります。

原因

最も可能性の高い原因は、ユーザーまたはidentity_providerレコードの形式が正しくないか、必須フィールドがないことです。

解決策

ERRORS ロググループにある/aws/transfer/your-server-idログで手がかりを確認します。