読者です 読者をやめる 読者になる 読者になる

[AWS][EC2] セキュリティグループからSSHとRDPの接続設定を消す

タイトル通りですが、自分の持っている全てのセキュリティグループから、SSHとRDP(TCP22と3389ポート)の設定を消すコードです。

public class RemoveSSHandRDPSettings {

  static final List<Integer> targetPortList = Arrays.asList(22, 3389);

  public static void main(String[] args) throws Exception {
    System.out.println("start");
    AWSCredentials credentials = new PropertiesCredentials(new File(
        "AwsCredentials.properties"));
    AmazonEC2Client ec2 = new AmazonEC2Client(credentials);
    ec2.setRegion(Region.getRegion(Regions.AP_NORTHEAST_1));
    DescribeSecurityGroupsResult describeSecurityGroupsResult = ec2
        .describeSecurityGroups();
    for (SecurityGroup sg : describeSecurityGroupsResult
        .getSecurityGroups()) {
      for (IpPermission ip : sg.getIpPermissions()) {
        Integer fromPort = ip.getFromPort();
        if (fromPort != null && targetPortList.contains(fromPort)) {
          System.out.println("Remove:" + sg.getGroupId() + ":"
              + sg.getGroupName() + ":" + fromPort);
          RevokeSecurityGroupIngressRequest req = new RevokeSecurityGroupIngressRequest();
          req.setGroupId(sg.getGroupId());
          req.setIpPermissions(Arrays.asList(ip));
          ec2.revokeSecurityGroupIngress(req);
        }
      }
    }
    System.out.println("success");
  }
}