0

ここでの動機は、AWS環境に構成のダンプを照会し、それをシリアル化してから、照会を再度実行して関連する変更を確認する方法を作成することです。

私は次のグループ識別子を持っています:

    private List<String> getSecurityGroups(InstanceNetworkInterface netInt) {
    List<String> result = new Vector<String>();

    List<GroupIdentifier> groups = netInt.getGroups();
    for(GroupIdentifier gi : groups) {
        result.add(gi.getGroupName());
    }

    return result;
}
4

1 に答える 1

1

クライアントオブジェクト(私の例ではそのインスタンスが呼び出されます)describeSecurityGroupでセキュリティグループリストを取得できます。AmazonEC2ec2

public List<SecurityGroup> findAllSecurityGroups() {
    DescribeSecurityGroupsRequest securityRequest = new DescribeSecurityGroupsRequest();
    DescribeSecurityGroupsResult securityDescription = ec2.describeSecurityGroups(securityRequest);
    return securityDescription.getSecurityGroups();
}

を取得したらsecurityGroup、を呼び出すことができます。securityGroup.getIpPermissions()これにより、が得られますList<IpPermission>

詳細、特にIpPermissionについては、Javadocを確認できます。

アイデアを与えるために、サーバーが任意のIPによってポート80で接続されることを許可するルールのtoString()表現は次のとおりです。IpPermission

{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);
}

いくつかの基本的な統合テスト。AmazonEC2アカウントで機能するはずです。

@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を含むクラスのインスタンスはどこにありますか。findOneSecurityGroupByNamefindsAllSecurityGroups

于 2012-12-11T23:00:17.227 に答える