web-dev-qa-db-fra.com

Comment déterminer les dépendances des groupes de sécurité AWS?

Amazon EC2 ne me laisse pas supprimer un groupe de sécurité, se plaignant que le groupe a toujours des dépendances. Comment puis-je trouver quelles sont ces dépendances?

aws ec2 describe-security-groups ne le dit pas.

51
user14645

Collez l'ID du groupe de sécurité dans la section "Interfaces réseau" d'EC2. Cela trouvera une utilisation sur EC2, EB, RDS, ELB.

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

65
Denys Stroebel

La meilleure façon de procéder dans la console AWS EC2 consiste à coller le nom du groupe de sécurité dans le champ de recherche de la section EC2-> Instances.

Toutes les instances associées au groupe de sécurité collé seront alors renseignées - ce seront les objets ec2 (dépendances).

Vous pouvez également exécuter cette recherche dans la section ELB et d'autres offres AWS qui utilisent des groupes de sécurité.

Si vous essayez de supprimer le groupe de sécurité, vous devrez soit `` changer le groupe de sécurité '' pour chaque instance (s'ils se trouvent dans un VPC), soit créer une AMI et relancer à l'aide d'un groupe de sécurité différent, puis supprimer l'ancienne instance (si utilisant EC2 classic)

J'espère que cela pourra aider-

10
Scott Moore

Vous devez regarder vos objets d'instance EC2, pas les groupes eux-mêmes:

$ aws ec2 describe-instances --output text

Ensuite, recherchez "sg- *" ou utilisez les outils de traitement de flux de texte Unix standard pour extraire les données dont vous avez besoin.

Sinon, si vous disposez d'un petit nombre d'instances, utilisez --output table pour une liste bien formatée.

8
EEAA

Vous pouvez interroger le aws cli pour obtenir les données souhaitées.

Vous devrez:

  • Liste de tous les groupes de sécurité à la recherche de références au groupe en question
  • Lister tous les EC2 et leurs groupes
  • Liste de tous les ELB et de leurs groupes
  • Lister tous les RDS et leurs groupes

Vous pouvez également utiliser des bibliothèques, comme boto https://code.google.com/p/boto/ au lieu du aws cli brut.

7
Drew Khoury

Les fonctions Lambda peuvent également avoir des groupes de sécurité. Au moment de la rédaction, Amazon n'empêche pas la suppression des groupes de sécurité utilisés par les fonctions Lambda.

J'ai utilisé ceci:

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

Un autre problème concerne les SecurityGroups qui dépendent d'autres SecurityGroups. On peut utiliser cette commande pour générer la liste d'adjacence (dépendances directes):

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

Idéalement, ce résultat devrait être utilisé pour trouver le fermeture transitive (toutes les dépendances, directes et indirectes). Malheureusement, je n'ai pas trouvé d'utilitaire de fermeture transitive.

4
karpada

Vous pouvez utiliser cet outil Python pour répertorier les groupes de sécurité avec leurs dépendances. Il permet également de répertorier les groupes de sécurité inutilisés (obsolètes):

https://github.com/mingbowan/sgdeps

3
Ryan Fisher

Cela n'était peut-être pas disponible lorsque la question a été posée à l'origine, mais si vous accédez à la console AWS pour les groupes de sécurité, sélectionnez le ou les groupes en question et sélectionnez l'action de suppression, l'invite résultante vous dira si elle est référencée et par quoi. .

1
shove

La réponse marquée est incorrecte. Si vous voyez une violation de dépendance, il est probable qu'un autre groupe de sécurité soit référencé dans votre configuration d'autorisations IP (Ingress). Vous devrez révoquer toutes les autorisations d'entrée qui contiennent des groupes de sécurité comme source.

0
MRW