/// <summary>
        /// Creating a Security Group
        /// <para>For detailed information, see online documentation at: "http://apidocs.cloudfoundry.org/250/security_groups/creating_a_security_group.html"</para>
        /// </summary>
        public async Task <CreateSecurityGroupResponse> CreateSecurityGroup(CreateSecurityGroupRequest value)
        {
            UriBuilder uriBuilder = new UriBuilder(this.Client.CloudTarget);

            uriBuilder.Path = "/v2/security_groups";
            var client = this.GetHttpClient();

            client.Uri    = uriBuilder.Uri;
            client.Method = HttpMethod.Post;
            var authHeader = await BuildAuthenticationHeader();

            if (!string.IsNullOrWhiteSpace(authHeader.Key))
            {
                if (client.Headers.ContainsKey(authHeader.Key))
                {
                    client.Headers[authHeader.Key] = authHeader.Value;
                }
                else
                {
                    client.Headers.Add(authHeader);
                }
            }
            client.ContentType = "application/x-www-form-urlencoded";
            client.Content     = ((string)JsonConvert.SerializeObject(value)).ConvertToStream();
            var expectedReturnStatus = 201;
            var response             = await this.SendAsync(client, expectedReturnStatus);

            return(Utilities.DeserializeJson <CreateSecurityGroupResponse>(await response.ReadContentAsStringAsync()));
        }
Example #2
0
        /// <summary>
        /// 创建防火墙组
        /// </summary>
        /// <param name="requestParams">请求参数.</param>
        /// <returns>返回对象<see cref="UCloudSDK.Models.CreateSecurityGroupResponse"/></returns>
        public CreateSecurityGroupResponse CreateSecurityGroup(CreateSecurityGroupRequest requestParams)
        {
            var request = new RestRequest(Method.GET);

            request.AddUObject(requestParams);
            return(Execute <CreateSecurityGroupResponse>(request));
        }
        private static void CreateSecurityGroup(VpcClient client)
        {
            CreateSecurityGroupRequest req = new CreateSecurityGroupRequest
            {
                Body = new CreateSecurityGroupRequestBody
                {
                    SecurityGroup = new CreateSecurityGroupOption
                    {
                        Name  = "test-security-group",
                        VpcId = "c11800b4-9ae2-40fb-b8c6-51242fbb300c"
                    }
                }
            };

            try
            {
                var resp = client.CreateSecurityGroup(req);
                Console.WriteLine(resp.SecurityGroup.Id);
                Console.WriteLine(resp.HttpStatusCode);
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Example #4
0
        private void createSecurityGroup()
        {
            try
            {
                CreateSecurityGroupRequest requestSecurirtyGroup = new CreateSecurityGroupRequest();
                requestSecurirtyGroup.GroupName        = _securityGroups;
                requestSecurirtyGroup.GroupDescription = jwSecurityGroupDescription;
                CreateSecurityGroupResponse responseSecurityGroup = _service.CreateSecurityGroup(requestSecurirtyGroup);

                AuthorizeSecurityGroupIngressRequest requestAuthz = new AuthorizeSecurityGroupIngressRequest();
                requestAuthz.GroupName  = _securityGroups;
                requestAuthz.IpProtocol = "tcp";
                requestAuthz.CidrIp     = "0.0.0.0/0";

                decimal[] ports = { 80, 443, 1443, 3389 };
                foreach (decimal port in ports)
                {
                    requestAuthz.FromPort = port;
                    requestAuthz.ToPort   = port;
                    AuthorizeSecurityGroupIngressResponse responseAuthz = _service.AuthorizeSecurityGroupIngress(requestAuthz);
                }
            }
            catch (AmazonEC2Exception ex)
            {
                throw new Exception("Caught Exception: " + ex.XML);
            }
        }
Example #5
0
        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;
            }
        }
Example #6
0
        /// <summary>
        /// 创建安全组
        /// </summary>
        public CreateSecurityGroupResponse CreateSecurityGroup(CreateSecurityGroupRequest createSecurityGroupRequest)
        {
            Dictionary <string, string> urlParam = new Dictionary <string, string>();
            string              urlPath          = HttpUtils.AddUrlPath("/v3/{project_id}/vpc/security-groups", urlParam);
            SdkRequest          request          = HttpUtils.InitSdkRequest(urlPath, "application/json", createSecurityGroupRequest);
            HttpResponseMessage response         = DoHttpRequestSync("POST", request);

            return(JsonUtils.DeSerialize <CreateSecurityGroupResponse>(response));
        }
