ネットワーク ACL の作成
ACL を構成して、サブネットに対するインバウンドとアウトバウンドのトラフィックを制限できます。 デフォルトでは、すべてのトラフィックが許可されます。
各サブネットは、1 つの ACL にのみ接続できます。 ただし、各 ACL は複数のサブネットに接続できます。
開始する前に、VPC とサブネットが作成されていることを確認してください。
コンソールでネットワークACLを作成する
コンソール IBM Cloud でACLを設定するには、次の手順に従ってください:
-
コンソール IBM Cloud に移動し、 アカウントにログインしてください。
-
ナビゲーション メニュー
を選択し、 インフラストラクチャ
> ネットワーク > アクセス制御リストをクリックします。
-
**作成 +**をクリックします。
-
「ロケーションの編集」 アイコン
を選択し、以下のフィールドに値を入力します。
- 地域-アクセス制御リストの大陸を選択します。
- 地域-アクセス制御リストの地域を選択します。
-
詳細の下にある以下のフィールドに値を入力してください:
- Name- アクセス制御リストの一意の名前を入力します。
- リソース・グループ-アクセス制御リストのリソース・グループを選択します。 このアクセス制御リストのデフォルト・グループを使用することも、リソース・グループ・リスト (定義されている場合) から選択することもできます。 詳しくは、『リソースをリソース・グループに編成するためのベスト・プラクティス』を参照してください。
プロビジョニングが完了すると、リソースグループを変更することはできません。
- タグ-ユーザー・タグを追加します。 ユーザー・タグはアカウント全体で表示されます。 詳しくは、『タグの処理』を参照してください。
- アクセス管理タグ-アクセス制御関係の編成に役立つアクセス管理タグを追加します。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。
- 仮想プライベートクラウド- VPCを選択してください。 このACLにはデフォルトのVPCを使用するか、リストから選択できます(定義されている場合)。 詳しくは、Virtual Private Cloud の概要を参照してください。
-
[ルール] で、 [作成 +] をクリックし、サブネットへの流入および流出を許可するトラフィックを定義する流入ルールと流出ルールを設定します。 ルールごとに、以下の情報を指定します。
- 指定したトラフィックが許可されるのかまたは拒否されるのかを選択します。
- ルールを適用するプロトコルを選択します。 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 に置き換えられます。
-
ページの右下にある「要約」メニューで、合計見積もりコストを確認します。
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 - ACLのルールをJSONまたはJSONファイルで指定する。
--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-b5f8e8d1f479ibmcloud is network-acl-create my-acl 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479 --source-acl-id 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3
APIを使用したネットワークACLの作成
APIを使用してネットワークACLを作成するには、次の手順に従ってください:
-
API 環境をセットアップします。
-
API コマンドで使用する
VpcIdの値を変数に格納します。export VpcId=<your_vpc_id> -
ネットワーク 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、任意のポート |