如何通过AWS CLI获取AWS服务默认安全组的ID?
查询AWS默认安全组ID的方法
你可以通过以下两种不需要GUI控制台的方式获取目标安全组ID:
方法1:使用AWS CLI查询(最常用)
- 提前在操作环境配置好有效AWS凭证(可通过
aws configure命令配置,或直接写入~/.aws/credentials文件、配置对应环境变量均可) - 如果你已经知道目标VPC的ID,执行以下命令直接查询该VPC下的默认安全组ID,将命令中的
<目标VPC ID>替换为实际值即可:aws ec2 describe-security-groups --filters "Name=vpc-id,Values=<目标VPC ID>" "Name=is-default,Values=true" --query "SecurityGroups[*].GroupId" --output text - 如果你不清楚VPC ID,可执行以下命令直接输出当前区域所有VPC的默认安全组ID和对应的VPC ID:
aws ec2 describe-security-groups --filters "Name=is-default,Values=true" --query "SecurityGroups[*].[GroupId,VpcId]" --output table - 得到的安全组ID可直接填入serverless.yml中VPC配置的
securityGroupIds字段。
方法2:通过AWS SDK调用查询
如果你习惯用代码查询,可调用对应语言的AWS SDK接口获取,以下为Python boto3示例:
import boto3 # 替换为你实际使用的AWS区域 ec2_client = boto3.client('ec2', region_name='cn-north-1') resp = ec2_client.describe_security_groups( Filters=[ {'Name': 'is-default', 'Values': ['true']} ] ) for sg_item in resp['SecurityGroups']: print(f"安全组ID:{sg_item['GroupId']} | 所属VPC:{sg_item['VpcId']}")
注意:执行以上查询操作的IAM身份必须被授予
ec2:DescribeSecurityGroups权限,否则会返回权限拒绝的报错。
内容的提问来源于stack exchange,提问作者Pradeep Gameria
相关产品推荐
相关产品推荐

