Вы можете получить список групп безопасности с describeSecurityGroup
на объекте AmazonEC2
клиента (чей экземпляр называется ec2
в моем примере).
public List<SecurityGroup> findAllSecurityGroups() {
DescribeSecurityGroupsRequest securityRequest = new DescribeSecurityGroupsRequest();
DescribeSecurityGroupsResult securityDescription = ec2.describeSecurityGroups(securityRequest);
return securityDescription.getSecurityGroups();
}
После того, как у Вас есть securityGroup
, вы можете позвонить securityGroup.getIpPermissions()
, который дает вам List<IpPermission>
.
Подробнее об Javadoc, в частности о IpPermission.
Чтобы дать Вам идею, toString()
представления IpPermission
правила позволяет сервер, чтобы связаться с портом 80 по любому IP, является следующим:
{IpProtocol: tcp, FromPort: 80, ToPort: 80, IpRanges: [0.0.0.0/0], }
Если вы заинтересованы только в частности, группа безопасности, вы можете использовать:
public SecurityGroup findOneSecurityGroupByName(String securityGroupName) {
DescribeSecurityGroupsRequest securityRequest = new DescribeSecurityGroupsRequest();
securityRequest.setGroupNames(Arrays.asList(securityGroupName));
DescribeSecurityGroupsResult securityDescription = ec2.describeSecurityGroups(securityRequest);
return securityDescription.getSecurityGroups().get(0);
}
Некоторые базовые интеграционные тесты, которые должны работать в любой учетной записи Amazon EC2.
@Test
public void findsAllSecurityGroups() {
assertThat(firewall.findAllSecurityGroups().size(), is(greaterThan(0)));
}
@Test
public void findsDefaultSecurityGroupByName() {
SecurityGroup defaultGroup = firewall.findOneSecurityGroupByName("default");
assertThat(defaultGroup.getGroupName(), is(equalTo("default")));
}
@Test(expected = AmazonServiceException.class)
public void throwsExceptionWhenfindingNonExistentSecurityGroup() {
firewall.findOneSecurityGroupByName("inexistent");
}
Где firewall
является экземпляром класса, который содержит findOneSecurityGroupByName
и findsAllSecurityGroups
.