创建并初始化 CreateSecurityGroupRequest 实例。使用 withGroupName 方法设置安全组名称,使用 w ith Description 方法设置安全组描述,如下所示:

CreateSecurityGroupRequest csgr = new CreateSecurityGroupRequest(); csgr.withGroupName("JavaSecurityGroup").withDescription("My security group");

安全组名称在您初始化 Amazon EC2 客户端的 AWS 区域内必须是唯一的。必须为安全组的名称和描述使用 US-ASCII 字符。

将请求对象作为参数传递给 createSecurityGroup 方法。该方法返回一个 CreateSecurityGroupResult 对象,如下所示:

CreateSecurityGroupResult createSecurityGroupResult = amazonEC2Client.createSecurityGroup(csgr);

如果您尝试创建与现有安全组具有相同名称的安全组, createSecurityGroup 引发异常。

默认情况下,新的安全组不允许任何入站流量进入您的 Amazon EC2 实例。要允许入站流量,您必须对安全组传入明确地授权。您可以对单个 IP 地址、IP 地址范围、特定协议以及 TCP/UDP 端口的传入进行授权。

创建并初始化 IpPermission 实例。使用 w ithIPv4Ranges 方法设置要授权其进入的 IP 地址范围,然后使用该 withIpProtocol 方法设置 IP 协议。使用 withFromPort withToPort 方法指定要授权其入口的端口范围,如下所示:

IpPermission ipPermission = new IpPermission(); IpRange ipRange1 = new IpRange().withCidrIp("111.111.111.111/32"); IpRange ipRange2 = new IpRange().withCidrIp("150.150.150.150/32"); ipPermission.withIpv4Ranges(Arrays.asList(new IpRange[] {ipRange1, ipRange2})) .withIpProtocol("tcp") .withFromPort(22) .withToPort(22);

必须满足在 IpPermission 对象中指定的所有条件,才能允许传入。

使用 CIDR 表示法指定 IP 地址。如果指定 TCP/UDP 协议,必须提供源端口和目标端口。仅在指定 TCP 或 UDP 时才能授权端口。

创建并初始化 AuthorizeSecurityGroupIngressRequest 实例。使用 withGroupName 方法指定安全组名称,并将之前初始化的 IpPermission 对象传递给该 withIpPermissions 方法,如下所示:

AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest = new AuthorizeSecurityGroupIngressRequest(); authorizeSecurityGroupIngressRequest.withGroupName("JavaSecurityGroup")