Amazon EC2 セキュリティグループを作成する - AWS SDK for Java 1.x

AWS SDK for Java 1.x は 2024 年 7 月 31 日にメンテナンスモードに移行し、2025 年 12 月 31 end-of-support日に終了します。新機能、可用性の向上、セキュリティ更新プログラムを引き続き受信AWS SDK for Java 2.xするには、 に移行することをお勧めします。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EC2 セキュリティグループを作成する

警告

2022 年 8 月 15 日に EC2-Classic を廃止します。EC2-Classic から に移行することをお勧めしますVPC。詳細については、ブログ記事EC2「Classic-Classic Networking is Retiring — Here's How to Prepare 」を参照してください。

セキュリティグループ を作成します。これは、1 つ以上のEC2インスタンスのネットワークトラフィックを制御する仮想ファイアウォールとして機能します。デフォルトでは、 は、インバウンドトラフィックを許可しないセキュリティグループにインスタンスを Amazon EC2 関連付けます。EC2 インスタンスが特定のトラフィックを受け入れることを許可するセキュリティグループを作成できます。例えば、Linux インスタンスに接続する必要がある場合は、SSHトラフィックを許可するようにセキュリティグループを設定する必要があります。 Amazon EC2 コンソールまたは を使用してセキュリティグループを作成できます AWS SDK for Java。

EC2-Classic または EC2- で使用するセキュリティグループを作成しますVPC。EC2-Classic と EC2- の詳細についてはVPC、Linux インスタンス用 Amazon EC2 ユーザーガイドの「サポートされているプラットフォーム」を参照してください。

Amazon EC2 コンソールを使用してセキュリティグループを作成する方法の詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドのAmazon EC2 「セキュリティグループ」を参照してください。

  1. CreateSecurityGroupRequest インスタンスを作成して初期化します。withGroupName メソッドを使用してセキュリティグループ名を設定し、 withDescriptionメソッドを使用してセキュリティグループの説明を次のように設定します。

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

    セキュリティグループ名は、 Amazon EC2 クライアントを初期化する AWS リージョン内で一意である必要があります。セキュリティグループの名前と説明には US ASCII文字を使用する必要があります。

  2. リクエストオブジェクトを createSecurityGroupメソッドにパラメータとして渡します。メソッドは、次のようにCreateSecurityGroupResultオブジェクトを返します。

    CreateSecurityGroupResult createSecurityGroupResult = amazonEC2Client.createSecurityGroup(csgr);

    既存のセキュリティグループと同じ名前でセキュリティグループを作成しようとすると、createSecurityGroup によって例外がスローされます。

デフォルトでは、新しいセキュリティグループは Amazon EC2 インスタンスへのインバウンドトラフィックを許可しません。インバウンドトラフィックを許可するには、セキュリティグループの進入を明示的に承認する必要があります。個々の IP アドレス、IP アドレスの範囲、特定のプロトコル、および TCP/UDP ポートの進入を承認できます。

  1. IpPermission インスタンスを作成して初期化します。withIpv4Ranges メソッドを使用して、進入を許可する 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。

  2. AuthorizeSecurityGroupIngressRequest インスタンスを作成して初期化します。withGroupName メソッドを使用してセキュリティグループ名を指定し、前に初期化したIpPermissionオブジェクトをwithIpPermissions次のようにメソッドに渡します。

    AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest = new AuthorizeSecurityGroupIngressRequest(); authorizeSecurityGroupIngressRequest.withGroupName("JavaSecurityGroup") .withIpPermissions(ipPermission);
  3. 次のように、リクエストオブジェクトを authorizeSecurityGroupIngress メソッドに渡します。

    amazonEC2Client.authorizeSecurityGroupIngress(authorizeSecurityGroupIngressRequest);

    進入がすでに承認されている IP アドレスを使用して authorizeSecurityGroupIngress を呼び出すと、メソッドによって例外がスローされます。を呼び出す前に、新しいIpPermissionオブジェクトを作成して初期化し、さまざまな IPs、ポート、プロトコルの進入を承認しますAuthorizeSecurityGroupIngress

authorizeSecurityGroupIngress または authorizeSecurityGroupEgress メソッドを呼び出すたびに、ルールがセキュリティグループに追加されます。