Microsoft Entra ID でローカル監視ツールを使用できるようにする
Azure Private 5G Core には、エッジでのデプロイを監視するための分散トレース ツールおよびパケット コア ダッシュボードツールが用意されています。 これらのツールには、Microsoft Entra ID またはローカルのユーザー名とパスワードを使用してアクセスできます。 デプロイのセキュリティを向上させるために、Microsoft Entra 認証を設定することをお勧めします。
このハウツー ガイドでは、Microsoft Entra ID を使用してローカル監視ツールへのアクセスを認証するサイトをデプロイまたは構成した後に完了する必要がある手順を実行します。 分散トレースおよびパケット コア ダッシュボードにアクセスするためにローカルのユーザー名とパスワードを使用することにした場合は、これに従う必要はありません。
注意事項
ローカル監視ツールの Microsoft Entra ID は、Azure Private 5G Core が実行されている Azure Stack Edge デバイスで Web プロキシが有効になっている場合はサポートされません。 Web プロキシ経由で送信されないトラフィックをブロックするファイアウォールを構成した場合、Microsoft Entra ID を有効にすると、Azure Private 5G Core のインストールが失敗します。
前提条件
- 「プライベート モバイル ネットワークをデプロイするための前提条件となるタスクを完了する」のステップと、「サイトに必要な情報を収集する」のステップを完了しておく必要があります。
- 認証の種類として Microsoft Entra ID が設定されたサイトをデプロイしておく必要があります。
- 「Management network (管理ネットワーク)」で設定したローカル監視ツールにアクセスするための IP アドレスを特定します。
- プライベート モバイル ネットワークの作成に使用したアクティブなサブスクリプションへのアクセス権を持つアカウントを使用して、Azure portal にサインインできることを確認します。 このアカウントには、Microsoft Entra ID でアプリケーションを管理するためのアクセス許可が必要です。 必要なアクセス許可を持つ Microsoft Entra 組み込みロールには、アプリケーション管理者、アプリケーション開発者、クラウド アプリケーション管理者などがあります。 このアクセス権がない場合は、テナントの Microsoft Entra 管理者に問い合わせて、「Microsoft Entra ID を持つユーザー ロールを割り当てる」に従って正しいロールが割り当てられていることを確認してもらいます。
- ローカル コンピューターに、Azure Arc 対応 Kubernetes クラスターへのコア kubectl アクセス権があることを確認します。 これにはコア kubeconfig ファイルが必要です。このファイルは、「Core namespace access (コア名前空間アクセス)」に従って取得できます。
ローカル監視 IP 用にドメイン システム名 (DNS) を構成する
アプリケーションを登録してリダイレクト URI を構成するときは、ローカル監視ツールにアクセスするための IP アドレスではなく、ドメイン名を含めるためにリダイレクト URI が必要です。
DNS レコードを作成する DNS ゾーンの権限のある DNS サーバーで、「Management network (管理ネットワーク)」で設定したローカル監視ツールへのアクセスに使用される IP アドレスにドメイン名が解決するように DNS レコードを構成します。
アプリケーションの登録
次に、新しいローカル監視アプリケーションを Microsoft Entra ID に登録して、Microsoft ID プラットフォームとの信頼関係を確立します。
デプロイに複数のサイトが含まれている場合は、すべてのサイトに同じ 2 つのリダイレクト URI を使用するか、サイトごとに異なる URI ペアを作成できます。 サイトごとに最大 2 つのリダイレクト URI を構成できます。 デプロイ用のアプリケーションを既に登録していて、サイト間で同じ URI を使用する場合は、この手順をスキップできます。
Note
以下の手順では、分散トレースとパケット コア ダッシュボードの両方に 1 つのアプリケーションを使用することを前提としています。 これらの 2 つのツールに異なるユーザー グループへのアクセス権を付与する場合、代わりに、アプリケーションをパケット コア ダッシュボード ロールに 1 つ、分散トレース ロールに 1 つ設定できます。
「クイック スタート: Microsoft ID プラットフォームにアプリケーションを登録する」に従い、ローカル監視ツール用の新しいアプリケーションを Microsoft ID プラットフォームに登録します。
「リダイレクト URI を追加する」で、[Web] プラットフォームを選択し、以下の 2 つのリダイレクト URI を追加します。ここで<local monitoring domain> は、「ローカル監視 IP 用にドメイン システム名 (DNS) を構成する」で設定したローカル監視ツールのドメイン名です。
- https://<local monitoring domain>/sas/auth/aad/callback
- https://<local monitoring domain>/grafana/login/azuread
手順に従って、[資格情報を追加する] にクライアント シークレットを追加します。 このフィールドはシークレットの作成直後にのみ使用できるようになるので、必ず [値] 列の下にシークレットを記録してください。 これは、この手順の後半で必要になる [クライアント シークレット] の値です。
「アプリ ロール UI」に従って、次の構成でアプリケーションのロールを作成します。
- [Allowed member types]\(許可されるメンバーの種類\) で、[ユーザー/グループ] を選択します。
- [値] で、作成する各ロールに [管理者]、[ビューアー]、[エディター] のいずれかを入力します。 分散トレースについては、sas.user ロールも必要です。
- [このアプリ ロールを有効にしますか?] で、チェック ボックスがオンになっていることを確認します。
パケット コア ダッシュボードと分散トレース ツールへのアクセスを管理するときに、これらのロールを使用できます。
ユーザーとグループをロールに割り当てるに従って、作成したロールにユーザーとグループを割り当てます。
Kubernetes シークレット オブジェクトの情報を収集する
次の表に示す値を収集します。
値 収集方法 Kubernetes シークレット パラメーター名 テナント ID Azure portal で、Microsoft Entra ID を検索します。 [テナント ID] フィールドは、[概要] ページにあります。 tenant_id
アプリケーション (クライアント) ID 先ほど作成した新しいローカル監視アプリの登録に移動します。 アプリケーション (クライアント) ID フィールドは、[概要] ページの [Essentials] 見出しにあります。 client_id
Authorization URL (承認 URL) ローカル監視アプリ登録の [概要] ページで、[エンドポイント] を選択します。 [OAuth 2.0 承認エンドポイント (v2)] フィールドの内容をコピーします。
注:
文字列にorganizations
が含まれている場合は、organizations
をテナント ID 値に置き換えます。 たとえば、 のように指定します。https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize
→https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/oauth2/v2.0/authorize
auth_url
Token URL (トークン URL) ローカル監視アプリ登録の [概要] ページで、[エンドポイント] を選択します。 [OAuth 2.0 トークン エンドポイント (v2)] フィールドの内容をコピーします。
注:
文字列にorganizations
が含まれている場合は、organizations
をテナント ID 値に置き換えます。 たとえば、 のように指定します。https://login.microsoftonline.com/organizations/oauth2/v2.0/token
→https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/oauth2/v2.0/token
token_url
クライアント シークレット これは、前の手順でクライアント シークレットを作成するときに収集しました。 client_secret
分散トレースのリダイレクト URI ルート リダイレクト URI の次の部分を書き留めます: https://<ローカル監視ドメイン>。 redirect_uri_root
パケット コア ダッシュボードのリダイレクト URI ルート パケット コア ダッシュボードのリダイレクト URI の次の部分を書き留めます: https://<ローカル監視ドメイン>/grafana。 root_url
ローカル アクセスを変更する
Azure portal に移動し、サイトの [パケット コア コントロール プレーン] リソースに移動します。 ブレードの [ローカル アクセスを変更する] タブを選択します。
- [認証の種類] が [Microsoft Entra ID] に設定されている場合は、「Kubernetes シークレット オブジェクトを作成する」から続けます。
- それ以外の場合:
- [認証の種類] ドロップダウンから [Microsoft Entra ID] を選択します。
- レビューを選択します。
- 送信を選択します。
Kubernetes シークレット オブジェクトを作成する
Azure Private 5G Core アプリケーションで Microsoft Entra ID をサポートするには、Kubernetes シークレットを含む YAML ファイルが必要です。
「Kubernetes シークレット オブジェクトの情報を収集する」で収集した各値を Base64 形式に変換します。 たとえば、Azure Cloud Shell Bash ウィンドウで次のコマンドを実行できます。
echo -n <Value> | base64
secret-azure-ad-local-monitoring.yaml ファイルを作成し、そこに分散トレースとパケット コア ダッシュボードを構成するための、Base64 でエンコードされた値を含めます。 分散トレースのシークレットには sas-auth-secrets という名前を付ける必要があり、パケット コア ダッシュボードのシークレットには grafana-auth-secrets という名前を付ける必要があります。
apiVersion: v1 kind: Secret metadata: name: sas-auth-secrets namespace: core type: Opaque data: client_id: <Base64-encoded client ID> client_secret: <Base64-encoded client secret> redirect_uri_root: <Base64-encoded distributed tracing redirect URI root> tenant_id: <Base64-encoded tenant ID> --- apiVersion: v1 kind: Secret metadata: name: grafana-auth-secrets namespace: core type: Opaque data: GF_AUTH_AZUREAD_CLIENT_ID: <Base64-encoded client ID> GF_AUTH_AZUREAD_CLIENT_SECRET: <Base64-encoded client secret> GF_AUTH_AZUREAD_AUTH_URL: <Base64-encoded authorization URL> GF_AUTH_AZUREAD_TOKEN_URL: <Base64-encoded token URL> GF_SERVER_ROOT_URL: <Base64-encoded packet core dashboards redirect URI root>
Kubernetes シークレット オブジェクトを適用する
パケット コアの停止後または Kubernetes シークレット オブジェクト YAML ファイルの更新後に、サイトの Microsoft Entra ID を有効にする場合は、Kubernetes シークレット オブジェクトを適用する必要があります。
[Azure Cloud Shell] にサインインし、[PowerShell] を選択します。 初めて Azure Cloud Shell 経由でクラスターにアクセスする場合は、「クラスターにアクセスする」に従って kubectl アクセスを構成します。
コア kubeconfig ファイル名を指定して、分散トレースとパケット コア ダッシュボードの両方にシークレット オブジェクトを適用します。
kubectl apply -f $HOME/secret-azure-ad-local-monitoring.yaml --kubeconfig=<core kubeconfig>
次のコマンドを使用して、コア kubeconfig ファイル名を指定して、シークレット オブジェクトが正しく適用されたかどうかを確認します。 Name、Namespace、Type の値が正しく表示されるはずです。エンコードされた値のサイズも表示されます。
kubectl describe secrets -n core sas-auth-secrets --kubeconfig=<core kubeconfig>
kubectl describe secrets -n core grafana-auth-secrets --kubeconfig=<core kubeconfig>
分散トレースとパケット コア ダッシュボード ポッドを再起動します。
パケット コア ダッシュボード ポッドの名前を取得します。
kubectl get pods -n core --kubeconfig=<core kubeconfig>" | grep "grafana"
前の手順の出力をコピーし、次のコマンドに置き換えてポッドを再起動します。
kubectl delete pod sas-core-search-0 <packet core dashboards pod> -n core --kubeconfig=<core kubeconfig>
アクセスの確認
「分散トレース Web GUI にアクセスする」と「パケット コア ダッシュボードにアクセスする」に従って、Microsoft Entra ID を使用してローカル監視ツールにアクセスできるかどうかを確認します。
Kubernetes シークレット オブジェクトを更新する
既存の Kubernetes シークレット オブジェクトを更新する必要がある場合は、この手順に従います。たとえば、リダイレクト URI を更新した後や、期限切れのクライアント シークレットを更新した後などです。
- 「Kubernetes シークレット オブジェクトを作成する」で作成した Kubernetes シークレット オブジェクト YAML ファイルに必要な変更を行います。
- Kubernetes シークレット オブジェクトを適用します。
- アクセスを確認します。
次のステップ
これをまだ行っていない場合は、ここでプライベート モバイル ネットワークのポリシー コントロール構成を設計する必要があります。 これにより、パケット コア インスタンスがトラフィックにサービスの品質 (QoS) 特性を適用する方法をカスタマイズできます。 また、特定のフローをブロックまたは制限することもできます。