Example #7
0
        /// <summary>
        /// 创建安全组
        /// </summary>
        public async Task <CreateSecurityGroupResponse> CreateSecurityGroupAsync(CreateSecurityGroupRequest createSecurityGroupRequest)
        {
            Dictionary <string, string> urlParam = new Dictionary <string, string>();
            string              urlPath          = HttpUtils.AddUrlPath("/v1/{project_id}/security-groups", urlParam);
            SdkRequest          request          = HttpUtils.InitSdkRequest(urlPath, "application/json;charset=UTF-8", createSecurityGroupRequest);
            HttpResponseMessage response         = await DoHttpRequestAsync("POST", request);

            return(JsonUtils.DeSerialize <CreateSecurityGroupResponse>(response));
        }
Example #8
0
        // #############################################################################################

        SecurityGroup CreateSecurityGroup(IAmazonEC2 ec2, string secGroupName, string vpc)
        {
            SecurityGroup MySG;

            Amazon.EC2.Model.Filter nameFilter = new Amazon.EC2.Model.Filter();
            nameFilter.Name   = "group-name";
            nameFilter.Values = new List <string>()
            {
                secGroupName
            };

            var describeRequest = new DescribeSecurityGroupsRequest();

            describeRequest.Filters.Add(nameFilter);
            var describeResponse = new DescribeSecurityGroupsResponse();

            describeResponse = ec2.DescribeSecurityGroups(describeRequest);

            if (describeResponse.SecurityGroups.Count > 0)
            {
                //return describeResponse.SecurityGroups[0];
                MySG = describeResponse.SecurityGroups[0];
                MySG = AddSGIPrermissions(ec2, MySG);
                return(MySG);
            }


            var createRequest = new CreateSecurityGroupRequest();

            createRequest.GroupName   = secGroupName;
            createRequest.VpcId       = vpc;
            createRequest.Description = "My sample security group for EC2-Classic";

            var createResponse = new CreateSecurityGroupResponse();
            //createResponse = CreateSecurityGroupResponse(createRequest);
            var Groups = new List <string>()
            {
                createResponse.GroupId
            };


            createResponse = ec2.CreateSecurityGroup(createRequest);

            MySG = new SecurityGroup();

            MySG.GroupId = createResponse.GroupId;
            MySG.VpcId   = vpc;

            MySG = AddSGIPrermissions(ec2, MySG);


            return(MySG);

            // ec2.des
        }
Example #9
0
        private SecurityGroup CreateSecurityGroup()
        {
            var request = new CreateSecurityGroupRequest(securityGroupName, "Maintained by Updraft")
            {
                VpcId = vpcId
            };

            client.CreateSecurityGroup(request);

            return(GetSecurityGroup());
        }
Example #10
0
        public string CreateSecurityGroup(string groupName, string description, string vpcId)
        {
            var createSecurityGroupRequest = new CreateSecurityGroupRequest
            {
                Description = description,
                GroupName   = groupName,
                VpcId       = vpcId
            };
            var response = _ec2Client.CreateSecurityGroup(createSecurityGroupRequest);

            return(response.GroupId);
        }
Example #11
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);
                }
            }
        }
Example #12
0
        public SecurityGroup CreateSecurityGroup()
        {
            //Setup a new security group
            var newSGRequest = new CreateSecurityGroupRequest()
            {
                GroupName   = Configuration.SecurityGroupName,
                Description = Configuration.SecurityGroupDescription,
                VpcId       = Configuration.VpcId
            };
            var csgResponse = EC2Client.CreateSecurityGroup(newSGRequest);

            Console.WriteLine("Created new security group: " + csgResponse.GroupId);

            //Get the new security group
            var newSgRequest = new DescribeSecurityGroupsRequest()
            {
                GroupIds = new[] { csgResponse.GroupId }.ToList()
            };
            var newSgResponse = EC2Client.DescribeSecurityGroups(newSgRequest);

            var securityGroup = newSgResponse.SecurityGroups[0];

            //Setup permissions for the security group
            var ipRanges    = Configuration.SecurityGroupIpRanges.Split(',').ToList();
            var permissions = Configuration.SecurityGroupIpPermissions.Split(',');

            var ipPermissions = permissions.Select(p =>
            {
                var protocol = p.Substring(0, 3);
                var port     = int.Parse(p.Substring(3));
                return(new IpPermission()
                {
                    IpProtocol = protocol,
                    FromPort = port,
                    ToPort = port,
                    IpRanges = ipRanges
                });
            });

            //Set the permissions on the security group
            var ingressRequest = new AuthorizeSecurityGroupIngressRequest();

            ingressRequest.GroupId       = securityGroup.GroupId;
            ingressRequest.IpPermissions = ipPermissions.ToList();

            var ingressResponse = EC2Client.AuthorizeSecurityGroupIngress(ingressRequest);

            Console.WriteLine("Added permissions to security group: " + ingressResponse.HttpStatusCode);

            return(securityGroup);
        }
