/// <summary>
        /// Initializes the Amazon EC2 client object and then uses it to call
        /// the DeleteSecurityGroupAsync method to delete the security group.
        /// </summary>
        public static async Task Main()
        {
            string secGroupId = "sg-05c1b890f35c2c89e";
            string groupName  = "sample-security-group";

            // If your Amazon EC2 security grup is not defined in the same AWS
            // Region as the default user on your system, you need to supply
            // the AWS Region as a parameter to the client constructor.
            var client = new AmazonEC2Client();

            var request = new DeleteSecurityGroupRequest
            {
                GroupId   = secGroupId,
                GroupName = groupName,
            };

            var response = await client.DeleteSecurityGroupAsync(request);

            if (response.HttpStatusCode == System.Net.HttpStatusCode.OK)
            {
                Console.WriteLine($"Successfully deleted {groupName}.");
            }
            else
            {
                Console.WriteLine($"Could not delete {groupName}.");
            }
        }
예제 #2
0
        public async Task deleteSecurityGroupIPPermissionsAsync(string vpcId)
        {
            var describeResponse = await _ec2Client.DescribeSecurityGroupsAsync(new DescribeSecurityGroupsRequest {
                Filters = { new Filter("vpc-id", new List <string> {
                        vpcId
                    }) }
            });

            foreach (var group in describeResponse.SecurityGroups)
            {
                if (group.IpPermissions.Count != 0)
                {
                    await _ec2Client.RevokeSecurityGroupIngressAsync(new RevokeSecurityGroupIngressRequest
                    {
                        GroupId       = group.GroupId,
                        IpPermissions = group.IpPermissions
                    });
                }
                if (group.IpPermissionsEgress.Count != 0)
                {
                    await _ec2Client.RevokeSecurityGroupEgressAsync(new RevokeSecurityGroupEgressRequest {
                        GroupId       = group.GroupId,
                        IpPermissions = group.IpPermissionsEgress
                    });
                }
            }

            foreach (var group in describeResponse.SecurityGroups)
            {
                if (string.Compare(group.GroupName, "default") != 0)
                {
                    await _ec2Client.DeleteSecurityGroupAsync(new DeleteSecurityGroupRequest { GroupId = group.GroupId });
                }
            }
        }
예제 #3
0
        public Task <DeleteSecurityGroupResponse> DeleteSecurityGroupAsync(string group, CancellationToken cancellationToken = default(CancellationToken))
        {
            var groupId   = group.TrimStart("sg-").IsHex() ? group : null;
            var groupName = groupId == null ? group : null;

            return(_client.DeleteSecurityGroupAsync(new DeleteSecurityGroupRequest()
            {
                GroupId = groupId,
                GroupName = groupName,
            }, cancellationToken).EnsureSuccessAsync());
        }