Azure Kubernetes Service (AKS) で許可された IP アドレス範囲を使用して API サーバーへのアクセスをセキュリティで保護するSecure access to the API server using authorized IP address ranges in Azure Kubernetes Service (AKS)

Kubernetes では、API サーバーは、リソースの作成やノードの数のスケーリングなどのクラスター内のアクションを実行するための要求を受信します。In Kubernetes, the API server receives requests to perform actions in the cluster such as to create resources or scale the number of nodes. API サーバーは、クラスターを操作したり管理したりするための中心的な方法です。The API server is the central way to interact with and manage a cluster. クラスターのセキュリティを向上させ、攻撃を最小限に抑えるには、API サーバーを限られた一連の IP アドレス範囲からのみアクセス可能にする必要があります。To improve cluster security and minimize attacks, the API server should only be accessible from a limited set of IP address ranges.

この記事では、API サーバーで許可された IP アドレス範囲を使用して、コントロール プレーンにアクセスできる IP アドレスと CIDR を制限する方法を示します。This article shows you how to use API server authorized IP address ranges to limit which IP addresses and CIDRs can access control plane.

重要

新しいクラスターでは、API サーバーで許可された IP アドレス範囲は Standard SKU ロード バランサーでのみサポートされます。On new clusters, API server authorized IP address ranges are only supported on the Standard SKU load balancer. Basic SKU ロード バランサーと API サーバーで許可された IP アドレス範囲が構成された既存のクラスターは、引き続き機能しますが、Standard SKU ロード バランサーに移行することはできません。Existing clusters with the Basic SKU load balancer and API server authorized IP address ranges configured will continue work as is but cannot be migrated to a Standard SKU load balancer. これらの既存のクラスターは、Kubernetes のバージョンまたはコントロール プレーンがアップグレードされた場合も引き続き機能します。Those existing clusters will also continue to work if their Kubernetes version or control plane are upgraded.

開始する前にBefore you begin

API サーバーの許可された IP 範囲は、作成する新しい AKS クラスターに対してのみ機能します。API server authorized IP ranges only work for new AKS clusters that you create. この記事では、Azure CLI を使用して AKS クラスターを作成する方法について説明します。This article shows you how to create an AKS cluster using the Azure CLI.

Azure CLI バージョン 2.0.76 以降がインストールされて構成されている必要があります。You need the Azure CLI version 2.0.76 or later installed and configured. バージョンを確認するには、 az --version を実行します。Run az --version to find the version. インストールまたはアップグレードする必要がある場合は、「 Azure CLI のインストール」を参照してください。If you need to install or upgrade, see Install Azure CLI.

API サーバーの許可された IP 範囲の概要Overview of API server authorized IP ranges

Kubernetes API サーバーは、基になる Kubernetes API が公開される方法です。The Kubernetes API server is how the underlying Kubernetes APIs are exposed. このコンポーネントは、kubectl や Kubernetes ダッシュボードなど、管理ツールに対する操作を提供します。This component provides the interaction for management tools, such as kubectl or the Kubernetes dashboard. AKS は、専用の API サーバーを含むシングルテナント クラスター マスターを提供します。AKS provides a single-tenant cluster master, with a dedicated API server. 既定では、API サーバーにはパブリック IP アドレスが割り当てられるため、ロールベースのアクセス制御 (RBAC) を使用してアクセスを制御する必要があります。By default, the API server is assigned a public IP address, and you should control access using role-based access controls (RBAC).

通常はパブリックにアクセス可能な AKS コントロール プレーン/API サーバーへのアクセスをセキュリティで保護するには、許可された IP 範囲を有効にして使用することができます。To secure access to the otherwise publicly accessible AKS control plane / API server, you can enable and use authorized IP ranges. これらの許可された IP 範囲では、API サーバーと通信するための定義された IP アドレス範囲のみが許可されます。These authorized IP ranges only allow defined IP address ranges to communicate with the API server. これらの許可された IP 範囲に含まれていない IP アドレスから API サーバーへの要求はブロックされます。A request made to the API server from an IP address that is not part of these authorized IP ranges is blocked. ユーザーやそのユーザーが要求するアクションを承認するには、引き続き RBAC を使用します。Continue to use RBAC to authorize users and the actions they request.

