リソースのセキュリティー・グループのセットアップ

セキュリティグループを設定することで、リソースに対して許可される受信および送信トラフィックを定義できます。 例えば、会社のセキュリティー・ポリシーに基づいてサブネットの ACL ルールを構成した後、特定のインスタンスのワークロードに応じてそれらのトラフィックをさらに制限できます。

コンソールでリソースのセキュリティグループを設定する

UI を使用してセキュリティー・グループを構成するには、以下の手順を実行します。

  1. ブラウザーから、 IBM Cloud コンソールを開きます。

  2. ナビゲーション メニューナビゲーション メニュー アイコン を選択し、 インフラストラクチャVPC アイコン > ネットワーク > セキュリティ グループをクリックします。

  3. セキュリティー・グループ・リスト・テーブルで 「作成」 をクリックします。

  4. 「所在地」のセクションには、以下の情報を記入してください:

    • 地域-セキュリティー・グループを作成する一般領域を示します。
    • 地域-セキュリティー・グループを作成する地域を示します。
  5. 「詳細」セクションには、以下の情報を記入してください:

    • 名前-セキュリティー・グループの固有 ID ( my-security-group など) を入力します。
    • リソースグループ- セキュリティグループに適用するリソースグループを選択します。

    プロビジョニングが完了すると、リソースグループを変更することはできません。

    • タグ-ユーザー・タグを追加します。 ユーザー・タグはアカウント全体で表示されます。 詳しくは、『タグの処理』を参照してください。

    ユーザー・タグはアカウント全体で表示されます。 タグ名に機密データを含めないでください。

  6. [ルール] で [ 作成] をクリックし、インスタンスへのトラフィックおよびインスタンスからのトラフィックの種類を定義する受信および送信ルールを設定します。 ルールごとに、以下の情報を指定します。

    • ルールが適用されるプロトコルおよびポートを選択します。
    • トラフィックが許可される CIDR ブロックまたは IP アドレスを指定します。 あるいは、同じ VPC 内のセキュリティー・グループを指定して、その選択されたセキュリティー・グループに接続するすべてのインスタンスとの間のトラフィックを許可することができます。

    ヒント:

    • 追加される順序にかかわらず、すべてのルールが評価されます。
    • ルールはステートフルです。つまり、許可されたトラフィックに応答して返されるトラフィックは自動的に許可されます。 例えば、ポート 80 でインバウンド TCP トラフィックを許可するルールを作成したとします。 このルールは、発信元ホストに返信するためのポート 80 のアウトバウンド TCP トラフィックも許可するので、ルールをもう 1 つ作成する必要はありません。
    • Windows イメージの場合は、インスタンスに関連付けられたセキュリティー・グループで、インバウンドとアウトバウンドのリモート・デスクトップ・プロトコルのトラフィック (TCP ポート 3389) を許可してください。
  7. オプション: 残りのセクションで、インターフェース、ベア・メタル・インターフェース、ロード・バランサー、仮想プライベート・エンドポイント・ゲートウェイ、および VPN サーバーを接続します (これらのターゲットを接続できる場合)。

CLI からリソースのセキュリティー・グループをセットアップする

この例では、コマンド・ライン・インターフェース (CLI) を使用して、セキュリティー・グループを有効にした仮想サーバー・インスタンスを作成します。 図 1 は、このシナリオの状況を表しています。

caption-side=bottom"
セキュリティグループが有効な仮想サーバーインスタンスを示す図※セキュリティグループが有効な

図 1 では、SG4 という名前のインスタンスに、内部 VPC アドレス 169.60.208.144 に加えて浮動 IP 10.10.10.5 が割り当てられていることに注目してください。このため、SG4 はパブリック・インターネットと通信できます。 このインスタンス SG4 に割り当てられているセキュリティー・グループの名前は demosg です。

インスタンス SG8 は VPC 内部専用であり、プライベート IP アドレスが割り当てられています。 インスタンス SG8 に割り当てられているセキュリティー・グループの名前は my_vpc_sg です。 これらのインスタンスは両方とも、sgvpc という名前の VPC 内にあり、さらに同じサブネット 10.10.10.0/24 に接続しているため、相互に通信できます。

セキュリティグループを割り当てたリソースの作成

my_vpc_sg のセキュリティー・グループ・ルールには、SSH、PING、アウトバウンド TCP の基本的な機能を含めます。

