すべてのプロダクト
Search
ドキュメントセンター

:AlbConfig を使用して ACL を設定し、アクセス制御を有効にする

最終更新日:Dec 26, 2024

Application Load Balancer (ALB) Ingress を使用してサービスを公開する場合、アクセス制御リスト (ACL) を設定して、特定の IP アドレスを使用するクライアントからのサービスへのリクエストを許可または拒否できます。このトピックでは、AlbConfig を使用して ACL を作成または変更し、リスナーに関連付ける方法について説明します。

ACL のしくみ

ALB Ingress の ACL はリスナーに関連付けられており、ホワイトリストまたはブラックリストに登録された IP アドレスからのリクエストを受け入れるか拒否します。ACL には、CIDR ブロックのグループが含まれています。AlbConfig を使用して ACL をリスナーに関連付けると、リスナーは ACL 内のエントリを使用して、バックエンドサービスへのアクセスするためにリクエストが送信された送信元 IP アドレスと照合します。次のいずれかの方法を使用してリクエストを制御できます。

  • ACL 内のエントリと一致する送信元 IP アドレスからのリクエストのみを許可するように ACL を設定します。

  • ACL 内のエントリと一致する送信元 IP アドレスからのリクエストを拒否するように ACL を設定します。

重要

ACL は、IPv4 アドレスのみを使用したアクセス制御をサポートします。

次の図は、ACL のしくみを示しています。

設定方法

次の表に、リスナーと ACL を関連付けるために使用できる方法を示します。 aclIds パラメーターを使用することをお勧めします。

項目

aclIds パラメーターを使用する

aclEntries パラメーターを使用する

ALB Ingress コントローラーのバージョン

このパラメーターは、2.7.0 以後の ALB Ingress コントローラーで使用できます。

このパラメーターは、すべてのバージョンの ALB Ingress コントローラーで使用できます。

既存の ACL との関連付け

既存の ACL の ID を使用して、リスナーを ACL に関連付けることができます。

2.7.0 以後の ALB Ingress コントローラーでは、リスナーを既存の ACL に関連付けることはできません。

ACL の作成方法

ACL を使用する前に、サーバーロードバランサー (SLB) コンソールで ACL を手動で作成する必要があります。

AlbConfig を使用して ACL を作成できます。

使用シナリオ

この方法は、ACL 内のエントリを頻繁に変更する必要がある場合や、ACL を費用対効果の高い方法で維持したい場合に適しています。

この方法は、少数のエントリを含む少数のリスナーと ACL を使用してアクセス制御を有効にしたい場合に適しています。

重要
  • aclIds パラメーターと aclEntries パラメーターは、ACL 設定において相互に排他的です。リスナーの ACL を設定するには、これらのいずれか一方のみを使用できます。両方のパラメーターを同時に使用すると、エラーが発生します。

  • 2.7.0 以後の ALB Ingress コントローラーでは、aclIds パラメーターのみを使用して、既存の ACL をリスナーに関連付けることができます。

前提条件

AlbConfig が作成され、AlbConfig を使用してリスナーが設定されています。 aclConfig パラメーターは、使用するリスナーに関連付けられています。

aclIds パラメーターを使用して ACL をリスナーに関連付ける

ステップ 1: ACL を作成する

アクセス制御を有効にする前に、ACL を作成する必要があります。

  1. ALB コンソール にログインします。
  2. 上部のナビゲーションバーで、ACL を作成するリージョンを選択します。

  3. 左側のナビゲーションペインで、Application Load Balancer > 概要 を選択します。

  4. 概要 ページで、アクセス制御リストの作成 をクリックします。

  5. アクセス制御リストの作成 ダイアログボックスで、次のパラメーターを設定し、OK をクリックします。

    パラメーター

    説明

    ACL 名

    ネットワーク ACL の名前を入力します。

    リソースグループ

    リソースグループを選択します。

    タグ

    タグキー パラメーターと タグ値 パラメーターを設定します。

    タグを指定すると、アクセス制御 ページでタグ別に ACL をフィルタリングできます。

ステップ 2: ACL にエントリを追加する

ACL を作成した後、ACL にエントリを追加できます。ACL エントリは、ALB インスタンスにリクエストを送信する送信元 IP アドレスまたは CIDR ブロックを指定します。各 ACL に複数のエントリを追加できます。

  1. 概要 ページで、管理する ACL を見つけ、管理操作 列でクリックします。

  2. ACL 詳細ページの エントリ タブで、次のいずれかの方法を使用してエントリを追加します。

    • 単一の IP アドレスまたは CIDR ブロックを追加する

      エントリの追加 をクリックします。 ACL エントリの追加 ダイアログボックスで、IP/CIDR ブロック パラメーターと 備考 パラメーターを設定します。次に、追加 をクリックします。

    • 複数の IP アドレスまたは CIDR ブロックを一度に追加する

      ACL エントリの追加 をクリックします。 ACL エントリの追加 ダイアログボックスで、複数の IP アドレスまたは CIDR ブロックと備考を追加します。次に、追加 をクリックします。

      説明

      一度に複数のエントリを追加する場合は、次の点に注意してください。

      • 1 行に 1 つのエントリを入力します。Enter キーを押して新しい行を開始します。

      • エントリ内で、縦線 (|) を使用して IP アドレスまたは CIDR ブロックと備考を区切ります。たとえば、192.168.1.0/24|備考 と入力できます。

      • 一度に最大 20 個のエントリを追加できます。

  3. エントリを追加した後、ビジネス要件に基づいて次の操作を実行します。

    • 追加した IP アドレスまたは CIDR ブロックを [エントリ] 列で表示します。

    • エントリを削除します。削除するエントリを見つけて、削除アクション 列でクリックします。削除するエントリを選択し、リストの下にある 削除 をクリックすることもできます。

    • エントリをエクスポートするには、リストの右上隅にある 下载 アイコンをクリックしてすべてのエントリをエクスポートするか、エクスポートするエントリを選択して 下载 アイコンをクリックします。