Example #13
0
 internal void CreateSecurityGroup(string securityGroupName)
 {
     try
     {
         CreateSecurityGroupRequest request = new CreateSecurityGroupRequest()
         {
             Name        = securityGroupName,
             Description = "My security group"
         };
         var response = _client.CreateSecurityGroup(request);
         WriteLog("Created Security Group {0}, Id {1}, Description \"{2}\"", response.Name, response.Id, response.Description);
     }
     catch (Exception e)
     {
         WriteLog("Exception during CreateSecurityGroup {0}", e);
     }
 }
        /// <summary>
        /// Creating a Security Group
        /// <para>For detailed information, see online documentation at: "http://apidocs.cloudfoundry.org/250/security_groups/creating_a_security_group.html"</para>
        /// </summary>
        public async Task <CreateSecurityGroupResponse> CreateSecurityGroup(CreateSecurityGroupRequest value)
        {
            UriBuilder uriBuilder = new UriBuilder(this.Client.CloudTarget);

            uriBuilder.Path = "/v2/security_groups";
            var client = this.GetHttpClient();

            client.Uri    = uriBuilder.Uri;
            client.Method = HttpMethod.Post;


            client.Content = ((string)JsonConvert.SerializeObject(value)).ConvertToStream();
            var expectedReturnStatus = 201;
            var response             = await this.SendAsync(client, expectedReturnStatus);

            return(Utilities.DeserializeJson <CreateSecurityGroupResponse>(await response.Content.ReadAsStringAsync()));
        }
        private static string CreateSecurityGroup(IAmazonEC2 client, string vpcId, string groupName)
        {
            // Create a new empty group
            var newSgRequest = new CreateSecurityGroupRequest()
            {
                GroupName   = groupName,
                Description = "Security group for AWS Talk",
                VpcId       = vpcId
            };

            // Get a handle to the newly created group
            var newSgResponse = client.CreateSecurityGroup(newSgRequest);
            var groups        = new List <string>()
            {
                newSgResponse.GroupId
            };
            var createdSgRequest = new DescribeSecurityGroupsRequest()
            {
                GroupIds = groups
            };
            var           createdSgResponse = client.DescribeSecurityGroups(createdSgRequest);
            SecurityGroup theNewGroup       = createdSgResponse.SecurityGroups[0];

            // Add permissions to the group
            var ingressRequest = new AuthorizeSecurityGroupIngressRequest();

            ingressRequest.GroupId = theNewGroup.GroupId;
            ingressRequest.IpPermissions.Add(new IpPermission()
            {
                IpProtocol = "tcp", FromPort = 3389, ToPort = 3389, IpRanges = new List <string>()
                {
                    "0.0.0.0/0"
                }
            });                                                                                                                                                         // RDP
            ingressRequest.IpPermissions.Add(new IpPermission()
            {
                IpProtocol = "tcp", FromPort = 9999, ToPort = 9999, IpRanges = new List <string>()
                {
                    "0.0.0.0/0"
                }
            });                                                                                                                                                         // Worker API

            client.AuthorizeSecurityGroupIngress(ingressRequest);

            return(newSgResponse.GroupId);
        }
