リクエストからのアクセスを規制するために、プロトコル、ポート、およびIPアドレスに基づいてアクセス制御を実装するようにセキュリティグループを構成できます。 セキュリティグループは、アクセス制御リストよりもきめ細かいアクセス制御を提供します。 セキュリティグループは、プロトコルとポートに基づくアクセス制御をサポートするだけでなく、IPv6アドレスからのアクセスを規制するアクセス制御ポリシーもサポートします。
シナリオ
ALBインスタンスがセキュリティグループに追加される前に、ALBインスタンスのリスナーポートはデフォルトですべてのリクエストを許可します。
ALBインスタンスがDenyルールを含まないセキュリティグループに追加されると、ALBインスタンスのリスナーポートはデフォルトですべてのリクエストを許可します。 特定のIPアドレスからALBインスタンスへのリクエストのみを許可する場合は、拒否ルールも作成する必要があります。
Application Load Balancer (ALB) インスタンスへのインバウンドアクセスを制御する場合は、ALBインスタンスをセキュリティグループに追加し、セキュリティ要件に基づいてセキュリティグループルールを設定できます。
ALBのアウトバウンドトラフィックは、ユーザーに返される応答パケットを指します。 サービスの可用性を維持するために、セキュリティグループはALBのアウトバウンドトラフィックをブロックしません。 アウトバウンドトラフィックを許可するようにセキュリティグループルールを設定する必要はありません。
一部のリスナーポートへのアクセスをブロックし、他のリスナーポートへのアクセスを許可する場合は、ポートへのアクセスを制御するようにセキュリティグループを構成できます。 次の表に、3つの異なるシナリオでセキュリティグループを設定して、ALBインスタンスのポートのアクセス制御を有効にする方法を示します。 このシナリオでは、ポート80でリッスンするHTTPリスナーとポート81でリッスンするHTTPリスナーがALBインスタンスに設定されます。
シナリオ | セキュリティグループルール | 期待される結果 | 関連ドキュメント |
ALBインスタンスをセキュリティグループに追加する前 | デフォルトでは、ALBインスタンスのリスナーポートはすべてのリクエストを許可します。 |
| |
ALBインスタンスをセキュリティグループに追加する | HTTPポート81へのリクエストをブロックする 説明 このセクションでは、このトピックに関連するセキュリティグループルールについてのみ説明します。 その他のデフォルトルールについては説明しません。 |
| |
セキュリティグループルールの変更 |
説明 このセクションでは、このトピックに関連するセキュリティグループルールについてのみ説明します。 その他のデフォルトルールについては説明しません。 |
|
制限事項
デフォルトでは、セキュリティグループは使用できません。 セキュリティグループを使用するには、アカウントマネージャーに連絡してください。
カテゴリ
セキュリティグループタイプ
説明
サポートされているセキュリティグループALB
セキュリティグループは仮想プライベートクラウド (VPC) にある必要があり、セキュリティグループとALBインスタンスは同じVPCにある必要があります。
各ALBインスタンスは、最大4つのセキュリティグループに追加でき、最大800のセキュリティグループルールをサポートします。 同じALBインスタンスのセキュリティグループは、同じタイプである必要があります。 たとえば、ALBインスタンスを複数の基本セキュリティグループまたは複数の高度セキュリティグループに追加できます。
すでに基本セキュリティグループに含まれているALBインスタンスを高度なセキュリティグループに追加するには、まず基本セキュリティグループからALBインスタンスを削除する必要があります。 すでに高度なセキュリティグループに含まれている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レコードの設定
ALBインスタンスのドメイン名をコピーし、次の操作を実行して、カスタムドメイン名をALBインスタンスのドメイン名にマップするCNAMEレコードを追加します。
Alibaba Cloud DNS コンソールにログオンします。
[ドメイン名の解決] ページで、[ドメイン名の追加] をクリックします。
[ドメイン名の追加] ダイアログボックスで、ホストのドメイン名を入力し、[OK] をクリックします。
重要CNAMEレコードを作成する前に、TXTレコードを使用してドメイン名の所有権を確認する必要があります。
管理するドメイン名を見つけて、[操作] 列の [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インスタンスは、次のセキュリティグループルールを使用します。
ポリシー
優先度
プロトコルタイプ
ポート範囲
権限付与オブジェクト
許可
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へのアクセスを許可するセキュリティグループルールを見つけ、[操作] 列の [変更] をクリックします。 [アクション] を [拒否] に設定し、[保存] をクリックします。
次の表に、このトピックに関連するセキュリティグループルールのみを示します。 次の表に、新しいセキュリティグループルールを示します。
ポリシー
優先度
プロトコルタイプ
ポート範囲
権限付与オブジェクト
拒否
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インスタンスをセキュリティグループに追加する」をご参照ください。
基本セキュリティグループと高度なセキュリティグループの詳細については、「基本セキュリティグループと高度なセキュリティグループ」をご参照ください。
LoadBalancerJoinSecurityGroup: ALBインスタンスをセキュリティグループに追加します。
LoadBalancerLeaveSecurityGroup: セキュリティグループからALBインスタンスを削除します。