監視用の SSL 証明書を提供します

2021 年 12 月リリースより、Azure Arc 対応のデータ サービスを使用すると、ダッシュボード監視用の SSL/TLS 証明書を提供できます。 これらの証明書は、ログ (Kibana) ダッシュボードとメトリック (Grafana) ダッシュボードに使用できます。

次を使用してデータ コントローラーを作成するときに、証明書を指定できます。

  • Azure az CLI arcdata 拡張機能
  • Kubernetes ネイティブ デプロイ

Microsoft では /microsoft/azure_arc/ GitHub リポジトリに証明書を作成するサンプル ファイルを提供しています。

ファイルをローカルに複製して、サンプル ファイルにアクセスできます。

git clone https://github.com/microsoft/azure_arc

この記事で参照されているファイルは、/arc_data_services/deploy/scripts/monitoring の下のリポジトリにあります。

適切な証明書を作成または取得します

UI ごとに適切な証明書が必要です。 1 つはログ用で、もう 1 つはメトリック用です。 次の表ではその要件について説明します。

次の表では、各証明書とキーの要件について説明します。

要件 ログ用の証明書 メトリック用の証明書
CN logsui-svc metricsui-svc
SAN 必要なし metricsui-svc.${NAMESPACE}.${K8S_DNS_DOMAIN_NAME}
keyUsage digitalsignature

keyEncipherment
digitalsignature

keyEncipherment
extendedKeyUsage serverAuth serverAuth

Note

既定の K8S_DNS_DOMAIN_NAME は svc.cluster.local で、環境と構成によって異なる場合があります。

GitHub リポジトリ ディレクトリには、証明書の仕様を識別するテンプレート ファイルの例が含まれています。

Azure Arc サンプルの GitHub リポジトリには、エンドポイントの準拠している証明書と秘密キーを生成するために使用できる例が用意されています。

/arc_data_services/deploy/scripts/monitoringcreate-monitoring-tls-files.sh のコードをご覧ください。

この例を使用して証明書を作成するには、namespace と証明書のディレクトリ (output_directory) を使用して次のコマンドを更新します。 そして、コマンドを実行します。

./create-monitor-tls-files.sh <namespace> <output_directory>

これにより、準拠している証明書がディレクトリに作成されます。

CLI を使用したデプロイ

各エンドポイントの証明書/秘密キーを取得した後、az dc create... コマンドを使用してデータ コントローラーを作成します。

独自の証明書/秘密キーを適用するには、次の引数を使用します。

  • --logs-ui-public-key-file <path\file to logs public key file>
  • --logs-ui-private-key-file <path\file to logs private key file>
  • --metrics-ui-public-key-file <path\file to metrics public key file>
  • --metrics-ui-private-key-file <path\file to metrics private key file>

たとえば、次の例では、ログとメトリック UI ダッシュボード用に指定された証明書を使用してデータ コントローラーを作成します。

az arcdata dc create --profile-name azure-arc-aks-default-storage --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --logs-ui-public-key-file <path\file to logs public key file> --logs-ui-private-key-file <path\file to logs private key file> --metrics-ui-public-key-file <path\file to metrics public key file> --metrics-ui-private-key-file <path\file to metrics private key file>

#Example:
#az arcdata dc create --profile-name azure-arc-aks-default-storage  --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --logs-ui-public-key-file /path/to/logsuipublickeyfile.pem --logs-ui-private-key-file /path/to/logsuiprivatekey.pem --metrics-ui-public-key-file /path/to/metricsuipublickeyfile.pem --metrics-ui-private-key-file /path/to/metricsuiprivatekey.pem

証明書は、az arcdata dc create ... ステートメントに --use-k8s を含める場合にのみ指定できます。

Kubernetes ネイティブ ツールを使用したデプロイ

Kubernetes ネイティブ ツールを使用してデプロイする場合は、証明書と秘密キーを保持する kubernetes シークレットを作成します。 次のシークレットを作成します。

  • logsui-certificiate-secret
  • [https://login.microsoftonline.com/consumers/](metricsui-certificate-secret)

サービスがサブジェクトの別名 (SAN) として一覧表示され、証明書の使用パラメーターが正しいか確認します。

  1. 各シークレットに次のフィールドが含まれていることを確認します。
    • base64 でエンコードされた証明書が含まれている certificate.pem
    • 秘密キーが含まれている privatekey.pem