Невозможно удалить группу безопасности: произошла ошибка (DependencyViolation) при вызове операции DeleteSecurityGroup - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь удалить группы безопасности, которые имеют 0 интерфейсов и не упоминаются в правиле входа какой-либо другой группы безопасности, использующей boto3. Но я получаю сообщение об ошибке: Произошла ошибка (DependencyViolation) при вызове операции DeleteSecurityGroup: у ресурса sg-XXYYZZ есть зависимый объект

Я хочу, чтобы код выводил список правил входа, относящихся к безопасности группа sg-XXYYZZ и удалите эти правила входа, используя boto3 , прежде чем я удаляю группу безопасности: response = ec2.delete_security_group( GroupId=sg, DryRun=False )

Я перечисляю правила входа, используя:

    for sg in final_del_list:
        response = ec2.describe_security_groups( GroupIds=[sg] )
        print( "\n\n Security Group:", sg )
        for res in response['SecurityGroups']:
            msg = "The Ingress rules are as follows: " if len(res['IpPermissions']) > 0 else "No ingress rules"
            print( msg )
            for ip in res['IpPermissions']:
                print( "IP Protocol: ", ip['IpProtocol'] )
                try:
                    print( "PORT: ", str( ip['FromPort'] ) )
                    for range in ip['IpRanges']:
                        print( "IP Ranges: ", range['CidrIp'] )
                except Exception:
                    print( "No value for ports and ip ranges available for this security group" )

Может кто-нибудь направить Как я могу перечислить безопасность, которая ссылается на sg-XXYYZZ в своем правиле входа или помочь мне решить ошибку

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Группы безопасности можно найти в списке UserIdGroupPairs

   response = ec2.describe_security_groups( GroupIds=[sg] )
    for res in response['SecurityGroups']:
        if len( res['IpPermissions'] ) > 0:
            for item in res['IpPermissions']:
                for sg in item['UserIdGroupPairs']:
                    sg_list.append( sg['GroupId'] )
0 голосов
/ 16 апреля 2020

Видя вашу ошибку: An error occurred (DependencyViolation) when calling the DeleteSecurityGroup operation: resource sg-XXYYZZ has a dependent object

Я могу предложить кое-что здесь, а не писать код на данный момент. 1. Вы не можете группировать безопасность, если она связана с любыми другими экземплярами, даже если экземпляр находится в остановленном состоянии. 2. Это может показаться бесхозной группой безопасности, но она может быть связана с другой группой безопасности, которая связана с экземпляром. Итак, вам нужно сначала отредактировать эту группу безопасности, затем только вы можете удалить указанную группу безопасности.

Я написал один такой скрипт в github , который может помочь вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...