IAM DB 認証のトラブルシューティング - Amazon Aurora

IAM DB 認証のトラブルシューティング

以下に、いくつかの一般的な IAM DB 認証に関する問題のトラブルシューティングのヒントと、IAM DB 認証の CloudWatch ログおよびメトリクスに関する情報を示します。

CloudWatch Logs への IAM DB 認証エラーログのエクスポート

IAM DB 認証エラーログはデータベースホストに保存され、CloudWatch Logs アカウントでこれらのログをエクスポートできます。このページのログと修復方法を使用して、IAM DB 認証の問題をトラブルシューティングします。

コンソール、AWS CLI、および RDS API から CloudWatch Logs へのログエクスポートを有効にできます。コンソールの手順については、「Amazon CloudWatch Logs へのデータベースログの発行」を参照してください。

AWS CLI から DB クラスターを作成するときに IAM DB 認証エラーログを CloudWatch Logs にエクスポートするには、次のコマンドを使用します。

aws rds create-db-cluster --db-cluster-identifier mydbinstance \ --region us-east-1 \ --engine postgres \ --engine-version 16 \ --master-username master \ --master-user-password password \ --publicly-accessible \ --enable-iam-database-authentication \ --enable-cloudwatch-logs-exports=iam-db-auth-error

AWS CLI から DB クラスターを変更するときに IAM DB 認証エラーログを CloudWatch Logs にエクスポートするには、次のコマンドを使用します。

aws rds modify-db-cluster --db-instance-identifier mydbcluster \ --region us-east-1 \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["iam-db-auth-error"]}'

DB クラスターが IAM DB 認証ログを CloudWatch Logs にエクスポートしているかどうかを確認するには、describe-db-instances コマンドの出力で EnabledCloudwatchLogsExports パラメータが iam-db-auth-error に設定されているかどうかを確認します。

aws rds describe-db-cluster --region us-east-1 --db-cluster-identifier mydbcluster ... "EnabledCloudwatchLogsExports": [ "iam-db-auth-error" ], ...

IAM DB 認証 CloudWatch メトリクス

Amazon Aurora は、IAM DB 認証に関するほぼリアルタイムのメトリクスを Amazon CloudWatch アカウントに配信します。次の表に、CloudWatch で使用可能な IAM DB 認証メトリクスを示します。

メトリクス 説明

IamDbAuthConnectionRequests

IAM DB 認証で行われた接続リクエストの合計数。

IamDbAuthConnectionSuccess

成功した IAM DB 認証リクエストの合計数。

IamDbAuthConnectionFailure

失敗した IAM DB 認証リクエストの合計数。

IamDbAuthConnectionFailureInvalidToken

トークンが無効であるために失敗した IAM DB 認証リクエストの合計数。

IamDbAuthConnectionFailureInsufficientPermissions

ポリシーまたはアクセス許可が正しくないために失敗した IAM DB 認証リクエストの合計数。

IamDbAuthConnectionFailureThrottling

IAM DB 認証スロットリングにより失敗した IAM DB 認証リクエストの合計数。

IamDbAuthConnectionFailureServerError

IAM DB 認証機能の内部サーバーエラーにより失敗した IAM DB 認証リクエストの合計数。

一般的な の問題と解決策

IAM DB 認証の使用時に、次の問題が発生することがあります。問題を解決するには、表の修復ステップを使用します。

エラー メトリクス 原因 ソリューション

[ERROR] Failed to authenticate the connection request for user db_user because the provided token is malformed or otherwise invalid. (Status Code: 400, Error Code: InvalidToken)

IamDbAuthConnectionFailure

IamDbAuthConnectionFailureInvalidToken

接続リクエストの IAM DB 認証トークンが有効な SigV4a トークンではないか、正しくフォーマットされていません。

アプリケーションでトークン生成戦略を確認します。場合によっては、トークンを有効なフォーマットで渡してください。トークンを切り捨てる (または文字列形式が正しくない) と、トークンが無効になります。

[ERROR] Failed to authenticate the connection request for user db_user because the token age is longer than 15 minutes. (Status Code: 400, Error Code:ExpiredToken)

IamDbAuthConnectionFailure

IamDbAuthConnectionFailureInvalidToken

IAM DB 認証トークンの有効期限が切れています。トークンは 15 分間のみ有効です。

アプリケーションでトークンキャッシュやトークン再利用ロジックを確認します。15 分より古いトークンは再利用しないでください。

[ERROR] Failed to authorize the connection request for user db_user because the IAM policy assumed by the caller 'arn:aws:sts::123456789012:assumed-role/ <RoleName>/ <RoleSession>' is not authorized to perform `rds-db:connect` on the DB instance. (Status Code: 403, Error Code:NotAuthorized)

IamDbAuthConnectionFailure

IamDbAuthConnectionFailureInsufficientPermissions

このエラーの原因としては、以下が考えられます。

  • アプリケーションが引き受ける IAM ポリシーは、rds-db:connect アクションを許可しません。

  • db_user がデータベースに接続するための正しくないロール/ポリシーを引き受けています。

  • db_user の正しいポリシーを引き受けていますが、正しいデータベースに接続していません。

アプリケーションで引き受ける IAM ロールやポリシーを確認します。DB に接続する場合と同じポリシーを引き受けてトークンを生成します。

[ERROR] Failed to authorize the connection request for user db_user due to IAM DB authentication throttling. (Status Code: 429, Error Code: ThrottlingException)

IamDbAuthConnectionFailure

IamDbAuthConnectionFailureThrottling

短時間に DB への接続リクエストが多すぎます。IAM DB 認証のスロットリング制限は、1 秒あたり 200 接続です。

IAM 認証を使用して新しい接続を確立する速度を下げます。確立された接続をアプリケーションで再利用するには、RDS Proxy を使用して接続プールを実装することを検討してください。

[ERROR] Failed to authorize the connection request for user db_user due to an internal IAM DB authentication error. (Status Code: 500, Error Code: InternalError)

IamDbAuthConnectionFailure

IamDbAuthConnectionFailureThrottling

IAM DB 認証で DB 接続を許可中に内部エラーが発生しました。

https://aws.amazon.com/premiumsupport/ に連絡して問題を調査してください。