ネットワーク ACL の作成

ACL を構成して、サブネットに対するインバウンドとアウトバウンドのトラフィックを制限できます。 デフォルトでは、すべてのトラフィックが許可されます。

各サブネットは、1 つの ACL にのみ接続できます。 ただし、各 ACL は複数のサブネットに接続できます。

開始する前に、VPC とサブネットが作成されていることを確認してください。

コンソールでネットワークACLを作成する

IBM Cloud コンソールでACLを設定するには、以下の手順に従ってください

  1. IBM Cloud コンソールにアクセスし、 アカウントにログインしてください。

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

  3. **作成 +**をクリックします。

  4. 「ロケーションの編集」 アイコン 「ロケーションの編集」アイコン を選択し、以下のフィールドに値を入力します。

    • 地域-アクセス制御リストの大陸を選択します。
    • 地域-アクセス制御リストの地域を選択します。
  5. 「詳細」の下にある以下のフィールドに値を入力してください:

    • Name- アクセス制御リストの一意の名前を入力します。
    • リソース・グループ-アクセス制御リストのリソース・グループを選択します。 このアクセス制御リストのデフォルト・グループを使用することも、リソース・グループ・リスト (定義されている場合) から選択することもできます。 詳しくは、『リソースをリソース・グループに編成するためのベスト・プラクティス』を参照してください。

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

    • タグ-ユーザー・タグを追加します。 ユーザー・タグはアカウント全体で表示されます。 詳しくは、『タグの処理』を参照してください。
    • アクセス管理タグ-アクセス制御関係の編成に役立つアクセス管理タグを追加します。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。
    • 仮想プライベートクラウド- VPC を選択してください。 このACLには、デフォルトのVPCを使用するか、リストから選択することができます(定義されている場合)。 詳しくは、Virtual Private Cloud の概要を参照してください。
  6. [ルール] で [ 作成 +] をクリックし、サブネットへのトラフィックの入出を許可するかどうかを定義する受信および送信ルールを設定します。 ルールごとに、以下の情報を指定します。

    • 指定したトラフィックが許可されるのかまたは拒否されるのかを選択します。
    • ルールを適用するプロトコルを選択します。 ACLルールで任意 IPv4 のプロトコルを使用する方法の詳細については、 「インターネット通信プロトコルの理解」 を参照してください。
    • ルールの送信元および宛先に、ルールを適用する IP 範囲とポートを指定します。 例えば、サブネットの IP 範囲 192.168.0.0/24 へのすべてのインバウンド・トラフィックを許可するには、送信元に**「すべて」を指定し、宛先に「192.168.0.0/24」を指定します。 一方、サブネット全体で 169.168.0.0/24 からのインバウンド・トラフィックだけを許可するには、ルールの送信元に「169.168.0.0/24」を指定し、宛先に「すべて」**を指定します。
    • ルールの優先順位を指定します。 小さい数値のルールが最初に評価され、大きい数値のルールをオーバーライドします。 例えば、優先順位 2 のルールで HTTP トラフィックが許可され、優先順位 5 のルールがすべてのトラフィックを拒否する場合、HTTP トラフィックは引き続き許可されます。
    • 「作成」 をクリックします。
    • この ACL に接続するサブネットを選択します。 「添付 」をクリックして、サブネットを追加で添付してください。

    サブネットに既存の ACL 接続がある場合、ACL は作成される ACL に置き換えられます。

  7. ページの右下にある「要約」メニューで、合計見積もりコストを確認します。

CLI からネットワーク ACL を作成する

開始する前に、 CLI 環境をセットアップします

CLI からネットワーク ACL を作成するには、次のコマンドを実行します

ibmcloud is network-acl-create ACL_NAME VPC \
[--rules (RULES_JSON|@RULES_JSON_FILE) | --source-acl-id SOURCE_ACL_ID] \
[--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] \
[--output JSON] [-q, --quiet]

ここで、

ACL_NAME
ネットワーク ACL の名前。 VPC
VPC の ID。 --rules
JSON または JSON ファイル形式の ACL ルール。 --source-acl-id
ルールをコピーするネットワークACLのID。 --resource-group-id
リソース・グループの ID。 このオプションは --resource-group-name と同時に指定することはできません。 --resource-group-name
リソース・グループの名前。 このオプションは --resource-group-id と同時に指定することはできません。 --output
JSON形式で出力する。 -q, --quiet
詳細出力を抑制します。

以下に例を示します。

  • ibmcloud is network-acl-create my-acl 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479
  • ibmcloud is network-acl-create my-acl 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479 --source-acl-id 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3

API を使用してネットワーク ACL を作成する

API を使用してネットワーク ACL を作成するには、次の手順に従ってください

  1. API 環境をセットアップします。

  2. API コマンドで使用する VpcId の値を変数に格納します。

    export VpcId=<your_vpc_id>
    
  3. ネットワーク ACL を作成します。

    curl -X POST -sH "Authorization:${iam_token}" \
    "$vpc_api_endpoint/v1/network_acls?version=$api_version&generation=2" \
    -d '{"name": "testacl", "vpc":{"id": "'$VpcId'"},"resource_group": {"id": "'$ResourceGroupId'"}}' | jq
    

例: ルールの構成

例えば、以下のインバウンド・ルールを構成できます。

  • インターネットからの HTTP トラフィックを許可する。
  • サブネット 10.10.20.0/24 からのすべてのインバウンド・トラフィックを許可する。
  • その他のすべてのインバウンド・トラフィックを拒否する。
インバウンドルールを設定するための情報。
優先順位 許可/拒否 プロトコル ソース 宛先
1 許可 TCP 任意の IP、ポート 80 - 80 任意の IP、任意のポート
2 許可 任意 10.10.20.0/24, どこでもいい 任意の IP、任意のポート
3 拒否 任意 任意の IP、任意のポート 任意の IP、任意のポート

次に、以下のアウトバウンド・ルールを構成します。

  • インターネットへの HTTP トラフィックを許可する。
  • サブネット 10.10.20.0/24 へのすべてのアウトバウンド・トラフィックを許可する。
  • その他のすべてのアウトバウンド・トラフィックを拒否する。
アウトバウンドルールを設定するための情報。
優先順位 許可/拒否 プロトコル ソース 宛先
1 許可 TCP 任意の IP、任意のポート 任意の IP、ポート 80 - 80
2 許可 任意 任意の IP、任意のポート 10.10.20.0/24, どこでもいい
3 拒否 任意 任意の IP、任意のポート 任意の IP、任意のポート