Azure CLI を使用して、Azure Database for MySQL - フレキシブル サーバーのファイアウォール規則を管理します。
適用対象: Azure Database for MySQL - フレキシブル サーバー
Azure Database for MySQL フレキシブル サーバーでは、フレキシブル サーバーに接続するために、相互に排他的な 2 種類のネットワーク接続方法がサポートされています。 次の 2 つのオプションがあります。
- パブリック アクセス (許可された IP アドレス)
- プライベート アクセス (VNet 統合)
この記事では、Azure CLI 使用での、パブリック アクセス (許可された IP アドレス) による Azure Database for MySQL フレキシブル サーバー インスタンスの作成に焦点を当てます。 この記事では、サーバーの作成後にファイアウォール規則を作成、更新、削除、一覧表示、および表示するために使用できる Azure CLI コマンドの概要について説明します。 パブリック アクセス (許可された IP アドレス) では、Azure Database for MySQL フレキシブル サーバー インスタンスへの接続は許可された IP アドレスのみに制限されます。 クライアント IP アドレスは、ファイアウォール規則で許可されている必要があります。 詳細については、「パブリック アクセス (許可された IP アドレス)」をご覧ください。 ファイアウォール規則は、サーバーの作成時に定義できます (推奨) が、後で追加することもできます。
Azure Cloud Shell を起動する
Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。
Cloud Shell を開くには、コード ブロックの右上隅にある [使ってみる] を選択します。 https://shell.azure.com/bash に移動して、別のブラウザー タブで Cloud Shell を開くこともできます。 [コピー] を選択してコードのブロックをコピーし、Cloud Shell に貼り付けてから、 [入力] を選択して実行します。
CLI をローカルにインストールして使用する場合、このクイックスタートでは、Azure CLI バージョン 2.0 以降が必要です。 バージョンを確認するには、az --version
を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
前提条件
az login コマンドを使用してアカウントにサインインする必要があります。 ID プロパティに注意してください。これは、お使いの Azure アカウントのサブスクリプション ID のことです。
az login
az account set コマンドを使用して、アカウントの特定のサブスクリプションを選択します。 このコマンド内の subscription 引数の値として使用する、az login の出力の ID 値をメモします。 複数のサブスクリプションをお持ちの場合は、リソースが課金の対象となる適切なサブスクリプションを選択してください。 お使いのすべてのサブスクリプションを取得するには、az account list を使用します。
az account set --subscription <subscription id>
Azure CLI を使用してフレキシブル サーバーの作成時にファイアウォール規則を作成する
az mysql flexible-server --public access
コマンドを使用して、"パブリック アクセス (許可された IP アドレス)" による Azure Database for MySQL フレキシブル サーバーを作成し、サーバーの作成中にファイアウォール規則を構成できます。 --public-access スイッチを使用して、サーバーに接続できる許可された IP アドレスを指定できます。 IP アドレスの許可リストに含める 1 つの IP アドレス、または IP アドレスの範囲を指定できます。 IP アドレスの範囲はダッシュで区切る必要があり、スペースは含めません。 次の例に示すように、Azure CLI を使用して Azure Database for MySQL フレキシブル サーバー インスタンスを作成するには、さまざまなオプションがあります。
Azure CLI のリファレンス ドキュメントで、構成可能な CLI パラメーターの完全な一覧を参照してください。 たとえば、以下のコマンドでは、必要に応じてリソース グループを指定できます。
パブリック アクセスによる Azure Database for MySQL フレキシブル サーバー インスタンスを作成し、サーバーへのアクセスするためのクライアント IP アドレスを追加します。
az mysql flexible-server create --public-access <my_client_ip>
パブリック アクセスによる Azure Database for MySQL フレキシブル サーバー インスタンスを作成し、このサーバーにアクセスするための IP アドレスの範囲を追加します。
az mysql flexible-server create --public-access <start_ip_address-end_ip_address>
パブリック アクセスによる Azure Database for MySQL フレキシブル サーバー インスタンスを作成し、Azure IP アドレスからのアプリケーションがサーバーに接続できるようにします。
az mysql flexible-server create --public-access 0.0.0.0
重要
このオプションを選択すると、他の顧客のサブスクリプションからの接続を含め、Azure サービスおよび Azure 内のリソースからこのサーバーへのパブリック アクセスを許可するようにファイアウォールが構成されます。 このオプションを選択する場合は、ログインおよびユーザーのアクセス許可によって、承認されたユーザーのみにアクセスが制限されることを確認してください。
パブリック アクセスによる Azure Database for MySQL フレキシブル サーバー インスタンスを作成し、すべての IP アドレスを許可します。
az mysql flexible-server create --public-access all
Note
上記のコマンドにより、開始 IP アドレスが 0.0.0.0、終了 IP アドレスが 255.255.255.255 のファイアウォール規則が作成されます。ブロックされる IP アドレスはありません。 インターネット上にあるすべてのホストからこのサーバーにアクセスできます。 この規則は、機密データが含まれていないテスト サーバーに限定して、一時的にのみ使用することを強くお勧めします。
パブリック アクセスによる Azure Database for MySQL フレキシブル サーバー インスタンスを、IP アドレスなしで作成します。
az mysql flexible-server create --public-access none
Note
ファイアウォール規則のないサーバーを作成することはお勧めしません。 ファイアウォール規則を追加しない場合、どのクライアントからもサーバーに接続できません。
サーバーを作成した後にファイアウォール規則を作成して管理する
Azure CLI の az mysql flexible-server firewall-rule コマンドで、ファイアウォール規則を作成、削除、一覧表示、表示、更新します。
コマンド:
- create: Azure Database for MySQL フレキシブル サーバーのファイアウォール規則を作成します。
- list: Azure Database for MySQL フレキシブル サーバーのファイアウォール規則を一覧表示します。
- update: Azure Database for MySQL フレキシブル サーバーのファイアウォール規則を更新します。
- show: Azure Database for MySQL フレキシブル サーバーのファイアウォール規則の詳細を表示します。
- delete: Azure Database for MySQL フレキシブル サーバーのファイアウォール規則を削除します。
Azure CLI のリファレンス ドキュメントで、構成可能な CLI パラメーターの完全な一覧を参照してください。 たとえば、次のコマンドでは、必要に応じてリソース グループを指定できます。
ファイアウォール規則を作成する
az mysql flexible-server firewall-rule create
コマンドを使用して、サーバーに新しいファイアウォール規則を作成します。
IP アドレスの特定の範囲へのアクセスを許可するには、次の例のように、開始と終了 IP アドレスの IP アドレスを指定します。
az mysql flexible-server firewall-rule create --resource-group testGroup --name mydemoserver --start-ip-address 13.83.152.0 --end-ip-address 13.83.152.15
1 つの IP アドレスに対するアクセスを許可するには、次の例のように、1 つの IP アドレスを指定します。
az mysql flexible-server firewall-rule create --resource-group testGroup --name mydemoserver --start-ip-address 1.1.1.1
アプリケーションに Azure IP アドレスからの Azure Database for MySQL フレキシブル サーバー インスタンスへの接続を許可するには、次の例のように、開始 IP として IP アドレス 0.0.0.0 を指定します。
az mysql flexible-server firewall-rule create --resource-group testGroup --name mydemoserver --start-ip-address 0.0.0.0
重要
このオプションを選択すると、他の顧客のサブスクリプションからの接続を含め、Azure サービスおよび Azure 内のリソースからこのサーバーへのパブリック アクセスを許可するようにファイアウォールが構成されます。 このオプションを選択する場合は、ログインおよびユーザーのアクセス許可が、承認されたユーザーのみにアクセスを制限していることを確認してください。
正常に完了すると、各 create コマンドの出力として、作成したファイアウォール規則の詳細が JSON 形式 (既定) で一覧表示されます。 失敗すると、結果には代わりにエラー メッセージ テキストが表示されます。
ファイアウォール規則の一覧表示
az mysql flexible-server firewall-rule list
コマンドを使用して、サーバー上の既存のサーバー ファイアウォール規則を一覧表示します。 サーバー名属性は、 --name スイッチで指定されることにご注意ください。
az mysql flexible-server firewall-rule list --name mydemoserver
規則がある場合は、JSON 形式 (既定) で出力として一覧表示されます。 --output table スイッチを使用すると、結果をよりわかりやすい表形式で出力できます。
az mysql flexible-server firewall-rule list --name mydemoserver --output table
ファイアウォール規則の更新
az mysql flexible-server firewall-rule update
コマンドを使用して、サーバーの既存のファイアウォール規則を更新します。 入力として既存のファイアウォール規則の名前と、更新する開始 IP アドレスと終了 IP アドレス属性を指定します。
az mysql flexible-server firewall-rule update --name mydemoserver --rule-name FirewallRule1 --start-ip-address 13.83.152.0 --end-ip-address 13.83.152.1
正常に完了すると、コマンドの出力として、更新したファイアウォール規則の詳細が JSON 形式 (既定) で一覧表示されます。 失敗すると、出力には代わりにエラー メッセージ テキストが表示されます。
Note
ファイアウォール規則が存在しない場合は、update コマンドによって規則が作成されます。
ファイアウォール規則の詳細の表示
az mysql flexible-server firewall-rule show
コマンドを使用して、サーバー上にある既存のファイアウォール規則の詳細を表示します。 既存のファイアウォール規則の名前を入力します。
az mysql flexible-server firewall-rule show --name mydemoserver --rule-name FirewallRule1
正常に完了すると、コマンドの出力として、指定したファイアウォール規則の詳細が JSON 形式 (既定) で一覧表示されます。 失敗すると、出力には代わりにエラー メッセージ テキストが表示されます。
ファイアウォール規則の削除
az mysql flexible-server firewall-rule delete
コマンドを使用して、サーバーから既存のファイアウォール規則を削除します。 現在のファイアウォール規則の名前を指定します。
az mysql flexible-server firewall-rule delete --name mydemoserver --rule-name FirewallRule1
正常に完了した場合、出力はありません。 失敗した場合は、エラー メッセージ テキストが表示されます。