Azure の委任されたリソース管理に顧客をオンボードするOnboard a customer to Azure delegated resource management

この記事では、どうすればサービス プロバイダーが Azure の委任されたリソース管理に顧客をオンボードでき、それらの委任されたリソース (サブスクリプションやリソース グループ) に自分の Azure Active Directory (Azure AD) テナントからアクセスして管理できるかについて説明します。This article explains how you, as a service provider, can onboard a customer to Azure delegated resource management, allowing their delegated resources (subscriptions and/or resource groups) to be accessed and managed through your own Azure Active Directory (Azure AD) tenant. ここではサービス プロバイダーと顧客に言及しますが、複数のテナントを管理している企業では、同じプロセスを使用して自社の管理エクスペリエンスを強化することができます。While we'll refer to service providers and customers here, enterprises managing multiple tenants can use the same process to consolidate their management experience.

このプロセスは、複数の顧客のリソースを管理している場合に繰り返すことができます。You can repeat this process if you are managing resources for multiple customers. その後、許可されているユーザーが自分のテナントにサインインすると、そのユーザーは、個々の顧客テナントにサインインしなくても管理操作を実行することが顧客のテナント スコープ全体で承認されます。Then, when an authorized user signs in to your tenant, that user can be authorized across customer tenancy scopes to perform management operations without having to sign in to every individual customer tenant.

オンボードされたサブスクリプションに自分の Microsoft Partner Network (MPN) ID を関連付けると、顧客エンゲージメント全体での影響を追跡できます。You can associate your Microsoft Partner Network (MPN) ID with your onboarded subscriptions to track your impact across customer engagements. 詳細については、「Azure アカウントにパートナー ID をリンクする」を参照してください。For more info, see Link a partner ID to your Azure accounts.

注意

顧客は、Azure Marketplace に公開されたマネージド サービスのオファー (パブリックまたはプライベート) を購入すると自動的にオンボードされます。Customers can be onboarded automatically when they purchase a managed services offer (public or private) that you published to Azure Marketplace. 詳細については、「Azure Marketplace にマネージド サービス オファーを公開する」を参照してください。For more info, see Publish Managed Services offers to Azure Marketplace. また、ここで説明されているオンボード プロセスは、Azure Marketplace に公開されているオファーでも使用できます。You can also use the onboarding process described here with an offer published to Azure Marketplace.

オンボード プロセスでは、サービス プロバイダーのテナントと顧客のテナント両方の中からアクションを実行する必要があります。The onboarding process requires actions to be taken from within both the service provider's tenant and from the customer's tenant. これらの手順はすべて、この記事で説明します。All of these steps are described in this article.

重要

現在、サブスクリプションで Azure Databricks が使用されている場合、Azure の委任されたリソース管理用にそのサブスクリプション (またはサブスクリプション内のリソース グループ) をオンボードすることはできません。Currently, you can’t onboard a subscription (or resource group within a subscription) for Azure delegated resource management if the subscription uses Azure Databricks. 同様に、サブスクリプションがオンボードのために Microsoft.ManagedServices リソースプロバイダーに登録されている場合、この時点ではそのサブスクリプション用に Databricks ワークスペースを作成することはできなくなります。Similarly, if a subscription has been registered for onboarding with the Microsoft.ManagedServices resource provider, you won’t be able to create a Databricks workspace for that subscription at this time.

テナントとサブスクリプションの詳細を収集するGather tenant and subscription details

顧客のテナントをオンボードするには、アクティブな Azure サブスクリプションが必要です。To onboard a customer's tenant, it must have an active Azure subscription. 次のことを知っている必要があります。You'll need to know the following:

  • サービス プロバイダーのテナント (顧客のリソースを管理する場所) のテナント IDThe tenant ID of the service provider's tenant (where you will be managing the customer's resources)
  • 顧客のテナント (リソースはサービス プロバイダーで管理されます) のテナント IDThe tenant ID of the customer's tenant (which will have resources managed by the service provider)
  • サービス プロバイダーで管理される (またはサービス プロバイダーで管理されるリソース グループを含む) 顧客のテナントにある特定のサブスクリプションそれぞれのサブスクリプション IDThe subscription IDs for each specific subscription in the customer's tenant that will be managed by the service provider (or that contains the resource group(s) that will be managed by the service provider)

この情報がまだない場合は、次のいずれかの方法で取得できます。If you don't have this info already, you can retrieve it in one of the following ways.

Azure ポータルAzure portal

