使用CLI的WAF list_web_acls可以运行,为什么在Lambda中使用Boto3返回空数组?

0

【以下的问题经过翻译处理】 我的WAF中有一些WebACL规则,我想在Lambda函数中通过api查询并列出来。 (我在eu-central-1中有区域WebACL)

我的Lambda处理程序:

def lambda_handler(event, context):    
    waf_client = boto3.client(
        "wafv2",
        aws_access_key_id="SOME_ACCESS_KEY_ID",
        aws_secret_access_key="SOME_SECRET_ACCESS_KEY",
        region_name="eu-central-1"
    )
    
    return waf_client.list_web_acls(Scope="REGIONAL")

Lambda结果:

{
  "WebACLs": [],
  "ResponseMetadata": {...}
}


有效的CLI命令: aws wafv2 list-web-acls --scope=REGIONAL --region=eu-central-1

结果:

{
    "NextMarker": "something",
    "WebACLs": [
        {
            "Name": "something",
            "Id": "hash1",
            "Description": "",
            "LockToken": "hash2",
            "ARN": "arn:aws:wafv2:eu-central-1:accountid:regional/webacl/something/hash1"
        }
    ]
}



我有什么遗漏吗?或者Boto3 WAF客户端的行为不符合预期?

profile picture
专家
已提问 5 个月前27 查看次数
1 回答
0

【以下的回答经过翻译处理】 我看不出为什么那个不可行。除非CLI中使用的账号细节与Lambda函数中的不一致。您可以使用“aws sts get-caller-identity”命令和相应的boto3调用进行确认。

请注意,在Lambda函数中不必提供凭据,更好的做法是创建一个具有特定Lambda函数所需权限的角色,以避免硬编码凭据。如果需要进行跨账户调用,也可以这样做。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则