まず、 ibmcloud is sgc コマンドを使用してセキュリティグループを作成し、その後、そのセキュリティグループを使用するリソースを作成する必要がある点に注意してください。

ibmcloud plugin install vpc-infrastructure にアクセスするには、ibmcloud is を入力する必要があります。 VPC およびサブネットの作成について詳しくは、 CLI を使用した VPC リソースの作成 を参照してください。

このサンプルの CLI コードのコマンドをコピー・アンド・ペーストして、セキュリティー・グループを関連付けたインスタンスの作成を開始できます。 このサンプル・コードには、システム応答全体は示されていません。 ご使用の VPC、サブネット、イメージ、および鍵 の正しいリソース ID と、正しいセキュリティー・グループ ID 番号を使用して、コマンドを更新する必要があります。

  1. my_vpc_sg というセキュリティー・グループを作成します。

    ibmcloud is security-group-create my_vpc_sg $vpc
    

    後で利用できるように、ID を変数に保存します。例えば、以下のように sg という名前の変数に保存します。

    sg=0738-2d364f0a-a870-42c3-a554-000000632953
    
  2. SSH、PING、およびアウトバウンド TCP を許可するルールを追加します。

    ibmcloud is security-group-rule-add $sg inbound tcp --port-min 22 --port-max 22
    ibmcloud is security-group-rule-add $sg inbound icmp --icmp-type 8 --icmp-code 0
    ibmcloud is security-group-rule-add $sg outbound tcp
    
  3. 最後に、セキュリティー・グループを指定してインスタンスを作成します。

    ibmcloud is instance-create test-instance $vpc us-south-2 b-4x16 $subnet 1000 \
    --image $image --keys $key --sgs $sg
    

コマンド・リストの説明

セキュリティー・グループで使用可能なすべての VPC CLI コマンドのリストを表示するには、次のように入力します。

ibmcloud is help | grep sg

セキュリティー・グループとそのメタデータ (ルールを含む) を表示するには、次のように入力します (前の例の場合)。

ibmcloud is sg $sg

セキュリティー・グループ・ルールの追加に関して、PING インバウンド・ルールをセキュリティー・グループに追加するサンプル・コマンドを次に示します。

ibmcloud is security-group-rule-add $sg inbound icmp --icmp-type 8 --icmp-code 0

CLI を使用したセキュリティー・グループのセットアップについて詳しくは、 API および CLI 環境のセットアップ を参照してください。

API を使用したリソースのセキュリティー・グループのセットアップ

以下の例では、IBM Cloud VPC の API を使用してセキュリティー・グループを作成および管理する方法を説明します。

セキュリティー・グループを使用するには、先に IBM Cloud VPC を実行しておく必要があります。

VPC およびサブネットの作成手順については、VPC の作成を参照してください。

手順 1: セキュリティー・グループを作成する

IBM Cloud VPC に my-security-group という名前のセキュリティー・グループを作成します。

curl -X POST "$vpc_api_endpoint/v1/security_groups?version=$api_version&generation=2" \
  -H "Authorization: Bearer $iam_token" \
  -d '{
        "name": "my-security-group",
        "vpc": { "id": "'$vpc'" }
      }'

ID を後で使用できるように変数に保存します。例えば、以下のように変数 sg に保存します。

sg=0738-2d364f0a-a870-42c3-a554-000000632953

手順 2: SSH 接続を許可するルールを追加する

ポート 22 でのインバウンド接続を許可するルールをセキュリティー・グループに作成します。

curl -X POST "$vpc_api_endpoint/v1/security_groups/$sg/rules?version=$api_version&generation=2" \
  -H "Authorization: Bearer $iam_token" \
  -d '{
        "direction": "inbound",
        "protocol": "tcp",
        "port_min": 22,
        "port_max": 22
      }'

手順 3: セキュリティー・グループを削除する (オプション)

セキュリティー・グループをクリーンアップするためには、そのセキュリティー・グループにネットワーク・インターフェースが関連付けられていてはいけません。また、別のセキュリティー・グループのルールで参照されていてもいけません。

curl -X DELETE "$vpc_api_endpoint/v1/security_groups/$sg?version=$api_version&generation=2" \
  -H "Authorization: Bearer $iam_token"

API を使用したセキュリティー・グループのセットアップについて詳しくは、 セキュリティー・グループを参照してください。