ネットワーク ACL の作成
ACL を構成して、サブネットに対するインバウンドとアウトバウンドのトラフィックを制限できます。 デフォルトでは、すべてのトラフィックが許可されます。
各サブネットは、1 つの ACL にのみ接続できます。 ただし、各 ACL は複数のサブネットに接続できます。
開始する前に、VPC とサブネットが作成されていることを確認してください。
コンソールでネットワークACLを作成する
IBM Cloud コンソールで ACL を設定するには、以下の手順に従う:
-
IBM Cloud コンソールにアクセスし、アカウントにログインする。
-
Navigation Menu(ナビゲーションメニュー
を選択し、Infrastructure(インフラストラクチャー) > Network(ネットワーク) > Access Control List(アクセスコントロールリスト)の順にクリックします。
-
**作成 +**をクリックします。
-
「ロケーションの編集」 アイコン
を選択し、以下のフィールドに値を入力します。
- 地域-アクセス制御リストの大陸を選択します。
- 地域-アクセス制御リストの地域を選択します。
-
detailsの下にある以下のフィールドに値を入力する:
- パブリック・ゲートウェイ名-アクセス制御リストの固有の名前を入力します。
- リソース・グループ-アクセス制御リストのリソース・グループを選択します。 このアクセス制御リストのデフォルト・グループを使用することも、リソース・グループ・リスト (定義されている場合) から選択することもできます。 詳しくは、『リソースをリソース・グループに編成するためのベスト・プラクティス』を参照してください。
プロビジョニング完了後、リソースグループを変更することはできません。
- タグ-ユーザー・タグを追加します。 ユーザー・タグはアカウント全体で表示されます。 詳しくは、『タグの処理』を参照してください。
- アクセス管理タグ-アクセス制御関係の編成に役立つアクセス管理タグを追加します。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。
- VPC - VPC を選択します。 このパブリック・ゲートウェイにはデフォルトのVPCを使用するか、リストから選択することができます(定義されている場合)。 詳しくは、Virtual Private Cloud の概要を参照してください。
-
Rules]の下にある[ Create +]をクリックして、サブネットの内外に許可されるトラフィックを定義するインバウンドおよびアウトバウンドのルールを設定します。 ルールごとに、以下の情報を指定します。
- 指定したトラフィックが許可されるのかまたは拒否されるのかを選択します。
- ルールを適用するプロトコルを選択します。
- ルールの送信元および宛先に、ルールを適用する 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 に接続するサブネットを選択します。 Attach]をクリックして、追加のサブネットをアタッチする。
サブネットに既存の 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
は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を作成するには、以下の手順に従う:
-
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、任意のポート |