ソース IP アドレスおよび宛先 IP アドレスへのセキュリティー・グループ・ルールの適用
セキュリティー・グループ・ルールでローカル IP アドレスがサポートされるようになりました。 これは、すべてのローカル IP アドレスを許可するのではなく、特定のローカル IP アドレスをルールで許可できることを意味します。 セキュリティー・グループ・ルールは、入口ルールと出口ルールの両方のローカル IP アドレスをサポートします。
セキュリティー・グループ規則を使用して特定のローカル IP アドレスまたはアドレス範囲を許可すると、以下の場合に役立ちます。
- 単一の仮想ネットワーク・インターフェースに関連付けられた 2 次プライベート IP アドレスがある
- IP スプーフィングが許可されたインターフェースにパケットを転送するカスタム経路がある
特定のローカル宛先 IP アドレスのみを許可するインバウンド・セキュリティー・グループ規則を適用できます。 特定のローカル・ソース IP アドレスのみを許可するアウトバウンド・セキュリティー・グループ規則を適用することもできます。
コンソール、CLI、API、Terraformを使用して、セキュリティグループルール(インバウンドとアウトバウンド)を適用できます。
ヒント:
- 追加される順序にかかわらず、すべてのルールが評価されます。
- ルールはステートフルです。つまり、許可されたトラフィックに応答して返されるトラフィックは自動的に許可されます。 例えば、ポート 80 でインバウンド TCP トラフィックを許可するルールを作成したとします。 このルールは、発信元ホストに返信するためのポート 80 のアウトバウンド TCP トラフィックも許可するので、ルールをもう 1 つ作成する必要はありません。
- Windows イメージの場合、インスタンスに関連付けられているセキュリティグループが、リモート デスクトップ プロトコル (RDP) のトラフィック(TCP ポート
3389)の受信および送信を許可していることを確認してください。
ユース・ケース
セキュリティー・グループ・ルールを作成するときに、特定のローカル IP アドレスまたは CIDR を許可することを選択できます。 リモート・プロパティーと同様に、以下のいずれかのローカル・プロパティーがあります。
- IP アドレス-このルールは、特定の宛先 IP アドレス (インバウンド・ルールの場合) またはソース IP アドレス (アウトバウンド・ルールの場合) に適用されます。
- CIDR-ルールは、特定の宛先 CIDR (インバウンド・ルールの場合) またはソース CIDR (アウトバウンド・ルールの場合) に適用されます。
図 1 は、 local IP アドレスを持つセキュリティー・グループのアウトバウンド規則を示しています。 ローカル IP アドレス 10.243.0.1 から 10.243.200.0/24 の範囲内の任意のリモート・アドレスへのトラフィックが許可されます。 緑色のデータ・パス線は許可されているトラフィックを示し、赤色の線は許可されていないトラフィックを示します。
図 2 は、 local IP アドレスを持つセキュリティー・グループのインバウンド・ルールを示しています。 10.243.200.0/24 の範囲内の任意のリモート・アドレスからローカル IP アドレス 10.243.0.1 へのトラフィックが許可されます。 他のローカル IP アドレスへのトラフィックは許可されません。
コンソールでのセキュリティー・グループのルールの作成
セキュリティー・グループのプロビジョニング中またはプロビジョニング後に、インバウンド・ルールとアウトバウンド・ルールを作成できます。
-
ブラウザーから、 IBM Cloud コンソールを開きます。
-
ナビゲーション メニュー
を選択し、 インフラストラクチャ
> ネットワーク > セキュリティ グループをクリックします。
-
「VPC のセキュリティー・グループ」テーブルから、以下のいずれかを選択します。
- 新規セキュリティー・グループのプロビジョニング時にルールを作成するには、 「作成」 をクリックしてから、 リソースのセキュリティー・グループのセットアップ の指示に従います。
- 既存のセキュリティー・グループのルールを作成するには、セキュリティー・グループの名前をクリックしてその「詳細」ページを表示してから、ステップ 4 に進みます。
-
ルールを作成および管理するには、「ルール」タブを選択します。
-
以下のいずれかを選択してください:
-
インバウンド・ルールを作成するには、「インバウンド・ルール」テーブルで 「作成」 を選択し、以下のフィールドに入力します。 次に**「作成」**をクリックします。
- プロトコル - 適用するプロトコルを指定します( ICMP_TCP_UDP、 ANY、 または IPv4 その他のプロトコルのいずれか)。
- ポート-ルールを適用するポートを指定します。 「任意」 を選択するか、 ポート範囲 (最小ポート値と最大ポート値) を指定します。 TCP および UDP のポート値は、1 から 65535 までの数値でなければなりません。 ICMP の有効なポート値は 0 から 254 です。
- ソースタイプ - このルールがトラフィックを許可するネットワークインターフェースのセットを選択します。 インバウンドの許可トラフィックには、 「任意」、 「IP アドレス」、または CIDR ブロック を選択できます。 あるいは、同じ VPC 内のセキュリティー・グループを指定して、その選択されたセキュリティー・グループに接続するすべてのインスタンスとの間のトラフィックを許可することができます。
- 宛先タイプ- 「任意」、 「IP アドレス」、または CIDR ブロックを選択します。
-
アウトバウンド・ルールを作成するには、「アウトバウンド・ルール」テーブルで 「作成」 を選択し、以下のフィールドに入力します。 次に**「作成」**をクリックします。
- プロトコル - 適用するプロトコルを指定します( TCP、 UDP、 ICMP、または TCP-UDP-ICMP )。
- ポート-ルールを適用するポートを指定します。 「任意」 を選択するか、 ポート範囲 (最小ポート値と最大ポート値) を指定します。 TCP および UDP のポート値は、1 から 65535 までの数値でなければなりません。 ICMP の有効なポート値は 0 から 254 です。
- 宛先タイプ- 「任意」、 「IP アドレス」、 CIDR ブロック、または 「セキュリティー・グループ」 を選択します。
- ソース・タイプ- 「任意」、 「IP アドレス」、または 「CIDR ブロック」 を選択します。
-
CLI でのセキュリティー・グループのルールの作成
CLI を使用してセキュリティー・グループ・ルール (インバウンドおよびアウトバウンド) を作成するには、次のコマンドを入力します。
ibmcloud is security-group-rule-add GROUP DIRECTION PROTOCOL [--vpc VPC] [--local LOCAL_ADDRESS | CIDR_BLOCK] [--remote REMOTE_ADDRESS | CIDR_BLOCK | SECURITY_GROUP] [--icmp-type ICMP_TYPE [--icmp-code ICMP_CODE]] [--port-min PORT_MIN] [--port-max PORT_MAX] [--output JSON] [-q, --quiet]
ここで、
GROUP- セキュリティー・グループの ID または名前。
DIRECTION- 強制するトラフィック方向。 次のいずれか:
inbound,outbound. PROTOCOL- 本規則が適用されるプロトコル。 次のいずれか:
tcp,udp,icmp,icmp_tcp_udpgre,ip_in_ip,,ah,esp,l2tp,rsvp,sctp,vrrp, またはnumber_<N>. --vpc- VPC の ID または名前。 このオプションは、このVPC内で名前によって一意のリソースを指定する場合にのみ必要です。
--local- このルールがインバウンドトラフィックを許可するローカルIPアドレスまたはローカルIPアドレスの範囲(またはアウトバウンドトラフィックの場合、その送信元となる範囲)。 IP アドレスまたは CIDR ブロックとして指定できます。 次のいずれか:
LOCAL_ADDRESS,CIDR_BLOCK. のCIDRブロックは、すべてのローカルIPアドレスへのトラフィック(または0.0.0.0/0送信ルールではすべてのローカルIPアドレスからのトラフィック)を許可します。 --remote- このルールが許可するトラフィックの発信元である一連のネットワーク・インターフェース。 それは、
CIDR_BLOCK、REMOTE_ADDRESSまたはとして指定することができますSECURITY_GROUP。 指定されない場合は、任意のソースからのトラフィック (またはアウトバウンド・ルールの場合は任意のソースへのトラフィック) が許可されます。 --icmp-type- 許容される ICMP トラフィック・タイプ。 有効な値は から
0まで254。 このオプションは、プロトコルが に設定されているicmp場合にのみ指定されます。 指定されない場合は、すべてのタイプが許可されます。 --icmp-code- 許容される ICMP トラフィック・コード。 有効な値は から
0まで255。 このオプションは、プロトコルが icmp に設定されている場合にのみ指定されます。 指定されない場合は、すべてのコードが許可されます。 -port-min- 最小ポート番号。 有効な値は から
1までです65535。 このオプションは、プロトコルが またはtcpに設定されている場合にudpのみ指定されます。 指定がない場合、すべてのポートが許可されます(デフォルト:1)。 --port-max- 最大ポート番号。 有効な値は から
1までです65535。 このオプションは、プロトコルが またはtcpに設定されている場合にudpのみ指定されます。 指定がない場合、すべてのポートが許可されます(デフォルト:65535)。 --output- 出力フォーマット。 その一つ
JSON。 --q, --quiet- 詳細出力を抑制します。
CLI の例
ibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3 inbound anyibmcloud is security-group-rule-add my-sg inbound anyibmcloud is security-group-rule-add my-sg inbound any --vpc my-vpcibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3 inbound icmp --icmp-type 8 --icmp-code 0ibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3 inbound any --remote 12.3.2.4ibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3 inbound any --remote 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3ibmcloud is security-group-rule-add my-sg inbound any --remote my-sgibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5beaa7c1dcb3 inbound tcp --port-min 4 --port-max 22 --output JSONibmcloud is security-group-rule-add --sg 72b27b5c-f4b0-48bb-b954-5beaa7c1dcb3 --direction inbound --protocol any --local 192.176.3.0ibmcloud vpc-iaas security-group-rule-add --sg-id r134-028d1f0b-9648-41d1-b862-45d9b85b12b7 --direction inbound --protocol gre --local-address 192.176.3.0ibmcloud vpc-iaas security-group-rule-add --sg-id r134-028d1f0b-9648-41d1-b862-45d9b85b12b7 --direction inbound --protocol any --remote-address 12.3.2.4ibmcloud vpc-iaas security-group-rule-add --sg-id r134-028d1f0b-9648-41d1-b862-45d9b85b12b7 --direction inbound --protocol icmp_tcp_udp
API を使用したセキュリティー・グループ・ルールの作成
セキュリティー・グループ・ルール POST 要求は、 local という名前のオプション・プロパティーを受け入れます。このプロパティーには、以下の 2 つのプロパティーがあります。
address- この規則がインバウンド・トラフィックを許可する先の IP アドレス (またはアウトバウンド規則の場合は、インバウンド・トラフィックを許可する元の IP アドレス)。
cidr_block- この規則がインバウンド・トラフィックを許可する (またはアウトバウンド規則の場合はインバウンド・トラフィックを許可する) IP アドレス範囲。
local プロパティーが指定されていない場合、デフォルト値は cidr_block: 0.0.0.0/0 です。
以下のように、API を使用してセキュリティー・グループ・ルールを作成できます。
-
正しい変数を使用して API 環境をセットアップします。
-
API コマンドで使用する変数にセキュリティー・グループ ID を保管します。
export security_group_id=<security_group_id> -
リモート・アドレス範囲
10.1.2.0/24からローカル IP アドレス192.168.1.100へのインバウンド TCP トラフィックを許可するセキュリティー・グループ規則を作成するには、次のコマンドを実行します。curl -sX POST "$vpc_api_endpoint/v1/security_groups/$security_group_id/rules?version=$version&generation=2" \ -H "Authorization: Bearer ${iam_token}" \ -d '{ "direction": "inbound", "local": { "address": "192.168.1.100" } "protocol": "tcp", "remote": { "cidr_block": "10.1.2.0/24" } }'出力例:
{ "direction": "inbound", "href": "https://us-south.iaas.cloud.ibm.com/v1/security_groups/r006-568b4cc2-b6d1-4ee4-898a-841be283a4cd/rules/r006-8d123cf9-9a4e-48d9-ad5e-dabf1e5b5773", "id": "r006-8d123cf9-9a4e-48d9-ad5e-dabf1e5b5773", "ip_version": "ipv4", "local": { "address": "192.168.1.100" } "protocol": "tcp", "remote": { "cidr_block": "10.1.2.0/24" } }
Terraform を使用したセキュリティー・グループ・ルールの作成
Terraformを使用するには、Terraform CLIをダウンロードし、Provider IBM Cloud プラグインを設定してください。 詳しくは、 Terraform の概要を参照してください。
以下の Terraform の例は、インバウンド・セキュリティー・グループ・ルールを作成する方法を示しています。 リソース内の local パラメーターは、IP アドレスまたは CIDR ブロックを受け入れ、データ・ソース ibm_is_security_group_rules および ibm_is_security_group_rule の応答状態にもなります。
resource "ibm_is_security_group_rule" "example2" {
group = ibm_is_security_group.example.id
direction = "inbound"
remote = "127.0.0.1"
local = "192.168.3.0/24"
udp {
port_min = 805
port_max = 807
}
}