API サーバーやその他のクラスター コンポーネントの詳細については、AKS における Kubernetes の中心概念に関するページを参照してください。For more information about the API server and other cluster components, see Kubernetes core concepts for AKS.

API サーバーの許可された IP 範囲を有効にした AKS クラスターを作成するCreate an AKS cluster with API server authorized IP ranges enabled

API サーバーの許可された IP 範囲は、新しい AKS クラスターに対してのみ機能します。API server authorized IP ranges only work for new AKS clusters. az aks create を使用してクラスターを作成し、 --api-server-authorized-ip-ranges パラメーターを使用して、許可された IP アドレス範囲のリストを指定します。Create a cluster using the az aks create and specify the --api-server-authorized-ip-ranges parameter to provide a list of authorized IP address ranges. これらの IP アドレス範囲は通常、オンプレミス ネットワークまたはパブリック IP によって使用されるアドレス範囲です。These IP address ranges are usually address ranges used by your on-premises networks or public IPs. CIDR 範囲を指定する場合は、その範囲内の最初の IP アドレスから始めます。When you specify a CIDR range, start with the first IP address in the range. たとえば、137.117.106.90/29 は有効な範囲ですが、範囲内の最初の IP アドレス (137.117.106.88/29 など) を指定するようにしてください。For example, 137.117.106.90/29 is a valid range, but make sure you specify the first IP address in the range, such as 137.117.106.88/29.

重要

既定では、クラスターは Standard SKU ロード バランサーを使用します。これを使用して、アウトバウンド ゲートウェイを構成できます。By default, your cluster uses the Standard SKU load balancer which you can use to configure the outbound gateway. クラスターの作成時に API サーバーの許可された IP 範囲を有効にすると、指定した範囲の他に、クラスターのパブリック IP も既定で許可されます。When you enable API server authorized IP ranges during cluster creation, the public IP for your cluster is also allowed by default in addition to the ranges you specify. --api-server-authorized-ip-ranges"" を指定するか、値を指定しなかった場合、API サーバーの許可された IP 範囲は無効になります。If you specify "" or no value for --api-server-authorized-ip-ranges, API server authorized IP ranges will be disabled.

次の例では、myResourceGroup という名前のリソース グループに myAKSCluster という名前の単一ノードのクラスターを作成し、API サーバーの許可された IP 範囲を有効にします。The following example creates a single-node cluster named myAKSCluster in the resource group named myResourceGroup with API server authorized IP ranges enabled. 許可される IP アドレス範囲は、73.140.245.0/24 です。The IP address ranges allowed are 73.140.245.0/24:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 1 \
    --vm-set-type VirtualMachineScaleSets \
    --load-balancer-sku standard \
    --api-server-authorized-ip-ranges 73.140.245.0/24 \
    --generate-ssh-keys

注意

次の範囲を許可リストに追加してください。You should add these ranges to an allow list:

  • ファイアウォール パブリック IP アドレスThe firewall public IP address
  • クラスターを管理するネットワークを表すあらゆる範囲Any range that represents networks that you'll administer the cluster from
  • AKS クラスターで Azure Dev Spaces を使用している場合は、リージョンに基づく追加の範囲を許可する必要があります。If you are using Azure Dev Spaces on your AKS cluster, you have to allow additional ranges based on your region.

指定できる IP 範囲の数の上限は 3500 です。The upper limit for the number of IP ranges you can specify is 3500.

Standard SKU ロード バランサーのアウトバウンド IP を指定するSpecify the outbound IPs for the Standard SKU load balancer

AKS クラスターを作成するときに、クラスターのアウトバウンド IP アドレスまたはプレフィックスを指定すると、それらのアドレスまたはプレフィックスも許可されます。When creating an AKS cluster, if you specify the outbound IP addresses or prefixes for the cluster, those addresses or prefixes are allowed as well. 次に例を示します。For example:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 1 \
    --vm-set-type VirtualMachineScaleSets \
    --load-balancer-sku standard \
    --api-server-authorized-ip-ranges 73.140.245.0/24 \
    --load-balancer-outbound-ips <publicIpId1>,<publicIpId2> \
    --generate-ssh-keys