実際のテナント ID は、Azure portal の右上にあるアカウント名をポイントするか、 [ディレクトリの切り替え] を選択することで確認できます。Your tenant ID can be seen by hovering over your account name on the upper right-hand side of the Azure portal, or by selecting Switch directory. テナント ID を選択してコピーするには、ポータル内から "Azure Active Directory" を検索し、 [プロパティ] を選択して、 [ディレクトリ ID] フィールドに表示されている値をコピーします。To select and copy your tenant ID, search for "Azure Active Directory" from within the portal, then select Properties and copy the value shown in the Directory ID field. サブスクリプションの ID を見つけるには、"サブスクリプション" を検索し、適切なサブスクリプション ID を選択します。To find the ID of a subscription, search for "Subscriptions" and then select the appropriate subscription ID.

PowerShellPowerShell

# Log in first with Connect-AzAccount if you're not using Cloud Shell

Select-AzSubscription <subscriptionId>

Azure CLIAzure CLI

# Log in first with az login if you're not using Cloud Shell

az account set --subscription <subscriptionId/name>
az account show

顧客のサブスクリプションがオンボード用に登録されていることを確認するEnsure the customer's subscription is registered for onboarding

各サブスクリプションには、Microsoft.ManagedServices リソースプロバイダーを手動で登録することで、オンボードを承認する必要があります。Each subscription must be authorized for onboarding by manually registering the Microsoft.ManagedServices resource provider. 顧客は、「Azure リソースプロバイダーと種類」で説明されている手順に従って、サブスクリプションを登録できます。The customer can register a subscription by following the steps outlined in Azure resource providers and types.

顧客は、次のいずれかの方法で、サブスクリプションをオンボードする準備が完了していることを確認できます。The customer can confirm that the subscription is ready for onboarding in one of the following ways.

Azure ポータルAzure portal

  1. Azure portal で、サブスクリプションを選択します。In the Azure portal, select the subscription.
  2. [リソース プロバイダー] を選択します。Select Resource providers.
  3. Microsoft.ManagedServices[登録済み] と表示されることを確認します。Confirm that Microsoft.ManagedServices shows as Registered.

PowerShellPowerShell

# Log in first with Connect-AzAccount if you're not using Cloud Shell

Set-AzContext -Subscription <subscriptionId>
Get-AzResourceProvider -ProviderNameSpace 'Microsoft.ManagedServices'

これにより、次のような結果が返されます。This should return results similar to the following:

ProviderNamespace : Microsoft.ManagedServices
RegistrationState : Registered
ResourceTypes     : {registrationDefinitions}
Locations         : {}

ProviderNamespace : Microsoft.ManagedServices
RegistrationState : Registered
ResourceTypes     : {registrationAssignments}
Locations         : {}

ProviderNamespace : Microsoft.ManagedServices
RegistrationState : Registered
ResourceTypes     : {operations}
Locations         : {}

Azure CLIAzure CLI

# Log in first with az login if you're not using Cloud Shell

az account set –subscription <subscriptionId>
az provider show --namespace "Microsoft.ManagedServices" --output table

これにより、次のような結果が返されます。This should return results similar to the following:

Namespace                  RegistrationState
-------------------------  -------------------
Microsoft.ManagedServices  Registered

ロールとアクセス許可を定義するDefine roles and permissions

サービス プロバイダーの場合、1 人の顧客に複数のオファーを使用することができます。この場合、スコープによって異なるアクセスが必要になります。As a service provider, you may want to use multiple offers with a single customer, requiring different access for different scopes.

管理をより簡単にするには、各ロールに Azure AD のユーザー グループを使用することをお勧めします。これにより、個々のユーザーに直接アクセス許可を割り当てるのではなく、ユーザーをグループに追加または削除することができます。To make management easier, we recommend using Azure AD user groups for each role, allowing you to add or remove individual users to the group rather than assigning permissions directly to that user. また、サービス プリンシパルにロールをアサインすることもできます。You may also want to assign roles to a service principal. ユーザーがジョブの完了に必要なアクセス許可のみを持ち、不注意によるエラーの可能性が低くなるように、必ず最小限の特権の原則に従ってください。Be sure to follow the principle of least privilege so that users only have the permissions needed to complete their job, helping to reduce the chance of inadvertent errors. 詳細については、「推奨セキュリティ プラクティス」を参照してください。For more info, see Recommended security practices.

注意

