Windows PowerShell を使用したセキュリティグループの作成 - AWS Tools for PowerShell

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

Windows PowerShell を使用したセキュリティグループの作成

AWS Tools for PowerShell を使用して、セキュリティグループを作成および設定できます。セキュリティグループを作成するときは、EC2-Classic 用のセキュリティグループなのか、EC2-VPC 用のセキュリティグループなのかを指定します。応答はセキュリティグループの ID です。

インスタンスに接続する必要がある場合、SSH トラフィック (Linux) または RDP トラフィック (Windows) を許可するようにセキュリティグループを設定する必要があります。

前提条件

コンピュータの CIDR 表記のパブリック IP アドレスが必要です。サービスを使用して、ローカルコンピュータのパブリック IP アドレスを取得できます。たとえば、Amazon では、http://checkip.amazonaws.com/ または https://checkip.amazonaws.com/ のサービスを提供しています。IP アドレスを提供する別のサービスを検索するには、検索フレーズ「what is my IP address」を使用します。ISP 経由で、またはファイアウォールの内側から静的な IP アドレスなしで接続している場合は、クライアントコンピュータで使用できる IP アドレスの範囲を見つける必要があります。

警告

0.0.0.0/0 を指定すると、世界中の任意の IP アドレスからのトラフィックが有効になります。SSH と RDP プロトコルの場合、これはテスト環境で短時間なら許容できますが、実稼働環境で行うのは安全ではありません。実稼働環境では、適切な個別の IP アドレスまたはアドレス範囲からのアクセスのみを許可するようにしてください。

EC2-Classic 用セキュリティグループの作成

警告

2022 年 8 月 15 日に、EC2-Classic の提供を終了します。EC2-Classic は、VPC への移行をお勧めします。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドまたはWindows インスタンス用 Amazon EC2 ユーザーガイドの「EC2-Classic から VPC への移行」を参照してください。ブログ記事「EC2-Classic Networking は販売終了になります — 準備方法はこちら」も参照してください。

次の例では、New-EC2SecurityGroup コマンドレットを使用して EC2-Classic のセキュリティグループを作成します。

PS > New-EC2SecurityGroup -GroupName myPSSecurityGroup -GroupDescription "EC2-Classic from PowerShell" sg-0a346530123456789

セキュリティグループの初期設定を表示するには、Get-EC2SecurityGroup コマンドレットを使用します。

PS > Get-EC2SecurityGroup -GroupNames myPSSecurityGroup Description : EC2-Classic from PowerShell GroupId : sg-0a346530123456789 GroupName : myPSSecurityGroup IpPermissions : {} IpPermissionsEgress : {Amazon.EC2.Model.IpPermission} OwnerId : 123456789012 Tags : {} VpcId : vpc-9668ddef

TCP ポート 22 (SSH) と TCP ポート 3389 でインバウンドトラフィックを許可するようにセキュリティグループを設定するには、Grant-EC2SecurityGroupIngress コマンドレットを使用します。たとえば、次のスクリプト例では、単一の IP アドレス 203.0.113.25/32 からの SSH トラフィックを有効にする方法を示します。

$cidrBlocks = New-Object 'collections.generic.list[string]' $cidrBlocks.add("203.0.113.25/32") $ipPermissions = New-Object Amazon.EC2.Model.IpPermission $ipPermissions.IpProtocol = "tcp" $ipPermissions.FromPort = 22 $ipPermissions.ToPort = 22 ipPermissions.IpRanges = $cidrBlocks Grant-EC2SecurityGroupIngress -GroupName myPSSecurityGroup -IpPermissions $ipPermissions

セキュリティグループが更新されているかどうかを確認するには、再度、Get-EC2SecurityGroup コマンドレットを実行します。EC2-Classic のアウトバウンドルールは指定できません。

PS > Get-EC2SecurityGroup -GroupNames myPSSecurityGroup OwnerId : 123456789012 GroupName : myPSSecurityGroup GroupId : sg-0a346530123456789 Description : EC2-Classic from PowerShell IpPermissions : {Amazon.EC2.Model.IpPermission} IpPermissionsEgress : {} VpcId : Tags : {}

セキュリティグループのルールを表示するには、IpPermissions プロパティを使用します。

PS > (Get-EC2SecurityGroup -GroupNames myPSSecurityGroup).IpPermissions IpProtocol : tcp FromPort : 22 ToPort : 22 UserIdGroupPairs : {} IpRanges : {203.0.113.25/32}

EC2-VPC 用セキュリティグループの作成

次の New-EC2SecurityGroup 例では、指定された VPC のセキュリティグループを作成するために -VpcId パラメータを追加します。

PS > $groupid = New-EC2SecurityGroup ` -VpcId "vpc-da0013b3" ` -GroupName "myPSSecurityGroup" ` -GroupDescription "EC2-VPC from PowerShell"

セキュリティグループの初期設定を表示するには、Get-EC2SecurityGroup コマンドレットを使用します。デフォルトでは、VPC 用のセキュリティグループにはすべてのアウトバウンドトラフィックを許可するルールが含まれています。EC2-VPC 用セキュリティグループは名前では参照できないことに注意してください。

PS > Get-EC2SecurityGroup -GroupId sg-5d293231 OwnerId : 123456789012 GroupName : myPSSecurityGroup GroupId : sg-5d293231 Description : EC2-VPC from PowerShell IpPermissions : {} IpPermissionsEgress : {Amazon.EC2.Model.IpPermission} VpcId : vpc-da0013b3 Tags : {}

TCP ポート 22 (SSH) および TCP ポート 3389 のインバウンドトラフィックのアクセス許可を定義するには、New-Object コマンドレットを使用します。次のスクリプト例では、単一の IP アドレス、203.0.113.25/32 から TCP ポート 22 および 3389 のアクセス許可を定義します。

$ip1 = new-object Amazon.EC2.Model.IpPermission $ip1.IpProtocol = "tcp" $ip1.FromPort = 22 $ip1.ToPort = 22 $ip1.IpRanges.Add("203.0.113.25/32") $ip2 = new-object Amazon.EC2.Model.IpPermission $ip2.IpProtocol = "tcp" $ip2.FromPort = 3389 $ip2.ToPort = 3389 $ip2.IpRanges.Add("203.0.113.25/32") Grant-EC2SecurityGroupIngress -GroupId $groupid -IpPermissions @( $ip1, $ip2 )

セキュリティグループが更新されているかどうかを確認するには、再度、Get-EC2SecurityGroup コマンドレットを使用します。

PS > Get-EC2SecurityGroup -GroupIds sg-5d293231 OwnerId : 123456789012 GroupName : myPSSecurityGroup GroupId : sg-5d293231 Description : EC2-VPC from PowerShell IpPermissions : {Amazon.EC2.Model.IpPermission} IpPermissionsEgress : {Amazon.EC2.Model.IpPermission} VpcId : vpc-da0013b3 Tags : {}

インバウンドルールを表示するには、前のコマンドで返されたコレクションオブジェクトから IpPermissions プロパティを取得します。

PS > (Get-EC2SecurityGroup -GroupIds sg-5d293231).IpPermissions IpProtocol : tcp FromPort : 22 ToPort : 22 UserIdGroupPairs : {} IpRanges : {203.0.113.25/32} IpProtocol : tcp FromPort : 3389 ToPort : 3389 UserIdGroupPairs : {} IpRanges : {203.0.113.25/32}