AWSセキュリティグループの依存関係を判断する方法は?


46

Amazon EC2では、セキュリティグループを削除することはできず、グループにはまだ依存関係があるとの不満があります。これらの依存関係を見つけるにはどうすればよいですか?

aws ec2 describe-security-groupsは言っていません。


@MichaelHamptonという質問では、たとえそうだとマークされていても、答えは正しくありません。
konr 14

@konr質問にもっと良い答えが必要だと思われる場合、賞金を開始できます。
マイケルハンプトン

回答:


58

EC2の[ネットワークインターフェイス]セクションにセキュリティグループIDを貼り付けます。これにより、EC2、EB、RDS、ELB全体で使用状況がわかります。

CLI: aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-123abc45


10

AWS EC2コンソールでこれを行う最良の方法は、[EC2-> Instances]セクションの検索フィールドにセキュリティグループ名を貼り付けることです。

貼り付けられたセキュリティグループに関連付けられたすべてのインスタンスが生成され、それらがec2オブジェクトになります(依存関係)。

この検索は、ELBセクションや、セキュリティグループを利用する他のAWSオファリングでも実行できます。

セキュリティグループを削除しようとしている場合、各インスタンスの「セキュリティグループの変更」(VPCにある場合)か、AMIを作成して別のセキュリティグループを使用して再起動してから、古いインスタンスを削除する必要があります( EC2クラシックを使用)

お役に立てば幸いです


8

グループ自体ではなく、EC2インスタンスオブジェクトを確認する必要があります。

$ aws ec2 describe-instances --output text

次に、「sg- *」を探すか、標準のUNIXテキストストリーム処理ツールを使用して、必要なデータを引き出します。

または、インスタンスの数が少ない場合--output tableは、適切にフォーマットされたリストを使用します。


2
aws ec2 describe-instances --output text | grep sg-
cdmckay

セキュリティグループは他のセキュリティグループを参照できるため、その関数を再帰的に実行する必要があるかもしれません。
ブレンダン

1
それは静かな不完全です。セキュリティグループは、EC2インスタンス以外の多くの場所で使用できます-ELB、VPC、他のセキュリティグループ(@brendanとして既に言及)など
Amos Shapira

@AmosShapira OPはEC2について具体的に尋ねていました。ご希望の場合は、いつでも私の回答を自由に編集して改善できます。
EEAA

@AmosShapira OPが抱えていた問題を解決しました。SFの回答は、あらゆる関連する状況に対する包括的な回答である必要はありません。
EEAA

7

aws cliに問い合わせて、必要なデータを取得できます。

あなたがする必要があります:

  • 問題のグループへの参照を探しているすべてのセキュリティグループを一覧表示する
  • すべてのEC2とそのグループをリストする
  • すべてのELBとそのグループをリストする
  • すべてのRDSとそのグループを一覧表示する

raw aws cliの代わりに、boto https://code.google.com/p/boto/などのライブラリを使用することもできます。


4

Lambda関数にはセキュリティグループもあります。執筆時点では、AmazonはLambda関数によって使用されるセキュリティグループの削除を防止していません。

私はこれを使用しました:

aws lambda list-functions | jq -c '.Functions[] | {FunctionArn, SecurityGroups: (.VpcConfig.SecurityGroupIds[]? // null) }'

2

別の問題は、他のSecurityGroupsに依存するSecurityGroupsです。このコマンドを使用して、隣接リスト(直接依存関係)を生成できます。

aws ec2 describe-security-groups --query "SecurityGroups[*].{ID:GroupId,Name:GroupName,dependentOnSGs:IpPermissions[].UserIdGroupPairs[].GroupId}

理想的には、この結果を使用して、推移的閉包(すべての依存関係、直接および間接)を見つける必要があります。残念ながら、推移的なクロージャーutilを見つけることができませんでした。


1

質問が最初に尋ねられたとき、これは利用できなかったかもしれませんが、AWS Console for Security Groupsに行き、問題のグループを選択し、削除アクションを選択すると、結果のプロンプトは、それが参照されているかどうかと、 。



0

マークされた答えは間違っています。依存関係違反が発生している場合は、IP許可(入力)構成で別のセキュリティグループが参照されている可能性があります。ソースとしてセキュリティグループを含むすべての入力許可を取り消す必要があります。


元の質問は、セキュリティグループを参照しているものだったと思います。セキュリティグループ(およびその入力ポート)を参照するネットワークインターフェイスではないものはありますか?そうでない場合は、ネットワークインターフェイスリストが適切な答えです。
user14645

重要な点はありますが、セキュリティグループへの参照は依存関係違反ではありません。どのENIにも接続されていないが、別のセキュリティグループで参照されているセキュリティグループを削除することができます。削除が行われると、コンソールに「新しい古いセキュリティグループルールがあります」という通知が表示され、ルール内に存在しないセキュリティグループへの古い参照があることを示します。その後、「古いルールの表示」ハイパーリンクが表示され、その後状況を修正できます。
デニスストローベル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.