ステップ 3: ACL をリスナーに関連付ける

次の YAML コード例では、spec.listeners.aclConfig パラメーターが既存の AlbConfig に追加され、aclIds パラメーターが作成された ACL の ID に設定されています。この例では、作成された ACL の ID は acl-wtg*** です。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
  #...
  listeners:
    - port: #...
      protocol: #...
      aclConfig:
        aclType: White # ホワイトリストモード。
        aclIds:  
          - acl-wtg***	# 既存の ACL の ID を ACL 設定に追加します。この例では、既存の ACL の ID は acl-wtg*** です。
	#...

次の表に、aclConfig のパラメーターを示します。

パラメーター

説明

aclType

ACL のタイプ。有効な値: Black および White

aclIds

リスナーに関連付ける ACL の ID。

重要

各リスナーは最大 3 つの ACL に関連付けることができます。

ステップ 4: アクセス制御の効果を確認する

パブリック IP アドレスがホワイトリストのエントリと一致するか、ブラックリストのエントリと一致しないクライアントを使用して、バックエンドサービスにアクセスし、ACL 設定の効果を確認できます。

この例では、ALB Ingress を始める トピックで作成されたリソースを使用します。

クライアントからのアクセスが許可されている場合、クライアントは想定どおりにバックエンドサービスにアクセスできます。

image

ステップ 5: (オプション) リスナーから ACL の関連付けを解除する

次の YAML コードでは、リスナーから ACL の関連付けを解除する場合、aclIds パラメーターの値から ACL の ID を削除するか、aclIds パラメーターの値を null に変更するだけです。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
   #...
  listeners:
    - port: #...
      protocol: #...
      aclConfig:
        aclType: White
        aclIds: null  # このパラメーターの値から既存の ACL の ID を削除します。この例では、既存の ACL の ID は acl-wtg*** です。
  #...
説明

AlbConfig から ACL を削除することはできません。ACL を削除するには、SLB コンソール にログインします。

aclEntries パラメーターを使用して ACL を作成する

重要
  • 2.7.0 以後の ALB Ingress コントローラーでは、aclName パラメーターを使用して既存の ACL をリスナーに関連付けることはできなくなりました。 aclName のパラメーターを更新するたびに、新しい ACL が作成され、リスナーに関連付けられます。

  • 2.6.0 以前の ALB Ingress コントローラーは、ライトバックメカニズムをサポートしています。次のセクションでは、ライトバックメカニズムのしくみについて説明します。

    • AlbConfig で aclConfig パラメーターが空のままになっている場合、リスナーに関連付けられた ACL のエントリは AlbConfig に書き戻されます。

    • AlbConfig で aclConfig パラメーターが設定されている場合、またはリスナーに関連付けられた ACL のエントリが AlbConfig に書き戻されている場合、AlbConfig は変更されません。

    Ingress リソースが変更された場合、ALB Ingress コントローラーは設定された AlbConfig を使用してコンソール内の ACL 設定を上書きします。この場合、設定の整合性を維持する必要があります。

ステップ 1: ACL にエントリを設定する

次の YAML コード例では、既存の AlbConfig の spec.listeners.aclConfig パラメーターが追加または変更され、aclEntries パラメーターに CIDR ブロックが指定されています。 aclName パラメーターに値が指定されている場合、ACL が作成され、その値が名前として使用されます。 aclName パラメーターに値が指定されていない場合、acl-{albName}-{port} の形式で名前が自動的に生成されます。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
   #...
  listeners:
    - port: #...
      protocol: #...
      aclConfig:
        aclEntries: 
          - 192.168.XX.XX/16
          - 172.10.XX.XX/16
        aclType: White # ホワイトリストモード。
        aclName: "acl-test" # acl-test という名前の ACL が作成され、リスナーに関連付けられます。
  #...

次の表に、aclConfig のパラメーターを示します。

パラメーター

説明

aclEntries

ACL のエントリ。エントリは、127.0.0.1/32 などの CIDR ブロックである必要があります。

aclType

ACL のタイプ。有効な値: Black および White

aclName

ACL の名前。

ステップ 2: アクセス制御の効果を確認する

パブリック IP アドレスがホワイトリストのエントリと一致するか、ブラックリストのエントリと一致しないクライアントを使用して、バックエンドサービスにアクセスし、ACL 設定の効果を確認できます。

この例では、ALB Ingress を始める トピックで作成されたリソースを使用します。

クライアントからのアクセスが許可されている場合、クライアントは想定どおりにバックエンドサービスにアクセスできます。

image

ステップ 3: (オプション) ACL を削除する

AlbConfig を更新することで ACL を削除できます。次のコード例では、172.10.XX.XX/16 CIDR ブロックを含むホワイトリストタイプの ACL が削除されます。AlbConfig 内の更新された aclEntries パラメーターは、関連付けられた ACL に同期されます。この例では、ACL の名前は acl-test です。 aclEntries パラメーターが空のままになっている場合、すべてのエントリが ACL から削除されます。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
   #...
  listeners:
    - port: #...
      protocol: #...
      aclConfig:
        aclEntries: 
          - 192.168.XX.XX/16
        aclType: White
        aclName: "acl-test" # acl-test ACL 内の 172.10.XX.XX/16 エントリも削除されます。
  #...
説明

AlbConfig から ACL を削除することはできません。ACL を削除するには、SLB コンソール にログインします。