AWS CLI で Amazon EC2 のセキュリティグループを作成、設定、および削除する
本質的にファイアウォールとして動作する Amazon Elastic Compute Cloud (Amazon EC2) インスタンス用のセキュリティグループを作成し、入退出が可能なネットワークトラフィックを決めるルールと共に作成することができます。
AWS Command Line Interface (AWS CLI) を使用して新しいセキュリティグループを作成し、既存のセキュリティグループにルールを追加して、セキュリティグループを削除します。
注記
その他のコマンドの例については、AWS CLI リファレンスガイド
前提条件
ec2
コマンドを実行するには、次のことが必要です。
AWS CLI をインストールして設定します。詳細については、AWS CLI の最新バージョンのインストールまたは更新およびAWS CLI の認証とアクセス認証情報を参照してください。
-
Amazon EC2 アクセスできるように IAM アクセス許可を設定します。Amazon EC2 に対する IAM アクセス許可の詳細については、「Amazon EC2 ユーザーガイド」の「IAM policies for Amazon EC2」を参照してください。
セキュリティグループの作成
仮想プライベートクラウド (VPC) に関連するセキュリティグループを作成できます。
次の aws ec2 create-security-group
の例は、指定された VPC のセキュリティグループを作成する方法を示しています。
$
aws ec2 create-security-group --group-name
my-sg
--description "My security group
" --vpc-idvpc-1a2b3c4d
{ "GroupId": "sg-903004f8" }
セキュリティグループの初期情報を表示するには、aws ec2 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" } ] }
ルールをセキュリティグループに追加する
Amazon EC2 インスタンスを実行するときには、セキュリティグループのルールを有効にして、イメージに接続する手段としての着信ネットワークトラフィックを有効にする必要があります。
例えば、Windows インスタンスを起動する場合、Remote Desktop Protocol (RDP) をサポートするには、一般に TCP ポート 3389 へのインバウンドトラフィックを許可するルールを追加します。Linux インスタンスを起動する場合、SSH 接続をサポートするには、一般に TCP ポート 22 へのインバウンドトラフィックを許可するルールを追加します。
セキュリティグループにルールを追加するには、aws ec2 authorize-security-group-ingress
コマンドを使用します。このコマンドの必須パラメータは、コンピュータのパブリック IP アドレス、またはコンピュータが接続しているネットワーク (アドレス範囲の形式で) の CIDR
注記
当社では、以下のサービス https://checkip.amazonaws.com/
次の例は、IP アドレスを使用して ID sg-903004f8
を持つ EC2-VPC セキュリティグループに RDP (TCP ポート 3389) のルールを追加する方法を示しています。
まず、あなたの IP アドレスを探してください。
$
curl https://checkip.amazonaws.com
x.x.x.x
その後、aws ec2
authorize-security-group-ingress
コマンドを実行して、セキュリティグループに IP アドレスを追加できます。
$
aws ec2 authorize-security-group-ingress --group-id
sg-903004f8
--protocol tcp --port 3389 --cidrx.x.x.x/x
次のコマンドは、同じセキュリティグループのインスタンスに SSH を有効にする別のルールを追加します。
$
aws ec2 authorize-security-group-ingress --group-id
sg-903004f8
--protocol tcp --port 22 --cidrx.x.x.x/x
セキュリティグループに加えられた変更を表示するには、aws ec2 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": "
x.x.x.x/x
" } ] "UserIdGroupPairs": [], "FromPort": 22 } ], "GroupName": "my-sg", "OwnerId": "123456789012", "GroupId": "sg-903004f8" } ] }
セキュリティグループを削除する
セキュリティグループを削除するには、aws
ec2 delete-security-group
コマンドを実行します。
注記
環境に現在アタッチされているセキュリティグループは削除できません。
次のコマンド例は、EC2-VPC セキュリティグループを削除します。
$
aws ec2 delete-security-group --group-id
sg-903004f8
リファレンス
AWS CLI リファレンス:
その他のリファレンス:
-
AWS SDK および AWS CLI のコード例を表示したり、提供したりするには、GitHub の AWS コード例のリポジトリ
を参照してください。