Example #16
0
        public override Result Execute(ConDepSettings settings, CancellationToken token)
        {
            var client  = new AmazonEC2Client();
            var request = new CreateSecurityGroupRequest
            {
                Description = _description,
                GroupName   = _groupName,
                VpcId       = _vpcId
            };

            var response = client.CreateSecurityGroup(request);
            var result   = response.HttpStatusCode == HttpStatusCode.Created ? Result.SuccessChanged() : Result.SuccessUnChanged();

            result.Data.HttpStatusCode = response.HttpStatusCode;
            result.Data.GroupId        = response.GroupId;
            return(result);
        }
Example #17
0
        public void CreateSecurityGroupTest()
        {
            NList rules = new NList();
            var   rule  = new SecurityGroupRule
            {
                Proto    = Proto.TCP.ToString(),
                Action   = RuleAction.ACCEPT.ToString(),
                Src_ip   = "0.0.0.0/0",
                Dst_port = "3389",
                Priority = (int)Priority.Low
            };

            rules.Add(rule.ToString());
            var entity   = new CreateSecurityGroupRequest(Config.region, "icyfre", "ICCY", rules);
            var response = unet.CreateSecurityGroup(entity);

            Assert.AreEqual(response.RetCode, 0);
        }
        public async Task CreateSecurityGroup()
        {
            _context.Logger.WriteLine("CreateSecurityGroup");

            var vpcId = await GetVpcId();

            var request = new CreateSecurityGroupRequest
            {
                VpcId       = vpcId,
                Description = $"{_groupName} Security Group",
                GroupName   = _groupName
            };

            var response = await _client.CreateSecurityGroupAsync(request);

            await AddInboundRules(response.GroupId);
            await AddOutboundRules(response.GroupId);
        }
Example #19
0
        public SecurityGroup Ec2SecurityGroup(string secGroupName = DefaultSecurityGroup)
        {
            Filter nameFilter = new Filter();

            nameFilter.Name   = "group-name";
            nameFilter.Values = new List <string>()
            {
                secGroupName
            };

            var describeRequest = new DescribeSecurityGroupsRequest();

            describeRequest.Filters.Add(nameFilter);
            var describeResponse = ec2Client.DescribeSecurityGroups(describeRequest);

            if (describeResponse.SecurityGroups.Count > 0)
            {
                return(describeResponse.SecurityGroups[0]);
            }

            // Create the security group
            var createRequest = new CreateSecurityGroupRequest();

            createRequest.GroupName   = secGroupName;
            createRequest.Description = "My sample security group for EC2-Classic";

            var createResponse = ec2Client.CreateSecurityGroup(createRequest);

            var Groups = new List <string>()
            {
                createResponse.GroupId
            };

            describeRequest = new DescribeSecurityGroupsRequest()
            {
                GroupIds = Groups
            };
            describeResponse = ec2Client.DescribeSecurityGroups(describeRequest);
            return(describeResponse.SecurityGroups[0]);
        }
