AWS Java SDK セキュリティグループに設定したIPアドレスの情報などをCSVにして出力するサンプル
Amazon Web Serviceのセキュリティグループの情報をJavaを使って取得します。
■pom.xml
<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk</artifactId> <version>1.9.0</version> </dependency>
Javaのサンプルは以下の通りです。
KeySettingsBeanとProxySettingsBeanは自作のクラスで、
KeySettingsBeanにはaccess keyとsecret keyの情報が、
ProxySettingsBeanにはプロキシの情報を詰め込みます。
private final Region REGION = Region.getRegion(Regions.AP_NORTHEAST_1); public void securityGroup2Csv(KeySettingsBean key, ProxySettingsBean proxy) { ClientConfiguration config = new ClientConfiguration(); config.setProxyHost(proxy.getProxyHost()); config.setProxyPort(proxy.getProxyPort()); config.setProxyUsername(proxy.getProxyUser()); config.setProxyPassword(proxy.getProxyPassword()); AWSCredentials credentials = new BasicAWSCredentials(key.getAccessKey(),key.getSecretKey()); AmazonEC2Client client = new AmazonEC2Client(credentials,config); client.setRegion(REGION); DescribeSecurityGroupsResult result = client.describeSecurityGroups(); List<SecurityGroup> groups = result.getSecurityGroups(); if (groups == null) { System.out.println("describe security groups result is null."); return; } System.out.println("★★★-------describe here-------★★★"); String sgName = null; for (SecurityGroup group : groups) { sgName = group.getGroupName(); String protocol = null; Integer fromPort = null; Integer toPort = null; List<String> ipRanges = null; List<IpPermission> ipList = group.getIpPermissionsEgress(); for (IpPermission ipPermission : ipList) { protocol = ipPermission.getIpProtocol(); fromPort = ipPermission.getFromPort(); toPort = ipPermission.getToPort(); ipRanges = ipPermission.getIpRanges(); for (String ip : ipRanges) { System.out.println(sgName + "," + protocol + "," + fromPort + "," + toPort + "," + ip); } } } }
このメソッドを実行すると、指定したリージョンのセキュリティグループの情報がCSVで表示されます。