上の例で、パラメーター --load-balancer-outbound-ip-prefixes で指定されたすべての IP は、 --api-server-authorized-ip-ranges パラメーターの IP と共に許可されます。In the above example, all IPs provided in the parameter --load-balancer-outbound-ip-prefixes are allowed along with the IPs in the --api-server-authorized-ip-ranges parameter.

また、 --load-balancer-outbound-ip-prefixes パラメーターを指定して、アウトバウンド ロード バランサー IP プレフィックスを許可することもできます。Alternatively, you can specify the --load-balancer-outbound-ip-prefixes parameter to allow outbound load balancer IP prefixes.

Standard SKU ロード バランサーのアウトバウンド パブリック IP のみを許可するAllow only the outbound public IP of the Standard SKU load balancer

クラスターの作成時に API サーバーの許可された IP 範囲を有効にすると、指定した範囲の他に、クラスターの Standard SKU ロード バランサーのアウトバウンド パブリック IP も既定で許可されます。When you enable API server authorized IP ranges during cluster creation, the outbound public IP for the Standard SKU load balancer for your cluster is also allowed by default in addition to the ranges you specify. Standard SKU ロード バランサーのアウトバウンド パブリック IP のみを許可するには、 --api-server-authorized-ip-ranges パラメーターを指定するときに、0.0.0.0/32 を使用します。To allow only the outbound public IP of the Standard SKU load balancer, use 0.0.0.0/32 when specifying the --api-server-authorized-ip-ranges parameter.

次の例では、Standard SKU ロード バランサーのアウトバウンド パブリック IP のみが許可されており、クラスター内のノードからのみ API サーバーにアクセスできます。In the following example, only the outbound public IP of the Standard SKU load balancer is allowed, and you can only access the API server from the nodes within the cluster.

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 1 \
    --vm-set-type VirtualMachineScaleSets \
    --load-balancer-sku standard \
    --api-server-authorized-ip-ranges 0.0.0.0/32 \
    --generate-ssh-keys

クラスターの、API サーバーの許可された IP 範囲を更新するUpdate a cluster's API server authorized IP ranges

既存のクラスター上で、API サーバーの許可された IP 範囲を更新するには、az aks update コマンドを使用し、 --api-server-authorized-ip-ranges--load-balancer-outbound-ip-prefixes--load-balancer-outbound-ips、または --load-balancer-outbound-ip-prefixes パラメーターを使用します。To update the API server authorized IP ranges on an existing cluster, use az aks update command and use the --api-server-authorized-ip-ranges, --load-balancer-outbound-ip-prefixes, --load-balancer-outbound-ips, or --load-balancer-outbound-ip-prefixes parameters.

次の例では、myResourceGroup という名前のリソース グループ内の myAKSCluster という名前のクラスターで API サーバーの許可された IP 範囲を更新します。The following example updates API server authorized IP ranges on the cluster named myAKSCluster in the resource group named myResourceGroup. 許可する IP アドレス範囲は、73.140.245.0/24 です。The IP address range to authorize is 73.140.245.0/24:

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --api-server-authorized-ip-ranges  73.140.245.0/24

Standard SKU ロード バランサーのパブリック IP のみを許可するために、 --api-server-authorized-ip-ranges パラメーターを指定するときに、0.0.0.0/32 を使用することもできます。You can also use 0.0.0.0/32 when specifying the --api-server-authorized-ip-ranges parameter to allow only the public IP of the Standard SKU load balancer.

許可された IP 範囲を無効にするDisable authorized IP ranges

許可された IP 範囲を無効にするには、az aks update を使用し、空の範囲を指定して、API サーバーの許可された IP 範囲を無効にします。To disable authorized IP ranges, use az aks update and specify an empty range to disable API server authorized IP ranges. 次に例を示します。For example:

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --api-server-authorized-ip-ranges ""

次のステップNext steps

この記事では、API サーバーの許可された IP 範囲を有効にしました。In this article, you enabled API server authorized IP ranges. このアプローチは、セキュリティで保護された AKS クラスターをどのように実行できるかの一部です。This approach is one part of how you can run a secure AKS cluster.

詳細については、AKS でのアプリケーションとクラスターのセキュリティの概念に関するページおよび AKS でのクラスターのセキュリティとアップグレードのベスト プラクティスに関するページを参照してください。For more information, see Security concepts for applications and clusters in AKS and Best practices for cluster security and upgrades in AKS.