Example #20
0
        public void TestCreateSecurityGroupRequest()
        {
            string json = @"{
  ""name"": ""my_super_sec_group"",
  ""rules"": [
    {
      ""protocol"": ""icmp"",
      ""destination"": ""0.0.0.0/0"",
      ""type"": 0,
      ""code"": 1
    },
    {
      ""protocol"": ""tcp"",
      ""destination"": ""0.0.0.0/0"",
      ""ports"": ""2048-3000"",
      ""log"": true
    },
    {
      ""protocol"": ""udp"",
      ""destination"": ""0.0.0.0/0"",
      ""ports"": ""53, 5353""
    },
    {
      ""protocol"": ""all"",
      ""destination"": ""0.0.0.0/0"",
      ""description"": ""This rule allows access to all ips and protocols""
    }
  ]
}";

            CreateSecurityGroupRequest request = new CreateSecurityGroupRequest();

            request.Name  = "my_super_sec_group";
            request.Rules = Array.ConvertAll(TestUtil.GetJsonArray(@"[{""protocol"":""icmp"",""destination"":""0.0.0.0/0"",""type"":0,""code"":1},{""protocol"":""tcp"",""destination"":""0.0.0.0/0"",""ports"":""2048-3000"",""log"":true},{""protocol"":""udp"",""destination"":""0.0.0.0/0"",""ports"":""53, 5353""},{""protocol"":""all"",""destination"":""0.0.0.0/0"",""description"":""This rule allows access to all ips and protocols""}]"), (p => (Dictionary <string, dynamic>)p));

            string result = JsonConvert.SerializeObject(request, Formatting.None);

            Assert.AreEqual(TestUtil.ToUnformatedJsonString(json), result);
        }
        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++;
            }
        }
        public void TestCreateSecurityGroupRequest()
        {
            string json = @"{
  ""name"": ""my_super_sec_group"",
  ""rules"": [
    {
      ""protocol"": ""icmp"",
      ""destination"": ""0.0.0.0/0"",
      ""type"": 0,
      ""code"": 1
    },
    {
      ""protocol"": ""tcp"",
      ""destination"": ""0.0.0.0/0"",
      ""ports"": ""2048-3000"",
      ""log"": true
    },
    {
      ""protocol"": ""udp"",
      ""destination"": ""0.0.0.0/0"",
      ""ports"": ""53, 5353""
    },
    {
      ""protocol"": ""all"",
      ""destination"": ""0.0.0.0/0""
    }
  ]
}";

            CreateSecurityGroupRequest request = new CreateSecurityGroupRequest();

            request.Name = "my_super_sec_group";
            request.Rules = Array.ConvertAll(TestUtil.GetJsonArray(@"[{""protocol"":""icmp"",""destination"":""0.0.0.0/0"",""type"":0,""code"":1},{""protocol"":""tcp"",""destination"":""0.0.0.0/0"",""ports"":""2048-3000"",""log"":true},{""protocol"":""udp"",""destination"":""0.0.0.0/0"",""ports"":""53, 5353""},{""protocol"":""all"",""destination"":""0.0.0.0/0""}]"), (p => (Dictionary<string, dynamic>)p));

            string result = JsonConvert.SerializeObject(request, Formatting.None);
            Assert.AreEqual(TestUtil.ToUnformatedJsonString(json), result);
        }
Example #23
0
        public bool load_security_group_id()
        {
            write_log(region + " のセキュリティグループを確認しています。");
            try
            {
                var client    = get_client();
                var query_req = new DescribeSecurityGroupsRequest();
                query_req.Filters.Add(new Filter()
                {
                    Name = "tag-value", Values = new List <string>()
                    {
                        Helper.build_name(setting_, "sg")
                    }
                });
                var query_res = client.DescribeSecurityGroups(query_req);
                write_log("自 IPAddress を確認しています。");
                string ipaddress = Helper.get_remote_ipaddress() + "/32";
                if (query_res.SecurityGroups.Count != 0)
                {
                    security_group_id = query_res.SecurityGroups[0].GroupId;

                    foreach (var row in query_res.SecurityGroups[0].IpPermissions)
                    {
                        foreach (var row2 in row.IpRanges)
                        {
                            if (row2.Equals(ipaddress))
                            {
                                write_log(region + " のセキュリティグループは " + security_group_id + " です");
                                return(true);
                            }
                        }
                    }
                }
                else
                {
                    write_log(region + " にセキュリティグループを作成しています。");
                    var create_req = new CreateSecurityGroupRequest();
                    create_req.VpcId       = vpc_id;
                    create_req.GroupName   = "ingress_ssh-sg";
                    create_req.Description = "from specific ipaddress.";
                    var create_res = client.CreateSecurityGroup(create_req);
                    security_group_id = create_res.GroupId;
                    set_name_tag(client, security_group_id, Helper.build_name(setting_, "sg"));
                    write_log("セキュリティグループ " + security_group_id + " を作成しました。");
                }

                write_log("セキュリティグループ " + security_group_id + " に " + ipaddress + " を関連付けます。");
                IpPermission ipPermission_22 = new IpPermission();
                ipPermission_22.ToPort     = 22;
                ipPermission_22.FromPort   = 22;
                ipPermission_22.IpProtocol = "6";
                ipPermission_22.IpRanges.Add(ipaddress);

                IpPermission ipPermission_53556 = new IpPermission();
                ipPermission_53556.ToPort     = 53556;
                ipPermission_53556.FromPort   = 53556;
                ipPermission_53556.IpProtocol = "6";
                ipPermission_53556.IpRanges.Add(ipaddress);

                var authorize_req = new AuthorizeSecurityGroupIngressRequest();
                authorize_req.GroupId       = security_group_id;
                authorize_req.IpPermissions = new List <IpPermission>()
                {
                    ipPermission_22, ipPermission_53556
                };

                client.AuthorizeSecurityGroupIngress(authorize_req);
                set_name_tag(client, security_group_id, Helper.build_name(setting_, "sg"));
                write_log("セキュリティグループ " + security_group_id + " を作成しました。");
            }
            catch (Exception ex)
            {
                write_log("ERROR: " + ex.ToString());
                return(false);
            }
            return(true);
        }
