List of usage examples for com.amazonaws.services.ec2.model DescribeSecurityGroupsRequest withGroupNames
public DescribeSecurityGroupsRequest withGroupNames(java.util.Collection<String> groupNames)
[EC2-Classic and default VPC only] The names of the security groups.
From source file:com.appdynamics.connectors.AWSConnector.java
License:Apache License
private void validateAndConfigureSecurityGroups(List<String> securityGroupNames, AmazonEC2 connector) throws ConnectorException { DescribeSecurityGroupsRequest describeSecurityGroupsRequest = new DescribeSecurityGroupsRequest(); DescribeSecurityGroupsResult describeSecurityGroupsResult = connector .describeSecurityGroups(describeSecurityGroupsRequest.withGroupNames(securityGroupNames)); String controllerIp = "0.0.0.0/0"; int agentPort = controllerServices.getDefaultAgentPort(); // check if any one of the security group // already has agent port and controller ip List<SecurityGroup> securityGroups = describeSecurityGroupsResult.getSecurityGroups(); for (SecurityGroup securityGroup : securityGroups) { List<IpPermission> ipPermissions = securityGroup.getIpPermissions(); for (IpPermission permission : ipPermissions) { if (permission.getIpRanges().contains(controllerIp) && (agentPort >= permission.getFromPort() && agentPort <= permission.getToPort())) { return; }//from w w w.jav a2 s. c o m } } String securityGroup = null; if (securityGroups.contains(Utils.DEFAULT_SECURITY_GROUP)) { securityGroup = Utils.DEFAULT_SECURITY_GROUP; } else { securityGroup = securityGroups.get(0).getGroupName(); } IpPermission ipPermission = new IpPermission(); ipPermission.setFromPort(agentPort); ipPermission.setToPort(agentPort); ipPermission.setIpProtocol("tcp"); ipPermission.setIpRanges(Lists.newArrayList(controllerIp)); connector.authorizeSecurityGroupIngress( new AuthorizeSecurityGroupIngressRequest(securityGroup, Lists.newArrayList(ipPermission))); }
From source file:com.netflix.simianarmy.client.aws.AWSClient.java
License:Apache License
/** * Describe a set of security groups./*ww w .jav a2 s.com*/ * * @param groupNames the names of the groups to find * @return a list of matching groups */ public List<SecurityGroup> describeSecurityGroups(String... groupNames) { AmazonEC2 ec2Client = ec2Client(); DescribeSecurityGroupsRequest request = new DescribeSecurityGroupsRequest(); if (groupNames == null || groupNames.length == 0) { LOGGER.info(String.format("Getting all EC2 security groups in region %s.", region)); } else { LOGGER.info(String.format("Getting EC2 security groups for %d names in region %s.", groupNames.length, region)); request.withGroupNames(groupNames); } DescribeSecurityGroupsResult result; try { result = ec2Client.describeSecurityGroups(request); } catch (AmazonServiceException e) { if (e.getErrorCode().equals("InvalidGroup.NotFound")) { LOGGER.info("Got InvalidGroup.NotFound error for security groups; returning empty list"); return Collections.emptyList(); } throw e; } List<SecurityGroup> securityGroups = result.getSecurityGroups(); LOGGER.info(String.format("Got %d EC2 security groups in region %s.", securityGroups.size(), region)); return securityGroups; }
From source file:com.netflix.spinnaker.clouddriver.aws.security.DefaultAWSAccountInfoLookup.java
License:Apache License
@Override public String findAccountId() { AmazonEC2 ec2 = amazonClientProvider.getAmazonEC2(credentialsProvider, AmazonClientProvider.DEFAULT_REGION); try {// w w w .j a va 2 s . c o m List<Vpc> vpcs = ec2.describeVpcs().getVpcs(); boolean supportsByName = false; if (vpcs.isEmpty()) { supportsByName = true; } else { for (Vpc vpc : vpcs) { if (vpc.getIsDefault()) { supportsByName = true; break; } } } DescribeSecurityGroupsRequest request = new DescribeSecurityGroupsRequest(); if (supportsByName) { request.withGroupNames(DEFAULT_SECURITY_GROUP_NAME); } DescribeSecurityGroupsResult result = ec2.describeSecurityGroups(request); for (SecurityGroup sg : result.getSecurityGroups()) { //if there is a vpcId or it is the default security group it won't be an EC2 cross account group if ((sg.getVpcId() != null && sg.getVpcId().length() > 0) || DEFAULT_SECURITY_GROUP_NAME.equals(sg.getGroupName())) { return sg.getOwnerId(); } } throw new IllegalArgumentException("Unable to lookup accountId with provided credentials"); } catch (AmazonServiceException ase) { if ("AccessDenied".equals(ase.getErrorCode())) { String message = ase.getMessage(); Matcher matcher = IAM_ARN_PATTERN.matcher(message); if (matcher.matches()) { return matcher.group(1); } } throw ase; } }