カスタム証明機関 (CA) を使用すると、最大 10 個の base64 でエンコードされた証明書をノードの信頼ストアに追加できます。 この機能は、プライベート レジストリに接続するときのように、証明機関 (CA) がノード上に存在する必要がある場合によく必要です。
この記事では、カスタム CA を作成し、それらを AKS クラスターに適用する方法について説明します。
Note
カスタム CA 機能は、カスタム証明書を AKS ノードの信頼ストアに追加します。 この機能で追加された証明書は、ポッドで実行されているコンテナーでは使用できません。 コンテナー内に証明書が必要な場合は、ポッドで使用されるイメージに追加するか、スクリプトとシークレットを使用して実行時に証明書を個別に追加する必要があります。
Prerequisites
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。
- Azure CLI バージョン 2.72.0 以降がインストールおよび構成されています。 CLI のバージョンを確認するには、
az --versionコマンドを実行します。 インストールまたはアップグレードが必要な場合は、Azure CLI のインストールを参照してください。 - base64 でエンコードされた証明書文字列、または証明書を含むテキスト ファイル。
Limitations
- Windows ノード プールはサポートされていません。
- 同じクラスターに異なる CA をインストールすることはできません。
証明書ファイルを作成する
最大 10 行の空白行区切り証明書を含むテキスト ファイルを作成します。 このファイルをクラスターに渡すと、証明書は AKS ノードの信頼ストアにインストールされます。
テキスト ファイルの例:
-----BEGIN CERTIFICATE----- cert1 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- cert2 -----END CERTIFICATE-----
次の手順に進む前に、エラーを回避するためにテキスト ファイルに空白スペースがないことを確認してください。
カスタム CA を AKS クラスターに渡す
証明書ファイルの名前に
az aks createを設定して、az aks updateまたは--custom-ca-trust-certificatesコマンドを使用して、クラスターに証明書を渡します。# Create a new cluster az aks create \ --resource-group <resource-group-name> \ --name <cluster-name> \ --node-count 2 \ --custom-ca-trust-certificates <path-to-certificate-file> \ --generate-ssh-keys # Update an existing cluster az aks update \ --resource-group <resource-group-name> \ --name <cluster-name> \ --custom-ca-trust-certificates <path-to-certificate-file>Note
この操作により、モデルの更新がトリガーされ、すべての既存のノードに、正しいプロビジョニング用に同じ CA がインストールされます。 AKS は、新しいノードを作成し、既存のノードをドレインし、既存のノードを削除して、新しい CA セットがインストールされているノードに置き換えます。
CA がインストールされていることを確認する
az aks showコマンドを使用して CA がインストールされていることを確認します。az aks show --resource-group <resource-group-name> --name <cluster-name> | grep securityProfile -A 4出力には、
securityProfileセクションにカスタム CA 証明書が含まれている必要があります。 例えば次が挙げられます。"securityProfile": { "azureKeyVaultKms": null, "customCaTrustCertificates": [ "values"
カスタム CA の書式設定エラーを解決する
証明書をクラスターに追加すると、証明書を含むファイルの形式が正しくない場合にエラーが発生する可能性があります。 次の例のようなエラーが表示される場合があります。
failed to decode one of SecurityProfile.CustomCATrustCertificates to PEM after base64 decoding
このエラーが発生した場合は、例のファイルに示すように、入力ファイルに、正しく書式設定された証明書以外の余分な改行、空白、またはデータがないことを確認する必要があります。
不明な機関によって署名されたカスタム CA X.509 証明書のエラーを解決する
AKS では、渡された証明書が適切に書式設定され、base64 でエンコードされている必要があります。 渡した CA が適切に base64 でエンコードされていることと、CA を含むファイルに CRLF 改行がないことを確認します。
コンテナーを再起動して新しい証明書を取得する
コンテナー化しても新しい証明書が取得されない場合は、ノードのシェルから systemctl restart containerd コマンドを実行します。 コンテナーが再起動されると、コンテナー ランタイムは新しい証明書を取得する必要があります。
enableCustomCATrust (プレビュー) 廃止に伴う移行
Important
2026 年 9 月 14 日から、プレビュー プロパティ enableCustomCATrust は廃止されます。 その日以降、 enableCustomCATrust=true ノード プール レベルのフィールドでは、AKS のカスタム証明機関 (CA) 機能は有効ではなくなります。 このプロパティをサポートする最後のプレビュー API は 2025-08-02-preview。
enableCustomCATrust=trueに依存している既存のノード プールでは、スケーリング操作中や証明書の更新時にエラーが発生する可能性があります。 サービスの中断を回避するには、影響を受けるクラスターとノード プールを更新し、2026 年 9 月 14 日より前にプレビュー プロパティを削除します。 移行手順については、enableCustomCATrust (プレビュー) 提供終了に伴う移行を参照してください。 このサポート終了の詳細については、Retirement GitHub イシューをご覧ください。 お知らせや更新プログラムに関する最新情報を入手するには、 AKS のリリース ノートに従ってください。
ノード プールを更新してカスタム CA 信頼プロパティを削除する
az aks nodepool update \
--resource-group <resource-group> \
--cluster-name <cluster-name> \
--name <node-pool-name> \
--disable-custom-ca-trust
クラスターを更新してカスタム CA 信頼プロパティを削除する
az aks update \
--resource-group <resource-group> \
--name <cluster-name> \
--disable-custom-ca-trust
この廃止後にクラスターでカスタム CA 信頼を有効にする場合は、 --custom-ca-trust-certificates を使用し、証明書ファイルへのパスを指定します。
関連コンテンツ
AKS のセキュリティのベスト プラクティスについて詳しくは、「Azure Kubernetes Service (AKS) でのクラスターのセキュリティとアップグレードに関するベスト プラクティス」をご覧ください。