Example #24
0
 internal void CreateSecurityGroup(string securityGroupName)
 {
     try
     {
         CreateSecurityGroupRequest request = new CreateSecurityGroupRequest()
         {
             Name = securityGroupName,
             Description = "My security group"
         };
         var response = _client.CreateSecurityGroup(request);
         WriteLog("Created Security Group {0}, Id {1}, Description \"{2}\"", response.Name, response.Id, response.Description);
     }
     catch (Exception e)
     {
         WriteLog("Exception during CreateSecurityGroup {0}", e);
     }
 }
Example #25
0
 /// <summary>
 /// Create Security Group
 /// </summary>
 /// <param name="request">Create Security Group  request</param>
 /// <returns>Create Security Group  Response from the service</returns>
 /// <remarks>
 /// The CreateSecurityGroup operation creates a new security group.
 /// Every instance is launched in a security group. If no security group is
 /// specified during launch, the instances are launched in the default security
 /// group. Instances within the same security group have unrestricted network
 /// access to each other. Instances will reject network access attempts from other
 /// instances in a different security group. As the owner of instances you can
 /// grant or revoke specific permissions using the AuthorizeSecurityGroupIngress
 /// and RevokeSecurityGroupIngress operations.
 ///
 /// </remarks>
 public CreateSecurityGroupResponse CreateSecurityGroup(CreateSecurityGroupRequest request)
 {
     return(Invoke <CreateSecurityGroupResponse>("CreateSecurityGroupResponse.xml"));
 }
Example #26
0
        // enumerate VPC security group and create a security group for EC2-VPC
        public void create_lunch_checkstatus_for_istance()
        {
            //Create an Amazon EC2 Client Using the the SDK
            var ec2Client = new AmazonEC2Client();
            // enumerate VPC security group
            string        secGroupName = "my-sample-sg-vpc";
            SecurityGroup mySG         = null;
            string        vpcID        = "vpc-7cdc5904";

            Amazon.EC2.Model.Filter vpcFilter = new Amazon.EC2.Model.Filter
            {
                Name   = "vpc-id",
                Values = new List <string>()
                {
                    vpcID
                }
            };
            var dsgRequest = new DescribeSecurityGroupsRequest();

            dsgRequest.Filters.Add(vpcFilter);
            var dsgResponse            = ec2Client.DescribeSecurityGroups(dsgRequest);
            List <SecurityGroup> mySGs = dsgResponse.SecurityGroups;

            foreach (SecurityGroup item in mySGs)
            {
                Console.WriteLine("Existing security group: " + item.GroupId);
                if (item.GroupName == secGroupName)
                {
                    mySG = item;
                }
            }
            //create a security group for EC2-VPC
            if (mySG == null)
            {
                var newSGRequest = new CreateSecurityGroupRequest()
                {
                    GroupName   = secGroupName,
                    Description = "My sample security group for EC2-VPC",
                    VpcId       = vpcID
                };
                var csgResponse = ec2Client.CreateSecurityGroup(newSGRequest);
                Console.WriteLine();
                Console.WriteLine("New security group: " + csgResponse.GroupId);

                List <string> Groups = new List <string>()
                {
                    csgResponse.GroupId
                };
                var newSgRequest = new DescribeSecurityGroupsRequest()
                {
                    GroupIds = Groups
                };
                var newSgResponse = ec2Client.DescribeSecurityGroups(newSgRequest);
                mySG = newSgResponse.SecurityGroups[0];
            }
            //Create and initialize an IpPermission object.

            //iprange = the IP addresses of your local machine
            string ipRange = "0.0.0.0/0";

            List <string> ranges = new List <string>()
            {
                ipRange
            };

            var ipPermission = new IpPermission()
            {
                IpProtocol = "tcp",
                //The beginning and end of the port range. This example specifies a single port, 3389, which is used to communicate with Windows over RDP.
                //it should be changed if u launch a linux instance (use 22 insted )
                FromPort = 3389,
                ToPort   = 3389,
                IpRanges = ranges
            };
            //Create and initialize an AuthorizeSecurityGroupIngressRequest object.

            var ingressRequest = new AuthorizeSecurityGroupIngressRequest();

            ingressRequest.GroupId = mySG.GroupId;
            ingressRequest.IpPermissions.Add(ipPermission);
            //Pass the request object to the AuthorizeSecurityGroupIngress method, which returns an AuthorizeSecurityGroupIngressResponse object.
            var ingressResponse = ec2Client.AuthorizeSecurityGroupIngress(ingressRequest);

            Console.WriteLine("New RDP rule for: " + ipRange);

            //Create and initialize a network interface.for lunch enstance
            string subnetID = "subnet-048d6c59";

            List <string> groups = new List <string>()
            {
                mySG.GroupId
            };
            var eni = new InstanceNetworkInterfaceSpecification()
            {
                DeviceIndex = 0,
                SubnetId    = subnetID,
                Groups      = groups,
                AssociatePublicIpAddress = true
            };
            List <InstanceNetworkInterfaceSpecification> enis = new List <InstanceNetworkInterfaceSpecification>()
            {
                eni
            };

            string amiID       = "ami-06a0d33fc8d328de0";
            string keyPairName = "my-sample-key";

            var launchRequest = new RunInstancesRequest()
            {
                ImageId           = amiID,
                InstanceType      = "m3.large",
                MinCount          = 1,
                MaxCount          = 1,
                KeyName           = keyPairName,
                NetworkInterfaces = enis
            };

            //launch
            RunInstancesResponse launchResponse = ec2Client.RunInstances(launchRequest);

            List <String> instanceIds = new List <string>();

            foreach (Instance instance in launchResponse.Reservation.Instances)
            {
                Console.WriteLine(instance.InstanceId);
                instanceIds.Add(instance.InstanceId);
            }
            //check the status of the enstance
            var instanceRequest = new DescribeInstancesRequest();

            instanceRequest.InstanceIds = new List <string>();
            instanceRequest.InstanceIds.AddRange(instanceIds);
            var response = ec2Client.DescribeInstances(instanceRequest);

            Console.WriteLine(response.Reservations[0].Instances[0].State.Name);
        }
