Amazon EC2では、セキュリティグループを削除することはできません。グループにはまだ依存関係があると不満を漏らしています。どうすればそれらの依存関係を見つけることができますか?
aws ec2 describe-security-groupsは言いません。
EC2の[Network Interfaces]セクションにセキュリティグループIDを貼り付けます。これにより、EC2、EB、RDS、ELB全体の使用状況がわかります。
CLI:aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-123abc45
AWS EC2コンソールでこれを行う最良の方法は、EC2-> Instancesセクションの検索フィールドにセキュリティグループ名を貼り付けることです。
貼り付けられたセキュリティグループに関連付けられたすべてのインスタンスが生成され、ec2オブジェクト(依存関係)になります。
ELBセクションおよびセキュリティグループを利用する他のAWSオファリングでこの検索を実行することもできます。
セキュリティグループを削除しようとしている場合は、インスタンスごとに「セキュリティグループを変更」する(VPCにある場合)か、AMIを作成して別のセキュリティグループを使用して再起動してから、古いインスタンスを削除する必要があります( EC2クラシックを使用)
それが役立つことを願っています-
グループ自体ではなく、EC2インスタンスオブジェクトを確認する必要があります。
$ aws ec2 describe-instances --output text
次に、「sg- *」を探すか、標準のUNIXテキストストリーム処理ツールを使用して、必要なデータを引き出します。
または、インスタンスの数が少ない場合は、--output table
を使用して適切にフォーマットされたリストを取得します。
Aws cliに問い合わせて、必要なデータを取得できます。
次のことを行う必要があります。
Raw aws cliの代わりに、boto https://code.google.com/p/boto/ などのライブラリを使用することもできます。
Lambda関数にはセキュリティグループも含まれる場合があります。執筆時点では、AmazonはLambda関数で使用されるセキュリティグループの削除を防止していません。
私はこれを使いました:
aws lambda list-functions | jq -c '.Functions[] | {FunctionArn, SecurityGroups: (.VpcConfig.SecurityGroupIds[]? // null) }'
別の問題は、他のSecurityGroupsに依存するSecurityGroupsです。このコマンドを使用して隣接リスト(直接の依存関係)を生成できます。
aws ec2 describe-security-groups --query "SecurityGroups[*].{ID:GroupId,Name:GroupName,dependentOnSGs:IpPermissions[].UserIdGroupPairs[].GroupId}
理想的には、この結果を使用して推移的閉包(すべての依存関係、直接および間接)を見つける必要があります。残念ながら、私は推移的クロージャutilを見つけることができませんでした。
このPythonツールを使用して、セキュリティグループとその依存関係を一覧表示できます。また、未使用の(廃止された)セキュリティグループを一覧表示することもできます。
これは、質問が最初に尋ねられたときは利用できなかった可能性がありますが、セキュリティグループのAWSコンソールに移動して問題のグループを選択し、[削除アクション]を選択すると、結果として表示されるプロンプトで、それが参照されているかどうかと、 。
マークされた回答は正しくありません。依存関係違反が発生している場合は、IPアクセス許可(入力)構成で別のセキュリティグループが参照されている可能性があります。ソースとしてセキュリティグループを含むすべての上りアクセス許可を取り消す必要があります。