public async Task <SecurityGroup> CreateSecurityGroupAsync(string secGroupName)
        {
            try
            {
                var newSGrequest = new CreateSecurityGroupRequest
                {
                    GroupName   = secGroupName,
                    Description = "My sample security group for EC2-Classic"
                };
                var response = await amazonEC2Client.CreateSecurityGroupAsync(newSGrequest);

                List <string> GroupId = new List <string>()
                {
                    response.GroupId
                };
                DescribeSecurityGroupsRequest securityGroupsRequest = new DescribeSecurityGroupsRequest()
                {
                    GroupIds = GroupId
                };
                var           securityGroupsResponse = amazonEC2Client.DescribeSecurityGroupsAsync(securityGroupsRequest);
                SecurityGroup securityGroup          = securityGroupsResponse.Result.SecurityGroups[0];

                return(securityGroup);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
0
        public async Task CopySecurityGroup(string sourceSgId, string targetSgName, string description)
        {
            var sReq = new DescribeSecurityGroupsRequest()
            {
                GroupIds = new List <string>()
                {
                    sourceSgId
                }
            };
            //client.va
            var sResp = await client.DescribeSecurityGroupsAsync(sReq);

            if (sResp.SecurityGroups.Count > 0)
            {
                var           sSG = sResp.SecurityGroups[0];
                SecurityGroup tSG;
                var           filters = new List <Filter>();
                var           filter  = new Filter("group-name", new List <string> {
                    targetSgName
                });
                filters.Add(filter);
                var tReq = new DescribeSecurityGroupsRequest()
                {
                    Filters = filters
                };
                var tResp = await client.DescribeSecurityGroupsAsync(tReq);

                if (tResp.SecurityGroups.Count > 0)
                {
                    tSG = tResp.SecurityGroups[0];
                    tSG.IpPermissions = sSG.IpPermissions;
                    var uRequest = new UpdateSecurityGroupRuleDescriptionsIngressRequest()
                    {
                        GroupId = tSG.GroupId
                    };
                    await client.UpdateSecurityGroupRuleDescriptionsIngressAsync(uRequest);
                }
                else
                {
                    var cReq = new CreateSecurityGroupRequest()
                    {
                        Description = description,
                        GroupName   = targetSgName,
                        VpcId       = sSG.VpcId
                    };
                    var cResp = await client.CreateSecurityGroupAsync(cReq);

                    AssignNameToResource(cResp.GroupId, targetSgName);
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// Initializes the Amazon EC2 client object and uses the
        /// CreateSecurityGroupAsync method to create the security group.
        /// </summary>
        public static async Task Main()
        {
            string vpcId          = "vpc-0e304cc1627062b88";
            string vpcDescription = "Sample security group";
            string groupName      = "sample-security-group";

            var client   = new AmazonEC2Client();
            var response = await client.CreateSecurityGroupAsync(new CreateSecurityGroupRequest
            {
                Description = vpcDescription,
                GroupName   = groupName,
                VpcId       = vpcId,
            });

            string groupId = response.GroupId;

            Console.WriteLine($"Successfully created security group: {groupName} with ID: {groupId}");
        }
        private static async Task GrantAccess(Permission permission, Region region)
        {
            //Specify a credentials
            var aws = new AmazonEC2Client("", "", RegionEndpoint.EUWest1);

            var batchCount = 0;

            foreach (var ipRangeBatch in region.IpRange.Batch(50))
            {
                var securityGroupCreateRequest = new CreateSecurityGroupRequest
                {
                    //Specify a VPC
                    VpcId = "",

                    GroupName   = $"Azure {permission.Name} {batchCount}",
                    Description =
                        $"An auto generated security group to allow azure {region.Name} datacenters access to {permission.Name}"
                };
                var securityGroupCreateResponse = await aws.CreateSecurityGroupAsync(securityGroupCreateRequest);

                var ingressRequest = new AuthorizeSecurityGroupIngressRequest
                {
                    GroupId       = securityGroupCreateResponse.GroupId,
                    IpPermissions = ipRangeBatch.Select(ip => new IpPermission
                    {
                        IpProtocol = permission.IpProtocol,
                        FromPort   = permission.FromPort,
                        ToPort     = permission.ToPort,
                        IpRanges   = new List <string> {
                            ip.Subnet
                        }
                    }).ToList()
                };

                var ingressResponse = await aws.AuthorizeSecurityGroupIngressAsync(ingressRequest);

                batchCount++;
            }
        }