Example #27
0
        public void CreateSecurityGroupTest()
        {
            using (ShimsContext.Create())
            {
                MockClients clients = new MockClients();

                string json = @"{
  ""metadata"": {
    ""guid"": ""1dbeeb23-0f06-4ec4-946d-cc1d7b04047a"",
    ""url"": ""/v2/security_groups/f49f4785-5217-4dab-b776-714a02515ef3"",
    ""created_at"": ""2016-09-02T11:52:09Z"",
    ""updated_at"": null
  },
  ""entity"": {
    ""name"": ""my_super_sec_group"",
    ""rules"": [
      {
        ""protocol"": ""icmp"",
        ""destination"": ""0.0.0.0/0"",
        ""type"": 0,
        ""code"": 1
      },
      {
        ""protocol"": ""tcp"",
        ""destination"": ""0.0.0.0/0"",
        ""ports"": ""2048-3000"",
        ""log"": true
      },
      {
        ""protocol"": ""udp"",
        ""destination"": ""0.0.0.0/0"",
        ""ports"": ""53, 5353""
      },
      {
        ""protocol"": ""all"",
        ""destination"": ""0.0.0.0/0"",
        ""description"": ""This rule allows access to all ips and protocols""
      }
    ],
    ""running_default"": false,
    ""staging_default"": false,
    ""spaces_url"": ""/v2/security_groups/f49f4785-5217-4dab-b776-714a02515ef3/spaces""
  }
}";
                clients.JsonResponse = json;

                clients.ExpectedStatusCode = (HttpStatusCode)201;
                var cfClient = clients.CreateCloudFoundryClient();

                CreateSecurityGroupRequest value = new CreateSecurityGroupRequest();


                var obj = cfClient.SecurityGroups.CreateSecurityGroup(value).Result;


                Assert.AreEqual("1dbeeb23-0f06-4ec4-946d-cc1d7b04047a", TestUtil.ToTestableString(obj.EntityMetadata.Guid), true);
                Assert.AreEqual("/v2/security_groups/f49f4785-5217-4dab-b776-714a02515ef3", TestUtil.ToTestableString(obj.EntityMetadata.Url), true);
                Assert.AreEqual("2016-09-02T11:52:09Z", TestUtil.ToTestableString(obj.EntityMetadata.CreatedAt), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.EntityMetadata.UpdatedAt), true);
                Assert.AreEqual("my_super_sec_group", TestUtil.ToTestableString(obj.Name), true);
                Assert.AreEqual("false", TestUtil.ToTestableString(obj.RunningDefault), true);
                Assert.AreEqual("false", TestUtil.ToTestableString(obj.StagingDefault), true);
                Assert.AreEqual("/v2/security_groups/f49f4785-5217-4dab-b776-714a02515ef3/spaces", TestUtil.ToTestableString(obj.SpacesUrl), true);
            }
        }
