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で表示されます。