ロールの割り当てでは、ロールベースのアクセス制御 (RBAC) の組み込みロールを使用する必要があります。Role assignments must use role-based access control (RBAC) built-in roles. 現在、組み込みロールはすべて、Azure の委任されたリソース管理でサポートされています。ただし、所有者と DataActions アクセス許可を持つ組み込みロールは除きます。All built-in roles are currently supported with Azure delegated resource management except for Owner and any built-in roles with DataActions permission. ユーザーアクセス管理者の組み込みロールは、以下で説明するように、限定的な用途でサポートされています。The User Access Administrator built-in role is supported for limited use as described below. また、カスタムロールと従来のサブスクリプション管理者ロールはサポートされていません。Custom roles and classic subscription administrator roles are also not supported.

承認を定義するために、アクセスを許可する各ユーザー、ユーザー グループ、またはサービス プリンシパルの ID 値を知っておく必要があります。In order to define authorizations, you'll need to know the ID values for each user, user group, or service principal to which you want to grant access. また、割り当てる各組み込みロールのロール定義 ID も必要になります。You'll also need the role definition ID for each built-in role you want to assign. それらがまだない場合は、次のいずれかの方法で取得できます。If you don't have them already, you can retrieve them in one of the following ways.

PowerShellPowerShell

# Log in first with Connect-AzAccount if you're not using Cloud Shell

# To retrieve the objectId for an Azure AD group
(Get-AzADGroup -DisplayName '<yourGroupName>').id

# To retrieve the objectId for an Azure AD user
(Get-AzADUser -UserPrincipalName '<yourUPN>').id

# To retrieve the objectId for an SPN
(Get-AzADApplication -DisplayName '<appDisplayName>').objectId

# To retrieve role definition IDs
(Get-AzRoleDefinition -Name '<roleName>').id

Azure CLIAzure CLI

# Log in first with az login if you're not using Cloud Shell

# To retrieve the objectId for an Azure AD group
az ad group list --query "[?displayName == '<yourGroupName>'].objectId" --output tsv

# To retrieve the objectId for an Azure AD user
az ad user show --upn-or-object-id "<yourUPN>" –-query "objectId" --output tsv

# To retrieve the objectId for an SPN
az ad sp list --query "[?displayName == '<spDisplayName>'].objectId" --output tsv

# To retrieve role definition IDs
az role definition list --name "<roleName>" | grep name

Azure Resource Manager テンプレートの作成Create an Azure Resource Manager template

顧客をオンボードするには、次の内容を含む Azure Resource Manager テンプレートを作成する必要があります。To onboard your customer, you'll need to create an Azure Resource Manager template that includes the following:

フィールドField 定義Definition
mspNamemspName サービス プロバイダーの名前Service provider name
mspOfferDescriptionmspOfferDescription オファーの簡単な説明 (例: "Contoso VM 管理オファー")A brief description of your offer (for example, "Contoso VM management offer")
managedByTenantIdmanagedByTenantId テナント IDYour tenant ID
authorizationsauthorizations principalId 値はテナントのユーザー、グループ、または SPN を表し、それぞれに、顧客が承認の目的を理解するのに役立つ principalIdDisplayName が指定されているほか、アクセス レベルを指定するための組み込みの roleDefinitionId 値がマップされています。The principalId values for the users/groups/SPNs from your tenant, each with a principalIdDisplayName to help your customer understand the purpose of the authorization and mapped to a built-in roleDefinitionId value to specify the level of access

顧客のサブスクリプションをオンボードするには、サンプル リポジトリで提供されている適切な Azure Resource Manager テンプレートと共に、対応するパラメーター ファイルを使用します。これは、実際の構成に合わせて承認を定義するように変更します。To onboard a customer's subscription, use the appropriate Azure Resource Manager template that we provide in our samples repo, along with a corresponding parameters file that you modify to match your configuration and define your authorizations. オンボードの対象がサブスクリプション全体、リソース グループ、サブスクリプション内の複数のリソース グループのいずれであるかに応じて、個別のテンプレートが用意されています。Separate templates are provided depending on whether you are onboarding an entire subscription, a resource group, or multiple resource groups within a subscription. また、この方法でサブスクリプションをオンボードしたい方のために、Azure Marketplace に公開したマネージド サービス オファーを購入した顧客に使用できるテンプレートも用意されています。We also provide a template that can be used for customers who purchased a managed service offer that you published to Azure Marketplace, if you prefer to onboard their subscription(s) this way.

