リクエストからのアクセスを規制するために、プロトコル、ポート、およびIPアドレスに基づいてアクセス制御を実装するようにセキュリティグループを構成できます。 セキュリティグループは、アクセス制御リストよりもきめ細かいアクセス制御を提供します。 セキュリティグループは、プロトコルとポートに基づくアクセス制御をサポートするだけでなく、IPv6アドレスからのアクセスを規制するアクセス制御ポリシーもサポートします。
シナリオ
ALBインスタンスがセキュリティグループに追加される前に、ALBインスタンスのリスナーポートはデフォルトですべてのリクエストを許可します。
ALBインスタンスがDenyルールを含まないセキュリティグループに追加されると、ALBインスタンスのリスナーポートはデフォルトですべてのリクエストを許可します。 特定のIPアドレスからALBインスタンスへのリクエストのみを許可する場合は、拒否ルールも作成する必要があります。
特定のIPアドレスからのアクセスを許可または拒否する方法の詳細については、「セキュリティグループをブラックリストまたはホワイトリストとして使用する」をご参照ください。
プロトコルとポートに基づいてアクセス制御を構成する方法の詳細については、「セキュリティグループを使用してリスナーとポートに基づいてアクセス制御を構成する」をご参照ください。
Application Load Balancer (ALB) インスタンスへのインバウンドアクセスを制御する場合は、ALBインスタンスをセキュリティグループに追加し、セキュリティ要件に基づいてセキュリティグループルールを設定できます。
ALBアウトバウンドトラフィックは、ユーザーに返される応答パケットを指します。 サービスの継続性を確保するため、ALBセキュリティグループは送信パケットをブロックしません。 アウトバウンドルールを作成する必要はありません。
セキュリティグループを作成するときは、優先度が1の拒否ルールにALBのローカルIPアドレスを追加しないことを推奨します。 そうしないと、セキュリティグループルールがALBの管理セキュリティグループと競合し、ALBとバックエンドサーバー間の通信が中断される可能性があります。 ALBインスタンスのローカルIPアドレスを表示するには、ALBコンソールにログインし、ALBインスタンスの詳細ページに移動します。
一部のリスナーポートへのアクセスをブロックし、他のリスナーポートへのアクセスを許可する場合は、ポートへのアクセスを制御するようにセキュリティグループを構成できます。 次の表に、3つの異なるシナリオでセキュリティグループを設定して、ALBインスタンスのポートのアクセス制御を有効にする方法を示します。 このシナリオでは、ポート80でリッスンするHTTPリスナーとポート81でリッスンするHTTPリスナーがALBインスタンスに設定されます。
シナリオ | セキュリティグループルール | 期待される結果 | 関連ドキュメント |
ALBインスタンスをセキュリティグループに追加する前 | デフォルトでは、ALBインスタンスのリスナーポートはすべてのリクエストを許可します。 |
| |
ALBインスタンスをセキュリティグループに追加する | HTTPポート81へのリクエストをブロックする 説明 このセクションでは、このトピックに関連するセキュリティグループルールについてのみ説明します。 その他のデフォルトルールについては説明しません。 |
| |
セキュリティグループルールの変更 |
説明 このセクションでは、このトピックに関連するセキュリティグループルールについてのみ説明します。 その他のデフォルトルールについては説明しません。 |
|
制限事項
デフォルトでは、セキュリティグループは使用できません。 セキュリティグループを使用するには、アカウントマネージャーに連絡してください。
カテゴリ | セキュリティグループタイプ | 説明 |
サポートされているセキュリティグループALB |
|
基本セキュリティグループと高度なセキュリティグループの詳細については、「基本セキュリティグループと高度なセキュリティグループ」をご参照ください。 |
セキュリティグループがサポートされていませんALB | 管理セキュリティグループ | マネージドセキュリティグループの詳細については、「マネージドセキュリティグループ」をご参照ください。 |
前提条件
VPC1という名前の仮想プライベートクラウド (VPC) が作成されます。 詳細については、「VPC の作成と管理」をご参照ください。
ECS01とECS02という名前の2つのElastic Compute Service (ECS) インスタンスがVPC1に作成されます。 ECS01およびECS02は、ALBインスタンスのバックエンドサーバーとして機能します。 異なるアプリケーションがECS01とECS02に展開されます。
ECSインスタンスの作成方法の詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
次のサンプルコードは、ECS01およびECS 02にテストアプリケーションをデプロイする方法を示しています。
ドメイン名を登録し、そのドメイン名に対してICP (Internet content provider) 番号を取得する。 詳細については、「Alibaba Cloudへのドメイン名の登録」および「概要」をご参照ください。
リソースの設定
手順1: ALBインスタンスのサーバーグループの作成
ALBコンソールにログインします。
上部のナビゲーションバーで、サーバーグループを作成するリージョンを選択します。 この例では、中国 (杭州) が選択されています。
左側のナビゲーションウィンドウで、
を選択します。[サーバーグループ] ページで、[サーバーグループの作成] をクリックします。
[サーバーグループの作成] ダイアログボックスでパラメーターを設定し、[作成] をクリックします。
次の表に、このトピックに関連するパラメーターを示します。 他のパラメーターにはデフォルト値を使用します。 詳細については、「サーバーグループの作成と管理」をご参照ください。
パラメーター
説明
サーバーグループタイプ
サーバーグループの種類を選択します。 この例では、[サーバー] が選択されています。
サーバーグループ名
サーバーグループの名前を入力します。
[VPC]
サーバーグループを作成するVPCを選択します。 この例では、VPC1が選択されています。
バックエンドサーバープロトコル
バックエンドプロトコルを選択します。 この例では、HTTPが選択されています。
スケジューリングアルゴリズム
スケジューリングアルゴリズムを選択します。 この例では、[加重ラウンドロビン] が選択されています。
[サーバーグループの作成] ダイアログボックスで、[バックエンドサーバーの追加] をクリックします。
[バックエンドサーバー] タブで、[バックエンドサーバーの追加] をクリックします。
[バックエンドサーバーの追加] パネルで、[ECS01] と [ECS02] を選択し、[次へ] をクリックします。
バックエンドサーバーのポートと重みを指定し、[OK] をクリックします。
手順2: ALBインスタンスの作成とリスナーの設定
ALBコンソールにログインします。
[インスタンス] ページで、[ALBの作成] をクリックします。
購入ページで、次のパラメータを設定します。
次のセクションでは、一部のパラメーターについてのみ説明します。 他のパラメータはデフォルト値を使用する。 詳細については、「ALBインスタンスの作成」をご参照ください。
リージョン: ALBインスタンスを作成するリージョンです。 この例では、中国 (杭州) が選択されています。
ネットワークタイプ: ALBインスタンスのネットワークタイプ。 この例では、インターネットが選択されています。
VPC: ALBインスタンスを作成するVPC。 この例では、VPC1が選択されています。
[今すぐ購入] をクリックして、支払いを完了します。
[インスタンス] ページに戻り、ALBインスタンスのIDをクリックします。
[リスナー] タブをクリックし、[リスナーのクイック作成] をクリックします。
[クイック作成リスナー] ダイアログボックスでパラメーターを設定し、[OK] をクリックします。 この例では、ポート80でリッスンするHTTPリスナーが作成されます。 下表に、各パラメーターを説明します。
パラメーター
説明
リスナープロトコル
リスナープロトコルを選択します。 この例では、HTTPが選択されています。
リスナーポート
リスナーポートを入力します。 この例では、ポート80が指定されている。
サーバーグループ
[サーバータイプ] を選択し、[サーバータイプ] の横にあるドロップダウンリストからサーバーグループを選択します。 この例では、ステップ1で作成したサーバグループが選択されています。
[リスナー] タブで、[クイック作成リスナー] をクリックします。
[クイック作成リスナー] ダイアログボックスでパラメーターを設定し、[OK] をクリックします。 この例では、ポート81でリッスンするHTTPリスナーが作成されます。 下表に、各パラメーターを説明します。
パラメーター
説明
リスナープロトコル
リスナープロトコルを選択します。 この例では、HTTPが選択されています。
リスナーポート
リスナーポートを入力します。 この例では、ポート81が指定されている。
サーバーグループ
[サーバータイプ] を選択し、[サーバータイプ] の横にあるドロップダウンリストからサーバーグループを選択します。 この例では、ステップ1で作成したサーバグループが選択されています。
手順3: CNAMEレコードの設定
実際のビジネスシナリオでは、CNAMEレコードを使用して、カスタムドメイン名をALBインスタンスのドメイン名にマップすることを推奨します。
左側のナビゲーションウィンドウで、
を選択します。インスタンスページで、ALBインスタンスのドメイン名をコピーします。
CNAMEレコードを作成するには、次の手順を実行します。
説明ドメイン名がAlibaba Cloudドメインを使用して登録されていない場合、DNSレコードを設定する前にドメイン名をAlibaba Cloud DNSに追加する必要があります。 詳細については、「ドメイン名の管理」をご参照ください。
Alibaba Cloud DNSコンソールにログインします。
権威DNS解決ページで、ドメイン名を見つけて、アクション列のDNS設定をクリックします。
ドメイン名の詳細ページのDNS設定タブで、DNSレコードの追加をクリックします。
[DNSレコードの追加] パネルでパラメーターを設定し、[OK] をクリックします。 下表にパラメーターを示します。
パラメーター
説明
レコードタイプ
ドロップダウンリストから [CNAME] を選択します。
ホスト名
ドメイン名のプレフィックスを入力します。 この例では、@ を入力します。
説明ルートドメイン名を使用する場合は、
@
と入力します。DNSリクエストソース
[デフォルト] を選択します。
レコード値
ALBインスタンスのドメイン名であるCNAMEを入力します。
TTL
DNSサーバーにキャッシュされるCNAMEレコードの有効期限 (TTL) 値を選択します。 この例では、デフォルト値が使用されます。
手順4: セキュリティグループの作成
ALBインスタンスをセキュリティグループに追加する前に、ECSコンソールでセキュリティグループを作成する必要があります。
ECS コンソールにログインします。
左側のナビゲーションウィンドウで、
を選択します。上部のナビゲーションバーで、セキュリティグループを作成するリージョンを選択します。 この例では、中国 (杭州) が選択されています。
[セキュリティグループ] ページで、[セキュリティグループの作成] をクリックします。
[セキュリティグループの作成] ページで、[基本情報] セクションのパラメーターを設定します。
次のセクションでは、このトピックに関連するパラメーターのみについて説明します。 その他のパラメーターの詳細については、「セキュリティグループの作成」をご参照ください。
クイック作成リスナー: この例では、VPC1が選択されています。
セキュリティグループタイプ: この例では、基本的なセキュリティグループが選択されています。
セキュリティグループにアクセスルールを追加します。
[インバウンド] タブで、[ルールの追加] をクリックします。
パラメーターを設定し、[セキュリティグループの作成] をクリックします。 下表に、各パラメーターを説明します。
パラメーター
説明
Action
[拒否] を選択します。
優先度
デフォルト値の1が使用されます。
プロトコルタイプ
[カスタムTCP] を選択します。
説明QUICリスナーのセキュリティグループルールを追加するには、[カスタムUDP] を選択します。
ポート範囲
ポート番号81を入力します。
権限付与オブジェクト
[すべてのIPv4アドレス (0.0.0.0/0)]
および[すべてのIPv6アドレス (::/0)]
を選択します。説明
セキュリティグループルールの説明を入力します。
手順5: ALBインスタンスをセキュリティグループに追加する前にネットワーク接続をテストする
クライアントとECS01およびECS02間のネットワーク接続をテストします。 この例では、インターネットアクセスを有するクライアントが使用される。
http:// domain name:80
など、ブラウザのアドレスバーにドメイン名とポート番号を入力し、Enterキーを押します。 次の図は、ALBインスタンスがHTTPポート80にアクセスできることを示しています。http:// domain name:81
など、ブラウザのアドレスバーにドメイン名とポート番号を入力し、Enterキーを押します。 次の図は、ALBインスタンスがHTTPポート81にアクセスできることを示しています。
手順6: ALBインスタンスをセキュリティグループに追加し、結果を確認します
ALBインスタンスをセキュリティグループに追加し、セキュリティグループルールがポートで有効になるかどうかをテストします。
ALBコンソールにログインします。
[インスタンス] ページで、管理するALBインスタンスのIDをクリックします。 [インスタンスの詳細] タブで、[セキュリティグループ] タブをクリックします。
[セキュリティグループ] タブで、[セキュリティグループの作成] をクリックします。 [ALBインスタンスをセキュリティグループに追加] ダイアログボックスで、[手順4: セキュリティグループの作成] で作成したセキュリティグループを選択し、[OK] をクリックします。
左側のパネルで、管理するセキュリティグループのIDをクリックします。 [インバウンドポリシー] または [アウトバウンドポリシー] タブをクリックして、セキュリティグループルールを表示できます。
次の表では、このトピックに関連するインバウンドルールのみを説明します。 ALBインスタンスは、次のセキュリティグループルールを使用します。
Action
優先度
プロトコルタイプ
ポート範囲
権限付与オブジェクト
許可
1
カスタマイズTCP
目的地: 80/80
出典: すべてのIPv4アドレス (0.0.0.0/0)
許可
1
カスタマイズTCP
目的地: 80/80
ソース: すべてのIPv6アドレス (::/0)
拒否
1
カスタマイズTCP
目的地: 81/81
出典: すべてのIPv4アドレス (0.0.0.0/0)
拒否
1
カスタマイズTCP
目的地: 81/81
ソース: すべてのIPv6アドレス (::/0)
セキュリティグループルールを変更した後、ポートのアクセシビリティをテストします。
http:// domain name:80
など、ブラウザのアドレスバーにドメイン名とポート番号を入力し、Enterキーを押します。 次の図は、ALBインスタンスがHTTPポート80にアクセスできることを示しています。http:// domain name:81
など、ブラウザのアドレスバーにドメイン名とポート番号を入力し、Enterキーを押します。 アプリケーションにアクセスできない場合は、コマンドラインインターフェイス (CLI) を開き、curl http:// Domain name:81
コマンドを実行します。 次の図は、クライアントがALBインスタンスのHTTPポート81にアクセスできないことを示しています。 この結果は、セキュリティグループルールがポート81で有効になることを示しています。
手順7: セキュリティグループルールの変更と結果の検証
セキュリティグループルールを変更し、セキュリティグループルールがポートで有効になるかどうかをテストします。
[インスタンス] ページに戻り、ALBインスタンスのIDをクリックします。 [インスタンスの詳細] タブで、[セキュリティグループ] タブをクリックします。
[基本情報] セクションで、セキュリティグループのIDをクリックします。 [セキュリティグループ] タブの右上隅にある [ECSコンソール] をクリックして、[セキュリティグループの詳細] ページに移動することもできます。
[セキュリティグループの詳細] ページで、TCPポート80へのアクセスを許可するセキュリティグループルールを見つけ、[操作] 列の [変更] をクリックします。 [アクション] を [拒否] に設定し、[保存] をクリックします。
次の表に、このトピックに関連するセキュリティグループルールのみを示します。 次の表に、新しいセキュリティグループルールを示します。
Action
優先度
プロトコルタイプ
ポート範囲
権限付与オブジェクト
拒否
1
カスタマイズTCP
目的地: 80/80
出典: すべてのIPv4アドレス (0.0.0.0/0)
拒否
1
カスタマイズTCP
目的地: 80/80
ソース: すべてのIPv6アドレス (::/0)
拒否
1
カスタマイズTCP
目的地: 81/81
出典: すべてのIPv4アドレス (0.0.0.0/0)
拒否
1
カスタマイズTCP
目的地: 81/81
ソース: すべてのIPv6アドレス (::/0)
セキュリティグループルールを変更した後、ポートのアクセシビリティをテストします。
CLIを開き、
curl http:// Domain name:80
コマンドを実行します。 次の図は、クライアントがALBインスタンスのHTTPポート80にアクセスできないことを示しています。 この結果は、セキュリティグループルールがポート80で有効になることを示しています。CLIを開き、次のコマンドを実行します:
curl http:// Domain name:81
。 次の図は、クライアントがALBインスタンスのHTTPポート81にアクセスできないことを示しています。 この結果は、セキュリティグループルールがポート81で有効になることを示しています。
関連ドキュメント
ALBインスタンスをセキュリティグループに追加および削除する方法の詳細については、「ALBインスタンスをセキュリティグループに追加する」をご参照ください。
ALBインスタンスのホワイトリストとブラックリストを設定する方法の詳細については、「ALBのブラックリストまたはホワイトリストとしてセキュリティグループを使用する」をご参照ください。
基本セキュリティグループと高度なセキュリティグループの詳細については、「基本セキュリティグループと高度なセキュリティグループ」をご参照ください。
LoadBalancerJoinSecurityGroup: ALBインスタンスをセキュリティグループに追加します。
LoadBalancerLeaveSecurityGroup: セキュリティグループからALBインスタンスを削除します。