説明
Service Fabric の Microsoft Entra ID 認証は、管理クライアントの本人確認とロールによるアクセス制御に使います。X.509 クライアント証明書も対応する代替方式なので、Entra ID 設定がないだけで認証なしのアクセスを意味するわけではありません。選択した方式の信頼と権限の設定が重要です。
想定される影響
- 管理認証やロールの設定を誤ると、意図しないクラスター管理操作が許可される場合があります。
- 不完全な認証設定は、デプロイや運用担当者のサインインを失敗させる場合があります。
対処方法
- Microsoft Entra ID を使う場合は、
azure_active_directoryに実際のtenant_id、cluster_application_id、client_application_idを指定し、管理者・ユーザーロールを必要な範囲だけ付与してください。 - クライアント証明書方式では、承認された証明書と権限を管理してください。管理エンドポイントの TLS とクラスター証明書の設定も確認し、担当者のサインインと管理ツールをテストしてください。
例
認証ブロックを比較する抜粋です。変数には対応する Service Fabric バージョン、実際の HTTPS 管理エンドポイント、登録済みアプリケーション ID を指定してください。ノードや証明書の設定は省略しています。変更前は必須の tenant_id がないため、AzureRM に拒否される不完全な例です。
変更前
hcl
resource "azurerm_service_fabric_cluster" "example" {
name = "example-servicefabric"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
reliability_level = "Bronze"
upgrade_mode = "Manual"
cluster_code_version = var.cluster_code_version
vm_image = "Windows"
management_endpoint = var.management_endpoint
azure_active_directory {
cluster_application_id = var.cluster_application_id
client_application_id = var.client_application_id
}
}
変更後
hcl
resource "azurerm_service_fabric_cluster" "example" {
name = "example-servicefabric"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
reliability_level = "Bronze"
upgrade_mode = "Manual"
cluster_code_version = var.cluster_code_version
vm_image = "Windows"
management_endpoint = var.management_endpoint
azure_active_directory {
tenant_id = var.tenant_id
cluster_application_id = var.cluster_application_id
client_application_id = var.client_application_id
}
}
補足:
- 変更前: Entra ID ブロックに必須のテナント ID がありません。
- 変更後: テナントとアプリケーション ID を指定します。実際のロール割り当てと認証フローは、別途設定・検証が必要です。