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; } }
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); } } }
/// <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++; } }