Example #28
0
 internal void CreateSecurityGroup(string securityGroupName)
 {
     try
     {
         Client session = new Client(serviceUri, apiKey, secretKey);
         CreateSecurityGroupRequest request = new CreateSecurityGroupRequest()
         {
             Name = securityGroupName,
             Description = "My security group"
         };
         CreateSecurityGroupResponse response = session.CreateSecurityGroup(request);
         SecurityGroup group = response.SecurityGroup;
         WriteLog("Created Security Group {0}, Id {1}, Description \"{2}\"", group.Name, group.Id, group.Description);
     }
     catch (Exception e)
     {
         WriteLog("Exception during CreateSecurityGroup {0}", e);
     }
 }
Example #29
0
        public void CreateSecurityGroupTest()
        {
            using (ShimsContext.Create())
            {
                MockClients clients = new MockClients();

                string json = @"{
  ""metadata"": {
    ""guid"": ""8b30c621-401c-4d4a-9d98-f12ebff95d33"",
    ""url"": ""/v2/security_groups/8b30c621-401c-4d4a-9d98-f12ebff95d33"",
    ""created_at"": ""2016-02-09T10:21:57Z"",
    ""updated_at"": null
  },
  ""entity"": {
    ""name"": ""my_super_sec_group"",
    ""rules"": [
      {
        ""protocol"": ""icmp"",
        ""destination"": ""0.0.0.0/0"",
        ""type"": 0,
        ""code"": 1
      },
      {
        ""protocol"": ""tcp"",
        ""destination"": ""0.0.0.0/0"",
        ""ports"": ""2048-3000"",
        ""log"": true
      },
      {
        ""protocol"": ""udp"",
        ""destination"": ""0.0.0.0/0"",
        ""ports"": ""53, 5353""
      },
      {
        ""protocol"": ""all"",
        ""destination"": ""0.0.0.0/0""
      }
    ],
    ""running_default"": false,
    ""staging_default"": false,
    ""spaces_url"": ""/v2/security_groups/8b30c621-401c-4d4a-9d98-f12ebff95d33/spaces""
  }
}";
                clients.JsonResponse = json;

                clients.ExpectedStatusCode = (HttpStatusCode)201;
                var cfClient = clients.CreateCloudFoundryClient();

                CreateSecurityGroupRequest value = new CreateSecurityGroupRequest();


                var obj = cfClient.SecurityGroups.CreateSecurityGroup(value).Result;


                Assert.AreEqual("8b30c621-401c-4d4a-9d98-f12ebff95d33", TestUtil.ToTestableString(obj.EntityMetadata.Guid), true);
                Assert.AreEqual("/v2/security_groups/8b30c621-401c-4d4a-9d98-f12ebff95d33", TestUtil.ToTestableString(obj.EntityMetadata.Url), true);
                Assert.AreEqual("2016-02-09T10:21:57Z", TestUtil.ToTestableString(obj.EntityMetadata.CreatedAt), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.EntityMetadata.UpdatedAt), true);
                Assert.AreEqual("my_super_sec_group", TestUtil.ToTestableString(obj.Name), true);
                Assert.AreEqual("false", TestUtil.ToTestableString(obj.RunningDefault), true);
                Assert.AreEqual("false", TestUtil.ToTestableString(obj.StagingDefault), true);
                Assert.AreEqual("/v2/security_groups/8b30c621-401c-4d4a-9d98-f12ebff95d33/spaces", TestUtil.ToTestableString(obj.SpacesUrl), true);
            }
        }