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
\ --regionus-east-1
\ --enginepostgres
\ --engine-version16
\ --master-usernamemaster
\ --master-user-passwordpassword
\ --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
\ --regionus-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 数据库身份验证指标:
指标 | 描述 |
---|---|
|
使用 IAM 数据库身份验证发出的连接请求总数。 |
|
成功的 IAM 数据库身份验证请求总数。 |
|
失败的 IAM 数据库身份验证请求总数。 |
|
由于令牌无效而失败的 IAM 数据库身份验证请求总数。 |
|
由于策略或权限不正确而失败的 IAM 数据库身份验证请求总数。 |
|
由于 IAM 数据库身份验证节流而失败的 IAM 数据库身份验证请求总数。 |
|
由于 IAM 数据库身份验证功能中的内部服务器错误而失败的 IAM 数据库身份验证请求总数。 |
常见问题和解决方案
使用 IAM 数据库身份验证时可能会遇到以下问题。使用表中的修复步骤来解决问题:
错误 | 指标 | 原因 | 解决方案 |
---|---|---|---|
|
|
连接请求中的 IAM 数据库身份验证令牌要么不是有效的 SigV4a 令牌,要么格式不正确。 |
在应用程序中检查令牌生成策略。在某些情况下,请确保使用有效的格式传递令牌。截断令牌(或字符串格式不正确)将使令牌失效。 |
|
|
IAM 数据库身份验证令牌已到期。令牌仅在 15 分钟内有效。 |
检查应用程序中的令牌缓存和/或令牌重用逻辑。您不应重用超过 15 分钟的令牌。 |
|
|
该错误可能是由于以下原因引起的:
|
验证您在应用程序中采用的 IAM 角色和/或策略。请务必采用与连接到数据库相同的策略来生成令牌。 |
|
|
您在短时间内向数据库发出的连接请求过多。IAM 数据库身份验证节流限制为每秒 200 个连接。 |
降低使用 IAM 身份验证建立新连接的速率。考虑使用 RDS 代理来实现连接池,以便在应用程序中重用已建立的连接。 |
|
|
使用 IAM 数据库身份验证授权数据库连接时出现内部错误。 |
请联系 https://aws.amazon.com/premiumsupport/ 以便调查此问题。 |