Contributor
ロールは通常、Horizon Cloud アプリケーション登録プロセスを有効にして Microsoft Azure サブスクリプションで API 呼び出しを行うために使用されます。Contributor
ロールの使用を回避する場合は、その目的のためにカスタム ロールを作成できます。カスタム ロールには必須の権限とオプションの権限があり、サービス プリンシパルを作成するときに認識しておく必要があるます。
カスタム ロールを作成するには、Azure PowerShell や Azure CLI などのツールを使用し、少なくともこのトピックに記載されている必須の権限を含むカスタム ロール定義を作成します。以降の JSON の例を参照してください。このページに記載されている特定の Microsoft Azure 権限の詳細については、Azure リソース プロバイダの操作を参照してください。
必須の権限
操作 |
---|
Microsoft.Authorization/*/read |
Microsoft.Compute/*/read |
Microsoft.Compute/availabilitySets/* |
Microsoft.Compute/disks/* |
Microsoft.Compute/galleries/read Microsoft.Compute/galleries/write Microsoft.Compute/galleries/delete Microsoft.Compute/galleries/images/* Microsoft.Compute/galleries/images/versions/* |
Microsoft.Compute/images/* |
Microsoft.Compute/locations/* |
Microsoft.Compute/snapshots/* |
Microsoft.Compute/virtualMachines/* |
Microsoft.Compute/virtualMachineScaleSets/* |
Microsoft.ContainerService/managedClusters/delete |
Microsoft.ContainerService/managedClusters/read |
Microsoft.ContainerService/managedClusters/write |
Microsoft.ContainerService/managedClusters/commandResults/read |
Microsoft.ContainerService/managedClusters/runcommand/action |
Microsoft.ContainerService/managedClusters/upgradeProfiles/read |
Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action |
Microsoft.ManagedIdentity/userAssignedIdentities/*/read |
Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write |
Microsoft.Network/loadBalancers/* |
Microsoft.Network/networkInterfaces/* |
Microsoft.Network/networkSecurityGroups/* |
Microsoft.Network/virtualNetworks/read |
Microsoft.Network/virtualNetworks/write |
Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read |
Microsoft.Network/virtualNetworks/subnets/* |
Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read |
Microsoft.ResourceGraph/* |
Microsoft.Resources/deployments/* |
Microsoft.Resources/subscriptions/read |
Microsoft.Resources/subscriptions/resourceGroups/* |
Microsoft.ResourceHealth/availabilityStatuses/read |
Microsoft.Storage/*/read |
Microsoft.Storage/storageAccounts/* |
App Volumes を使用する場合は、表に記載されている権限がサブスクリプション レベルで構成されていることを確認します。これらの権限の詳細については、「App Volumes アプリケーション ストレージ アカウントの Azure プライベート エンドポイント」を参照してください。
操作 |
---|
Microsoft.Network/locations/availablePrivateEndpointTypes/read |
Microsoft.Network/privateEndpoints/read |
Microsoft.Network/privateEndpoints/write |
Microsoft.Network/privateEndpoints/delete |
Microsoft.Network/virtualNetworks/read |
Microsoft.Network/virtualNetworks/subnets/read |
Microsoft.Network/virtualNetworks/subnets/write |
Microsoft.Network/virtualNetworks/subnets/join/action |
Microsoft.Resources/deployments/* |
Microsoft.Resources/subscriptions/read |
Microsoft.Resources/subscriptions/resourceGroups/read |
オプションの権限
Microsoft Azure に Horizon Edge をデプロイする場合、次の権限は必須ではありません。ただし、これらのオプションの権限を含めない場合、それらに依存する Horizon Universal Console の機能は機能しません。
操作 | |
---|---|
Microsoft.KeyVault/*/read Microsoft.KeyVault/vaults/* Microsoft.KeyVault/vaults/secrets/* |
プール仮想マシンのディスク暗号化には、キー コンテナの権限が必要です。 |
Microsoft.Network/natGateways/join/action |
この権限は、Horizon Edge の作成時に [Azure Private Link] 接続タイプが選択され、管理サブネットに NAT ゲートウェイが関連付けられている場合に必要です。この権限は、プライベート エンドポイント リソースを作成するために必要です。 |
Microsoft.Network/natGateways/read |
この権限は、クラスタ送信タイプが Horizon Edge の NAT ゲートウェイとして選択されているときに、管理サブネットの NAT ゲートウェイが存在している場合に正しく構成されていることを検証するために必要です。 |
Microsoft.Network/privateEndpoints/write Microsoft.Network/privateEndpoints/read |
Azure Private Link を使用して Horizon Edge をデプロイするには、プライベート エンドポイント権限が必要です。 |
Microsoft.Network/publicIPAddresses/* |
パブリック IP アドレスを持つロード バランサの背後に Unified Access Gateway インスタンスを含む Horizon Edge インスタンスをデプロイするには、パブリック IP アドレスの権限が必要です。また、イメージをデプロイし、イメージにパブリック IP アドレス追加するには、この権限は必須です。 |
Microsoft.Network/routeTables/join/action |
この権限は、Horizon Edge の作成時に [Azure Private Link] 接続タイプが選択され、管理サブネットにルート テーブルが接続されている場合に必要です。この権限は、プライベート エンドポイント リソースを作成するために必要です。 |
Microsoft.Network/routeTables/read |
この権限は、Horizon Edge のために選択されたクラスタ送信タイプがユーザー定義ルートの場合に必要です。デフォルト ルートが正しく構成されていることを確認するには、管理サブネットの関連付けられたルート テーブルを検証することが必要です。 |
権限は次のとおりです。
範囲:https://graph.microsoft.com/
権限:Device.ReadWrite.All Read and write devices
管理者の同意:Yes
権限を付与するには、次の場所に移動します。
Microsoft Azure カスタム ロールの JSON の例
次の JSON コード ブロックは、Horizon Cloud カスタム ロール - Titan という名前のカスタム ロール定義に、前述の一連の必須およびオプションの操作がある場合にどのような状態になるかを示す例です。ID は、カスタム ロールの一意の ID です。Azure PowerShell または Azure CLI を使用してカスタム ロールを作成すると、プロセスによってこの ID が自動的に生成されます。変数 my_subscription_ID の場合は、カスタム ロールが使用されるサブスクリプションの ID を置き換えます。
assignableScopes セクションでは、複数のサブスクリプション ID、「/subscriptions/my_subscription_ID」を使用して、複数のサブスクリプションにわたってカスタム ロールを使用できます。
{ “id”: “uuid”, “properties”: { “roleName”: “Horizon Cloud Custom Role - Titan”, “description”: “All permissions required for deployment and operation of a Horizon Edge in Azure”, “assignableScopes”: [ “/subscriptions/my_subscription_ID” ], “permissions”: [ { “actions”: [ “Microsoft.Authorization/*/read”, “Microsoft.Compute/*/read”, “Microsoft.Compute/availabilitySets/*“, “Microsoft.Compute/disks/*“, “Microsoft.Compute/galleries/read”, “Microsoft.Compute/galleries/write”, “Microsoft.Compute/galleries/delete”, “Microsoft.Compute/galleries/images/*”, “Microsoft.Compute/galleries/images/versions/*”, “Microsoft.Compute/images/*”, “Microsoft.Compute/locations/*”, “Microsoft.Compute/snapshots/*”, “Microsoft.ContainerService/managedClusters/delete”, “Microsoft.ContainerService/managedClusters/read”, “Microsoft.ContainerService/managedClusters/write”, “Microsoft.ContainerService/managedClusters/commandResults/read”, “Microsoft.ContainerService/managedClusters/runcommand/action”, “Microsoft.ContainerService/managedClusters/upgradeProfiles/read”, “Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action”, “Microsoft.ManagedIdentity/userAssignedIdentities/*/read”, “Microsoft.Compute/virtualMachines/*”, “Microsoft.Compute/virtualMachineScaleSets/*”, “Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read”, “Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write”, “Microsoft.Network/loadBalancers/*”, “Microsoft.Network/networkInterfaces/*”, “Microsoft.Network/networkSecurityGroups/*”, “Microsoft.Network/virtualNetworks/read”, “Microsoft.Network/virtualNetworks/write”, “Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read”, “Microsoft.Network/virtualNetworks/subnets/*”, “Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read”, “Microsoft.ResourceGraph/*”, “Microsoft.Resources/deployments/*”, “Microsoft.Resources/subscriptions/read”, “Microsoft.Resources/subscriptions/resourceGroups/*”, “Microsoft.ResourceHealth/availabilityStatuses/read”, “Microsoft.Storage/*/read”, “Microsoft.Storage/storageAccounts/*”, “Microsoft.KeyVault/*/read”, “Microsoft.KeyVault/vaults/*”, “Microsoft.KeyVault/vaults/secrets/*”, “Microsoft.Network/natGateways/join/action”, “Microsoft.Network/natGateways/read”, “Microsoft.Network/privateEndpoints/write”, “Microsoft.Network/privateEndpoints/read”, “Microsoft.Network/publicIPAddresses/*”, “Microsoft.Network/routeTables/join/action", "Microsoft.Network/routeTables/read" ], “notActions”: [], “dataActions”: [], “notDataActions”: [] } ] } } |