使用 AWS CLI(一行程序)将安全组添加到 EC2 现有安全组列表中

使用 AWS CLI(一行程序)将安全组添加到 EC2 现有安全组列表中

这个问题是对的后续问题(不是重复问题)如何向正在运行的 EC2 实例添加安全组?我相信它应该有自己的答案,而不是评论。

我如何使用 AWS CLI 编写一行代码来添加将安全组添加到 EC2。

因为使用该命令很麻烦

aws ec2 modify-instance-attribute --instance-id i-12345 --groups sg-12345 sg-67890 

它需要指定所有 CURRENT 和 NEW SG。

那么我可以使用哪一行代码将安全组添加到实例的当前组中?

答案1

我们可以先这样做

current_security_groups=$(aws ec2 describe-instances --instance-ids $newid --query Reservations[*].Instances[*].SecurityGroups[*].GroupId --output text)

这为我们提供了当前的安全组。例如:

$ echo $current_security_groups
sg-6ddf0b08 sg-7ee1231b

然后我们可以基于前面的答案写下:

aws ec2 modify-instance-attribute --instance-id $newid \
   --groups $current_security_groups sg-e1395da9

或者用一行代码:

aws ec2 modify-instance-attribute --instance-id $newid \
  --groups $(aws ec2 describe-instances \
     --instance-ids $newid \
     --query Reservations[*].Instances[*].SecurityGroups[*].GroupId \
     --output text) \
  sg-e1395da9

其中 $newid 是 EC2 instance_id,以及sg-e1395da9我们正在添加的 SG 组。

顺便说一下,该命令是幂等的,耶!

相关内容