オンボードの対象To onboard this 使用する Azure Resource Manager テンプレートUse this Azure Resource Manager template 変更するパラメーター ファイルAnd modify this parameter file
SubscriptionSubscription delegatedResourceManagement.jsondelegatedResourceManagement.json delegatedResourceManagement.parameters.jsondelegatedResourceManagement.parameters.json
Resource groupResource group rgDelegatedResourceManagement.jsonrgDelegatedResourceManagement.json rgDelegatedResourceManagement.parameters.jsonrgDelegatedResourceManagement.parameters.json
サブスクリプション内の複数のリソース グループMultiple resource groups within a subscription multipleRgDelegatedResourceManagement.jsonmultipleRgDelegatedResourceManagement.json multipleRgDelegatedResourceManagement.parameters.jsonmultipleRgDelegatedResourceManagement.parameters.json
サブスクリプション (Azure Marketplace に公開されたオファーの使用時)Subscription (when using an offer published to Azure Marketplace) marketplaceDelegatedResourceManagement.jsonmarketplaceDelegatedResourceManagement.json marketplaceDelegatedResourceManagement.parameters.jsonmarketplaceDelegatedResourceManagement.parameters.json

重要

ここで説明しているプロセスでは、オンボードの対象となるサブスクリプションごとに個別のデプロイが必要です。The process described here requires a separate deployment for each subscription being onboarded.

また、異なるサブスクリプション内のリソース グループを複数オンボードする場合も個別のデプロイが必要です。Separate deployments are also required if you are onboarding multiple resource groups within different subscriptions. ただし、1 つのサブスクリプション内の複数のリソース グループをオンボードする場合は、1 つのデプロイで実行できます。However, onboarding multiple resource groups within a single subscription can be done in one deployment.

次の例では、サブスクリプションをオンボードする際に使用される、変更後の resourceProjection.parameters.json ファイルを示しています。The following example shows a modified resourceProjection.parameters.json file that will be used to onboard a subscription. (rg-delegated-resource-management フォルダー内にある) リソース グループのパラメーター ファイルは似ていますが、オンボードの対象となる特定のリソース グループを識別するための rgName パラメーターも含まれています。The resource group parameter files (located in the rg-delegated-resource-management folder) are similar, but also include an rgName parameter to identify the specific resource group(s) to be onboarded.

{
    "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "mspName": {
            "value": "Fabrikam Managed Services - Interstellar"
        },
        "mspOfferDescription": {
            "value": "Fabrikam Managed Services - Interstellar"
        },
        "managedByTenantId": {
            "value": "df4602a3-920c-435f-98c4-49ff031b9ef6"
        },
        "authorizations": {
            "value": [
                {
                    "principalId": "0019bcfb-6d35-48c1-a491-a701cf73b419",
                    "principalIdDisplayName": "Tier 1 Support",
                    "roleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c"
                },
                {
                    "principalId": "0019bcfb-6d35-48c1-a491-a701cf73b419",
                    "principalIdDisplayName": "Tier 1 Support",
                    "roleDefinitionId": "36243c78-bf99-498c-9df9-86d9f8d28608"
                },
                {
                    "principalId": "0afd8497-7bff-4873-a7ff-b19a6b7b332c",
                    "principalIdDisplayName": "Tier 2 Support",
                    "roleDefinitionId": "acdd72a7-3385-48ef-bd42-f606fba81ae7"
                },
                {
                    "principalId": "9fe47fff-5655-4779-b726-2cf02b07c7c7",
                    "principalIdDisplayName": "Service Automation Account",
                    "roleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c"
                },
                {
                    "principalId": "3kl47fff-5655-4779-b726-2cf02b05c7c4",
                    "principalIdDisplayName": "Policy Automation Account",
                    "roleDefinitionId": "18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
                    "delegatedRoleDefinitionIds": [
                        "b24988ac-6180-42a0-ab88-20f7382dd24c",
                        "92aaf0da-9dab-42b6-94a3-d43ce8d16293"
                    ]
                }
            ]
        }
    }
}

上記の例の最後の承認では、ユーザー アクセス管理者ロール (18d7d88d-d35e-4fb5-a5c3-7773c20a72d9) が設定された principalId が追加されます。The last authorization in the example above adds a principalId with the User Access Administrator role (18d7d88d-d35e-4fb5-a5c3-7773c20a72d9). このロールを割り当てる際は、delegatedRoleDefinitionIds プロパティと 1 つ以上の組み込みロールを含める必要があります。When assigning this role, you must include the delegatedRoleDefinitionIds property and one or more built-in roles. この承認で作成されたユーザーは、これらの組み込みロールをマネージド ID に割り当てることができます。The user created in this authorization will be able to assign these built-in roles to managed identities. ユーザー アクセス管理者ロールに通常関連付けられている他のアクセス許可はこのユーザーに適用されないことに注意してください。Note that no other permissions normally associated with the User Access Administrator role will apply to this user.

