使用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客户端的行为不符合预期?

1 Antwort
0

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

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

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen