

 AWS SDK for Java 1.x は 2025 年 12 月 31 日にend-of-supportしました。新しい機能、可用性の向上、セキュリティ更新のために、[AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html) に移行することをお勧めします。

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

# Amazon EC2 セキュリティグループを作成する
<a name="create-security-group"></a>

## EC2-Classic は廃止されます
<a name="retiringEC2Classic"></a>

**警告**  
2022 年 8 月 15 日に、EC2-Classic の提供を終了しｈます。EC2-Classic は、VPC への移行をお勧めします。詳細については、ブログ記事[EC2-Classic-Classic Networking is Retiring – Here's How to Prepare](https://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/)を参照してください。

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

EC2-Classic または EC2-VPC で使用するセキュリティグループを作成します。EC2-Classic と EC2-VPC の詳細については、Amazon EC2 Linux インスタンス用ユーザーガイドの[サポートされるプラットフォーム](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)を参照してください。

Amazon EC2 コンソールを使用したセキュリティグループの作成の詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「[Amazon EC2 セキュリティグループ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)」を参照してください。

1. [CreateSecurityGroupRequest](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/CreateSecurityGroupRequest.html) インスタンスを作成し、初期化します。[ withGroupName](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/CreateSecurityGroupRequest.html#withGroupName-java.lang.String-) メソッドを使用してセキュリティグループの名前を設定し、[ withDescription](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/CreateSecurityGroupRequest.html#withDescription-java.lang.String-) メソッドを使用してセキュリティグループの説明を設定します。次に例を示します。

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

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

1. リクエストオブジェクトをパラメータとして [createSecurityGroup](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/AmazonEC2.html#createSecurityGroup-com.amazonaws.services.ec2.model.CreateSecurityGroupRequest-) メソッドに渡します。このメソッドは [ CreateSecurityGroupResult ](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/CreateSecurityGroupResult.html) オブジェクトを返します。次に例を示します。

   ```
   CreateSecurityGroupResult createSecurityGroupResult =
       amazonEC2Client.createSecurityGroup(csgr);
   ```

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

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

1. [IpPermission ](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/IpPermission.html) インスタンスを作成し、初期化します。[withIpv4Ranges](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/IpPermission.html#withIpv4Ranges-java.util.Collection-) メソッドを使用して、進入の承認対象となる IP アドレスの範囲を設定し、[withIpProtocol](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/IpPermission.html#withIpProtocol-java.lang.String-) メソッドを使用して、IP プロトコルを設定します。[withFromPort](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/IpPermission.html#withFromPort-java.lang.Integer-) メソッドと [withToPort](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/IpPermission.html#withToPort-java.lang.Integer-) メソッドを使用して、進入の承認対象となるポートの範囲を指定します。次に例を示します。

   ```
   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 を指定した場合のみです。

1. [ AuthorizeSecurityGroupIngressRequest](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/AuthorizeSecurityGroupEgressRequest.html) インスタンスを作成し、初期化します。`withGroupName` メソッドを使用して、セキュリティグループの名前を指定し、前に初期化した `IpPermission` オブジェクトを [withIpPermissions](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/model/AuthorizeSecurityGroupEgressRequest.html#withIpPermissions-com.amazonaws.services.ec2.model.IpPermission…​-) メソッドに渡します。次に例を示します。

   ```
   AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest =
       new AuthorizeSecurityGroupIngressRequest();
   
   authorizeSecurityGroupIngressRequest.withGroupName("JavaSecurityGroup")
                                       .withIpPermissions(ipPermission);
   ```

1. リクエストオブジェクトを [authorizeSecurityGroupIngress](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/AmazonEC2Client.html#authorizeSecurityGroupIngress-com.amazonaws.services.ec2.model.AuthorizeSecurityGroupIngressRequest-) メソッドに渡します。次に例を示します。

   ```
   amazonEC2Client.authorizeSecurityGroupIngress(authorizeSecurityGroupIngressRequest);
   ```

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

[authorizeSecurityGroupIngress](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/AmazonEC2Client.html#authorizeSecurityGroupIngress-com.amazonaws.services.ec2.model.AuthorizeSecurityGroupIngressRequest-) メソッドまたは [authorizeSecurityGroupEgress](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/ec2/AmazonEC2Client.html#authorizeSecurityGroupEgress-com.amazonaws.services.ec2.model.AuthorizeSecurityGroupEgressRequest-) メソッドを呼び出すと、セキュリティグループにルールが追加されます。