Azure Resource Manager テンプレートをデプロイするDeploy the Azure Resource Manager templates

パラメーター ファイルの更新が完了したら、顧客は、Resource Manager テンプレートをサブスクリプションレベルのデプロイとして顧客のテナントにデプロイする必要があります。Once you have updated your parameter file, the customer must deploy the Resource Management template in their customer's tenant as a subscription-level deployment. Azure の委任されたリソース管理にオンボードするサブスクリプションごと (または、オンボードするリソース グループを含むサブスクリプションごと) に個別のデプロイが必要です。A separate deployment is needed for each subscription that you want to onboard to Azure delegated resource management (or for each subscription that contains resource groups that you want to onboard).

重要

このデプロイは、ゲスト以外のアカウントが、オンボード対象のサブスクリプションで所有者の組み込みコールを持っている (またはオンボード対象のリソース グループを含む) 顧客のテナントで実行する必要があります。The deployment must be done by a non-guest account in the customer’s tenant which has the Owner built-in role for the subscription being onboarded (or which contains the resource groups that are being onboarded).

# Log in first with Connect-AzAccount if you're not using Cloud Shell

# Deploy Azure Resource Manager template using template and parameter file locally
New-AzDeployment -Name <deploymentName> `
                 -Location <AzureRegion> `
                 -TemplateFile <pathToTemplateFile> `
                 -TemplateParameterFile <pathToParameterFile> `
                 -Verbose

# Deploy Azure Resource Manager template that is located externally
New-AzDeployment -Name <deploymentName> `
                 -Location <AzureRegion> `
                 -TemplateUri <templateUri> `
                 -TemplateParameterUri <parameterUri> `
                 -Verbose

Azure CLIAzure CLI

# Log in first with az login if you're not using Cloud Shell

# Deploy Azure Resource Manager template using template and parameter file locally
az deployment create –-name <deploymentName> \
                     --location <AzureRegion> \
                     --template-file <pathToTemplateFile> \
                     --parameters <parameters/parameterFile> \
                     --verbose

# Deploy external Azure Resource Manager template, with local parameter file
az deployment create –-name <deploymentName \
                     –-location <AzureRegion> \
                     --template-uri <templateUri> \
                     --parameters <parameterFile> \
                     --verbose

オンボードが成功したことを確認するConfirm successful onboarding

顧客サブスクリプションが Azure の委任されたリソース管理に正常にオンボードされたら、サービス プロバイダーのテナント内のユーザーは、そのサブスクリプションとそのリソースを表示できるようになります (上記のプロセスを通じて、個人として、または適切なアクセス許可を持つ Azure AD グループのメンバーとして、それに対するアクセスが許可されている場合)。When a customer subscription has successfully been onboarded to Azure delegated resource management, users in the service provider's tenant will be able to see the subscription and its resources (if they have been granted access to it through the process above, either individually or as a member of an Azure AD group with the appropriate permissions). これを確認するには、次のいずれかの方法でサブスクリプションが表示されることを確認します。To confirm this, check to make sure the subscription appears in one of the following ways.

Azure ポータルAzure portal

サービス プロバイダーのテナントでIn the service provider's tenant:

  1. [マイ カスタマー] ページに移動します。Navigate to the My customers page.
  2. [顧客] を選択します。Select Customers.
  3. Resource Manager テンプレートで指定したオファー名の付いたサブスクリプションが表示されることを確認します。Confirm that you can see the subscription(s) with the offer name you provided in the Resource Manager template.

顧客のテナントでIn the customer's tenant:

  1. [サービス プロバイダー] ページに移動します。Navigate to the Service providers page.
  2. [サービス プロバイダーのオファー] を選択します。Select Service provider offers.
  3. Resource Manager テンプレートで指定したオファー名の付いたサブスクリプションが表示されることを確認します。Confirm that you can see the subscription(s) with the offer name you provided in the Resource Manager template.

注意

デプロイが完了してから Azure portal に更新が反映されるまで数分かかる場合があります。It may take a few minutes after your deployment is complete before the updates are reflected in the Azure portal.

PowerShellPowerShell

# Log in first with Connect-AzAccount if you're not using Cloud Shell

Get-AzContext

Azure CLIAzure CLI

# Log in first with az login if you're not using Cloud Shell

az account list

次の手順Next steps