boto3 列出 AWS 账户的所有安全组

Mil*_*ter 0 python amazon-web-services boto3

有没有办法使用 boto3 列出所有 AWS 安全组?

使用此代码我只能获得 5 个组(该地区的 25 个组中)

client = boto3.client('ec2')

response=client.describe_security_groups(



)
print response
Run Code Online (Sandbox Code Playgroud)

我有 4 个 VPC,因此我尝试为每个 VPC 获取组,并将其添加为过滤器:

Filters=[
        {
            'Name': 'vpc-id',
            'Values': [
                'vpc-d60ee9b1',
            ]
        },
    ],
Run Code Online (Sandbox Code Playgroud)

但结果我得到了这个:

{u'SecurityGroups': [], 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '44f39633-4f21-4c4f-b3f4-82fbce538c5f', 'HTTPHeaders': {'transfer-encoding': 'chunked', 'vary': 'Accept-Encoding', 'server': 'AmazonEC2', 'content-type': 'text/xml;charset=UTF-8', 'date': 'Thu, 03 May 2018 08:25:03 GMT'}}}
Run Code Online (Sandbox Code Playgroud)

尝试按地区过滤并得到:The filter 'region' is invalid

但是,使用 AWS CLI 可以正常工作:

aws ec2 describe-security-groups --region $REGION
Run Code Online (Sandbox Code Playgroud)

这是否意味着我需要坚持使用 AWS CLI 或者 boto3 具有列出 AWS 帐户的所有安全组的语法?

jar*_*mod 5

您可能正在描述不同地区的资源。这是事情没有出现的常见原因。

您可以按如下方式设置区域:

ec2 = boto3.client('ec2', region_name='us-west-2')
Run Code Online (Sandbox Code Playgroud)