Come determinare le dipendenze dei gruppi di sicurezza AWS?


46

Amazon EC2 non mi consente di eliminare un gruppo di sicurezza, lamentando che il gruppo ha ancora dipendenze. Come posso trovare quali sono queste dipendenze?

aws ec2 descrivono-gruppi-di sicurezza non dice.


La risposta non è giusta in questa domanda @MichaelHampton, anche se è contrassegnata come tale.
Kon

@konr Se ritieni che la domanda abbia bisogno di risposte migliori, puoi iniziare una taglia .
Michael Hampton

Risposte:


58

Incollare l'ID del gruppo di sicurezza nella sezione "Interfacce di rete" di EC2. Questo troverà utilizzo su EC2, EB, RDS, ELB.

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


10

Il modo migliore per farlo nella console AWS EC2 è incollare il nome del gruppo di sicurezza nel campo di ricerca nella sezione EC2-> Istanze.

Tutte le istanze associate al gruppo di sicurezza incollato verranno quindi popolate, ovvero gli oggetti ec2 (dipendenze).

Puoi anche eseguire questa ricerca nella sezione ELB e altre offerte AWS che utilizzano gruppi di sicurezza.

Se stai cercando di eliminare il gruppo di sicurezza, dovrai "cambiare il gruppo di sicurezza" per ogni istanza (se si trovano in un VPC) o creare un AMI e riavviare utilizzando un altro gruppo di sicurezza, quindi eliminare la vecchia istanza (se utilizzando EC2 classico)

Spero che aiuti-


8

È necessario esaminare gli oggetti dell'istanza EC2, non i gruppi stessi:

$ aws ec2 describe-instances --output text

Quindi cerca "sg- *" o usa gli strumenti standard di elaborazione del flusso di testo unix per estrarre i dati di cui hai bisogno.

In alternativa, se si dispone di un numero limitato di istanze, utilizzare --output tableper un elenco ben formattato.


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

Dato che un gruppo di sicurezza può fare riferimento ad altri gruppi di sicurezza, forse è necessario eseguire quella funzione in modo ricorsivo?
brendan,

1
È abbastanza incompleto. I gruppi di sicurezza possono essere utilizzati in molti luoghi oltre alle istanze EC2 - ELB, VPC, altri gruppi di sicurezza (come già menzionato @brendan) ecc.
Amos Shapira

@AmosShapira L'OP stava chiedendo specificamente di EC2. Se lo desideri, sei sempre libero di modificare la mia risposta per migliorarla.
SEE

@AmosShapira Ha risolto il problema riscontrato dall'OP. Non è necessario che le risposte SF siano una risposta esauriente ad ogni possibile situazione correlata.
SEE

7

È possibile interrogare il cli aws per ottenere i dati desiderati.

Dovrai:

  • Elencare tutti i gruppi di sicurezza che cercano riferimenti al gruppo in questione
  • Elencare tutti gli EC2 e i loro gruppi
  • Elencare tutti gli ELB e i loro gruppi
  • Elenca tutti gli RDS e i loro gruppi

Puoi anche utilizzare le librerie, come boto https://code.google.com/p/boto/ invece del raw aws cli.


4

Le funzioni Lambda possono anche avere gruppi di sicurezza. Al momento della scrittura, Amazon non impedisce l'eliminazione dei gruppi di sicurezza utilizzati dalle funzioni Lambda.

Ho usato questo:

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

2

Un altro problema sono i SecurityGroup che dipendono da altri SecurityGroup. Si può usare questo comando per generare l' elenco di adiacenza (dipendenze dirette):

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

Idealmente, questo risultato dovrebbe essere usato per trovare la chiusura Transitiva (tutte le dipendenze, dirette e indirette). Sfortunatamente, non sono riuscito a trovare un util di chiusura Transitive.


1

Questo potrebbe non essere stato disponibile al momento della domanda iniziale, ma se accedi alla Console AWS per i gruppi di sicurezza, seleziona i gruppi in questione e seleziona l'azione Elimina, il prompt risultante ti dirà se è referenziato e da cosa .



0

La risposta contrassegnata non è corretta. Se si riscontra una violazione delle dipendenze, è probabile che venga fatto riferimento a un altro gruppo di sicurezza nella configurazione delle autorizzazioni IP (Ingress). Sarà necessario revocare tutte le autorizzazioni di ingresso che contengono i gruppi di sicurezza come fonte.


Immagino che la domanda originale fosse cosa si riferiva a un gruppo di sicurezza. Ci sono cose che non sono interfacce di rete che fanno riferimento a gruppi di sicurezza (e alle loro porte di ingresso)? In caso contrario, l'elenco delle interfacce di rete è una buona risposta, no?
user14645

Sebbene ci sia un valore nel tuo punto, un riferimento a un gruppo di sicurezza non costituisce una violazione della dipendenza. È possibile eliminare un gruppo di sicurezza che non è collegato a nessuna ENI ma a cui fa riferimento in un altro gruppo di sicurezza. Una volta eseguita l'eliminazione, nella console verrà visualizzata una notifica "Hai nuove regole del gruppo di sicurezza non aggiornate" per indicare che in una regola è presente un vecchio riferimento a un gruppo di sicurezza inesistente. Ti fornirà quindi un collegamento ipertestuale "Visualizza regole non aggiornate" per modificare la situazione in seguito.
Denys Stroebel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.