AWS Command Line Interface
ユーザーガイド

Amazon EC2 のセキュリティグループの作成、設定、および削除

基本的にファイアウォールとして動作する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのセキュリティグループを、進入と退出が可能なネットワークトラフィックを決めるルールとともに作成することができます。仮想プライベートクラウド (VPC) または EC2-Classic 共有フラットネットワークで使用するセキュリティグループを作成することができます。EC2-Classic と EC2-VPC の違いの詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドサポートされているプラットフォームを参照してください。

AWS Command Line Interface (AWS CLI) を使用して新しいセキュリティグループを作成し、既存のセキュリティグループにルールを追加して、セキュリティグループを削除することができます。

注記

下の例では、デフォルトの認証情報を設定済みであることを想定しています。

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

VPC または EC2-Classic に関連付けられたセキュリティグループを作成することができます。

EC2-VPC

次の例は、指定された VPC のセキュリティグループを作成する方法を示しています。

$ aws ec2 create-security-group --group-name my-sg --description "My security group" --vpc-id vpc-1a2b3c4d { "GroupId": "sg-903004f8" }

セキュリティグループの初期情報を表示するには、describe-security-groups コマンドを実行します。EC2-VPC セキュリティグループは、名前ではなく vpc-id によってのみ参照することができます。

$ aws ec2 describe-security-groups --group-ids sg-903004f8 { "SecurityGroups": [ { "IpPermissionsEgress": [ { "IpProtocol": "-1", "IpRanges": [ { "CidrIp": "0.0.0.0/0" } ], "UserIdGroupPairs": [] } ], "Description": "My security group" "IpPermissions": [], "GroupName": "my-sg", "VpcId": "vpc-1a2b3c4d", "OwnerId": "123456789012", "GroupId": "sg-903004f8" } ] }

EC2-Classic

次の例は、EC2-Classic のセキュリティグループを作成する方法を示しています。

$ aws ec2 create-security-group --group-name my-sg --description "My security group" { "GroupId": "sg-903004f8" }

my-sg の初期情報を表示するには、describe-security-groups コマンドを実行します。EC2-Classic セキュリティグループは名前で参照することができます。

$ aws ec2 describe-security-groups --group-names my-sg { "SecurityGroups": [ { "IpPermissionsEgress": [], "Description": "My security group" "IpPermissions": [], "GroupName": "my-sg", "OwnerId": "123456789012", "GroupId": "sg-903004f8" } ] }

ルールを セキュリティグループに追加する

Amazon EC2 インスタンスを実行するときには、セキュリティグループのルールを有効にして、イメージに接続する手段としての着信ネットワークトラフィックを有効にする必要があります。

たとえば、Windows インスタンスを起動する場合、Remote Desktop Protocol (RDP) をサポートするには、一般に TCP ポート 3389 へのインバウンドトラフィックを許可するルールを追加します。Linux インスタンスを起動する場合、SSH 接続をサポートするには、一般に TCP ポート 22 へのインバウンドトラフィックを許可するルールを追加します。

セキュリティグループにルールを追加するには、authorize-security-group-ingress コマンドを使用します。このコマンドの必須パラメータは、コンピュータのパブリック IP アドレス、またはコンピュータが接続しているネットワーク (アドレス範囲の形式で) の CIDR 表記です。

注記

当社では、パブリック IP アドレスを調べることができるサービス (https://checkip.amazonaws.com/) を提供しています。IP アドレスの識別に役立つその他のサービスを見つけるには、ブラウザを使用して「what is my IP address」を検索します。ISP 経由、またはファイアウォールの内側から動的な IP アドレスを使用して接続している場合 (プライベートネットワークの NAT ゲートウェイ経由)、アドレスは定期的に変更される場合があります。その場合、クライアントコンピュータによって使用される IP アドレスの範囲を見つける必要があります。

EC2-VPC

次の例は、ID sg-903004f8 を持つ EC2-VPC セキュリティグループに RDP (TCP ポート 3389) のルールを追加する方法を示しています。この例では、クライアントコンピュータが CIDR 範囲 203.0.113.0/24 のアドレスを持つことを前提としています。

まず、パブリックアドレスが CIDR 範囲 203.0.113.0/24 に含まれていることを確認します。

$ curl https://checkip.amazonaws.com 203.0.113.57

この情報が確認できたら、authorize-security-group-ingress を実行することによって、セキュリティグループに範囲を追加することができます。

$ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 3389 --cidr 203.0.113.0/24

次のコマンドは、同じセキュリティグループのインスタンスに SSH を有効にする別のルールを追加します。

$ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 22 --cidr 203.0.113.0/24

セキュリティグループに加えられた変更を表示するには、describe-security-groups コマンドを実行します。

$ aws ec2 describe-security-groups --group-ids sg-903004f8 { "SecurityGroups": [ { "IpPermissionsEgress": [ { "IpProtocol": "-1", "IpRanges": [ { "CidrIp": "0.0.0.0/0" } ], "UserIdGroupPairs": [] } ], "Description": "My security group" "IpPermissions": [ { "ToPort": 22, "IpProtocol": "tcp", "IpRanges": [ { "CidrIp": "203.0.113.0/24" } ] "UserIdGroupPairs": [], "FromPort": 22 } ], "GroupName": "my-sg", "OwnerId": "123456789012", "GroupId": "sg-903004f8" } ] }

EC2-Classic

次のコマンドは、my-sg という名前の EC2-Classic セキュリティグループに RDP のルールを追加します。

$ aws ec2 authorize-security-group-ingress --group-name my-sg --protocol tcp --port 3389 --cidr 203.0.113.0/24

次のコマンドは、同じセキュリティグループに SSH の別のルールを追加します。

$ aws ec2 authorize-security-group-ingress --group-name my-sg --protocol tcp --port 22 --cidr 203.0.113.0/24

セキュリティグループに加えられた変更を表示するには、describe-security-groups コマンドを実行します。

$ aws ec2 describe-security-groups --group-names my-sg { "SecurityGroups": [ { "IpPermissionsEgress": [], "Description": "My security group" "IpPermissions": [ { "ToPort": 22, "IpProtocol": "tcp", "IpRanges": [ { "CidrIp": "203.0.113.0/24" } ] "UserIdGroupPairs": [], "FromPort": 22 } ], "GroupName": "my-sg", "OwnerId": "123456789012", "GroupId": "sg-903004f8" } ] }

セキュリティグループの削除

セキュリティグループを削除するには、delete-security-group コマンドを実行します。

注記

環境に現在アタッチされているセキュリティグループは削除できません。

EC2-VPC

次のコマンドは、EC2-VPC セキュリティグループを削除します。

$ aws ec2 delete-security-group --group-id sg-903004f8

EC2-Classic

次のコマンドは、my-sg という名前の EC2-Classic セキュリティグループを削除します。

$ aws ec2 delete-security-group --group-name my-sg