要解决AWS Lambda函数无法获取密钥arn:aws:secretsmanager的问题,可以按照以下步骤进行操作:
确保密钥在AWS Secrets Manager中存在并且具有正确的密钥ARN。
在Lambda函数中,确保您具有以下所需的IAM权限:
您可以通过在Lambda函数的执行角色中添加这些权限来配置它们。
示例IAM策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue",
"secretsmanager:DescribeSecret"
],
"Resource": "arn:aws:secretsmanager:region:account-id:secret:secret-name"
}
]
}
请将region
替换为您的密钥所在的AWS区域,将account-id
替换为您的AWS账户ID,将secret-name
替换为您的密钥名称。
在Lambda函数的代码中,确保您正在使用正确的密钥ARN来获取密钥的值。以下是一个使用Python的示例代码:
import boto3
import json
def lambda_handler(event, context):
secret_name = "arn:aws:secretsmanager:region:account-id:secret:secret-name"
region_name = "region"
session = boto3.session.Session()
client = session.client(service_name='secretsmanager', region_name=region_name)
response = client.get_secret_value(SecretId=secret_name)
secret_value = json.loads(response['SecretString'])
# 在这里使用密钥的值进行后续操作
# ...
return {
'statusCode': 200,
'body': json.dumps('Successfully retrieved secret value')
}
请将secret_name
替换为您的密钥ARN,将region_name
替换为您的密钥所在的AWS区域。
完成上述步骤后,您的Lambda函数应该能够成功获取AWS Secrets Manager中密钥的值。