通过lambda函数测试旋转机密时



这是我的lambda函数(https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/blob/master/SecretsManagerRotationTemplate/lambda_function.py)当我测试时

{"arn":"writing arn from secret",
"token":"any random 32 digit number",
"step":"testsecret"}

给出错误

"errorMessage": "'SecretId'",
"errorType": "KeyError",
"requestId": "########",
"stackTrace": [
"  File "/var/task/lambda_function.py", line 24, in lambda_handlern    arn = event['SecretId']n"
]
}

发生这种情况可能有三个原因:

  1. 机密管理器中的现有密码与数据库密码不匹配。(当lambda函数尝试对数据库进行身份验证时,它应该和现有密码相匹配,以便进行身份验证和更新密码(。您可以找到如下cloudwatch日志:

[错误]2022-03-03T12:05:24.178Z 1a39a205-36f5-XXXX-XXXXXXXXX setSecret:无法使用secret arn arn:aws:secretsmanager:eu-west-2:XXXXXXXXXX:secret:XYZXXXXXXXXXXX 的以前、当前或挂起的机密登录数据库

  1. 数据库安全组应允许lambda fn访问数据库实例(创建一个以lambda sg为源和数据库端口的ingbound规则(

  2. 验证您是否连接到secretsmanager api(您的NAT网关应该可以访问secretsmaanager api端点(和服务名称为com.amazonaws.eu-west-2.secretsmanger/端点类型接口的端点,还验证执行lambda fn的区域。

函数需要'SecretId' in the event,但当前的event没有:

{"arn":"writing arn from secret",
"token":"any random 32 digit number",
"step":"testsecret"}

猜测arn应该是SecretId:

{"SecretId":"writing arn from secret",
"token":"any random 32 digit number",
"step":"testsecret"}

你可能会有其他类似的错误,你必须以同样的方式修复。

最新更新