选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

IAM 数据库身份验证故障排除 - Amazon Aurora

IAM 数据库身份验证故障排除

下面,您可以找到一些常见 IAM 数据库身份验证问题的故障排除思路,以及有关 IAM 数据库身份验证的 CloudWatch 日志和指标的信息。

将 IAM 数据库身份验证错误日志导出到 CloudWatch Logs

IAM 数据库身份验证错误日志存储在数据库主机上,您可以将这些日志导出到您的 CloudWatch Logs 账户。使用本页中的日志和补救方法来解决 IAM 数据库身份验证问题。

可以通过控制台、AWS CLI 和 RDS API 启用向 CloudWatch Logs 导出日志。有关控制台说明,请参阅 将数据库日志发布到 Amazon CloudWatch Logs

要在从 AWS CLI 中创建数据库集群时将 IAM 数据库身份验证错误日志导出到 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 中修改数据库集群时将 IAM 数据库身份验证错误日志导出到 CloudWatch Logs,请使用以下命令:

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

要验证数据库集群是否正在将 IAM 数据库身份验证日志导出到 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 数据库身份验证 CloudWatch 指标

Amazon Aurora 向您的 Amazon CloudWatch 账户提供有关 IAM 数据库身份验证的近乎实时的指标。下表列出了使用 CloudWatch 时可用的 IAM 数据库身份验证指标:

指标 描述

IamDbAuthConnectionRequests

使用 IAM 数据库身份验证发出的连接请求总数。

IamDbAuthConnectionSuccess

成功的 IAM 数据库身份验证请求总数。

IamDbAuthConnectionFailure

失败的 IAM 数据库身份验证请求总数。

IamDbAuthConnectionFailureInvalidToken

由于令牌无效而失败的 IAM 数据库身份验证请求总数。

IamDbAuthConnectionFailureInsufficientPermissions

由于策略或权限不正确而失败的 IAM 数据库身份验证请求总数。

IamDbAuthConnectionFailureThrottling

由于 IAM 数据库身份验证节流而失败的 IAM 数据库身份验证请求总数。

IamDbAuthConnectionFailureServerError

由于 IAM 数据库身份验证功能中的内部服务器错误而失败的 IAM 数据库身份验证请求总数。

常见问题和解决方案

使用 IAM 数据库身份验证时可能会遇到以下问题。使用表中的修复步骤来解决问题:

错误 指标 原因 解决方案

[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 数据库身份验证令牌要么不是有效的 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 数据库身份验证令牌已到期。令牌仅在 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 角色和/或策略。请务必采用与连接到数据库相同的策略来生成令牌。

[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

您在短时间内向数据库发出的连接请求过多。IAM 数据库身份验证节流限制为每秒 200 个连接。

降低使用 IAM 身份验证建立新连接的速率。考虑使用 RDS 代理来实现连接池,以便在应用程序中重用已建立的连接。

[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 数据库身份验证授权数据库连接时出现内部错误。

请联系 https://aws.amazon.com/premiumsupport/ 以便调查此问题。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。