首页 > 解决方案 > 如果我知道名称,如何获取 AWS 安全组的 ID?

问题描述

我正在使用 AWS CLI,我想获取我知道其名称的安全组的 ID ( kingkajou_sg)。我该怎么做?

当我要求它列出所有安全组时,它很高兴:

$ aws ec2 describe-security-groups | wc -l
     430

当我通过此信息 grep 时,我看到有问题的 SG 已列出:

$ aws ec2 describe-security-groups | grep -i kingkajou_sg
            "GroupName": "kingkajou_sg",

但是,当我尝试仅获取有关该安全组的信息时,它不会让我这样做。为什么?

$ aws ec2 describe-security-groups --group-names kingkajou_sg

An error occurred (InvalidGroup.NotFound) when calling the 
DescribeSecurityGroups operation: The security group 'kingkajou_sg' does not exist in default VPC 'vpc-XXXXXXXX'

有人可以提供我可以用来提取安全组 ID 的单行命令吗?您可以假设该命令将从与安全组位于同一 VPC 的 EC2 中运行。

标签: amazon-ec2aws-cliaws-security-group

解决方案


从 API 文档:

--组名(列表)

[仅限 EC2-Classic 和默认 VPC] 一个或多个安全组名称。您可以指定安全组名称或安全组 ID。对于非默认 VPC 中的安全组,使用 group-name 过滤器按名称描述安全组。

如果您使用的是非默认 VPC,请使用过滤器

aws ec2 describe-security-groups --filter Name=vpc-id,Values=<my-vpc-id> Name=group-name,Values=kingkajou_sg --query 'SecurityGroups[*].[GroupId]' --output text

推荐阅读