Azure リソースのカスタム ロールCustom roles for Azure resources

Azure リソースの組み込みロールが組織の特定のニーズを満たさない場合は、独自のカスタム ロールを作成することができます。If the built-in roles for Azure resources don't meet the specific needs of your organization, you can create your own custom roles. 組み込みロールと同様、カスタム ロールは、ユーザー、グループ、サービス プリンシパルに対して、サブスクリプション、リソース グループ、リソースのスコープで割り当てることができます。Just like built-in roles, you can assign custom roles to users, groups, and service principals at subscription, resource group, and resource scopes.

カスタム ロールは Azure Active Directory (Azure AD) ディレクトリに保存され、サブスクリプション間で共有することができます。Custom roles are stored in an Azure Active Directory (Azure AD) directory and can be shared across subscriptions. 各ディレクトリは、最大 5,000 個のカスタム ロールを持つことができますEach directory can have up to 5000 custom roles. (Azure Government、Azure Germany、Azure China 21Vianet などの特殊なクラウドの場合、カスタム ロールの上限は 2,000 個です)。カスタム ロールは、Azure PowerShell、Azure CLI、REST API で作成することができます。(For specialized clouds, such as Azure Government, Azure Germany, and Azure China 21Vianet, the limit is 2000 custom roles.) Custom roles can be created using Azure PowerShell, Azure CLI, or the REST API.

カスタム ロールの例Custom role example

JSON 形式で表示されるカスタム ロールの例を次に示します。The following shows what a custom role looks like as displayed in JSON format. このカスタム ロールは、仮想マシンの監視と再起動に使用できます。This custom role can be used for monitoring and restarting virtual machines.

{
  "Name": "Virtual Machine Operator",
  "Id": "88888888-8888-8888-8888-888888888888",
  "IsCustom": true,
  "Description": "Can monitor and restart virtual machines.",
  "Actions": [
    "Microsoft.Storage/*/read",
    "Microsoft.Network/*/read",
    "Microsoft.Compute/*/read",
    "Microsoft.Compute/virtualMachines/start/action",
    "Microsoft.Compute/virtualMachines/restart/action",
    "Microsoft.Authorization/*/read",
    "Microsoft.ResourceHealth/availabilityStatuses/read",
    "Microsoft.Resources/subscriptions/resourceGroups/read",
    "Microsoft.Insights/alertRules/*",
    "Microsoft.Insights/diagnosticSettings/*",
    "Microsoft.Support/*"
  ],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}",
    "/subscriptions/{subscriptionId2}",
    "/subscriptions/{subscriptionId3}"
  ]
}

カスタム ロールを作成すると、Azure portal にオレンジ色のリソース アイコンと共に表示されます。When you create a custom role, it appears in the Azure portal with an orange resource icon.

カスタム ロールのアイコン

カスタム ロールの作成手順Steps to create a custom role

  1. カスタム ロールを作成する方法を決定するDecide how you want to create the custom role

    カスタム ロールは、Azure PowerShellAzure CLI、または REST API を使用して作成できます。You can create custom roles using Azure PowerShell, Azure CLI, or the REST API.

  2. 必要なアクセス許可を決定するDetermine the permissions you need

    カスタム ロールを作成する場合、アクセス許可を定義するために使用可能なリソース プロバイダーの操作を把握しておく必要があります。When you create a custom role, you need to know the resource provider operations that are available to define your permissions. 操作の一覧を確認するには、「Azure Resource Manager のリソース プロバイダー操作」を参照してください。To view the list of operations, see the Azure Resource Manager resource provider operations. 操作をロール定義Actions または NotActions プロパティに追加します。You will add the operations to the Actions or NotActions properties of the role definition. データ操作をする場合は、それらを DataActions または NotDataActions プロパティに追加します。If you have data operations, you will add those to the DataActions or NotDataActions properties.

  3. カスタム ロールを作成するCreate the custom role

    通常は、まず、既存の組み込みロールを使用し、必要に応じてそれを変更します。Typically, you start with an existing built-in role and then modify it for your needs. 次に、New-AzRoleDefinition または az role definition create コマンドを使用して、カスタム ロールを作成します。Then you use the New-AzRoleDefinition or az role definition create commands to create the custom role. カスタム ロールを作成するには、所有者ユーザー アクセス管理者など、すべての AssignableScopes に対する Microsoft.Authorization/roleDefinitions/write アクセス許可が必要になります。To create a custom role, you must have the Microsoft.Authorization/roleDefinitions/write permission on all AssignableScopes, such as Owner or User Access Administrator.

  4. カスタム ロールをテストするTest the custom role

    カスタム ロールを作成したら、それをテストして期待どおりに動作することを確認する必要があります。Once you have your custom role, you have to test it to verify that it works as you expect. 後で調整する必要がある場合は、カスタム ロールを更新できます。If you need to make adjustments later, you can update the custom role.

カスタム ロールの作成方法に関するステップバイステップのチュートリアルが必要な場合は、「チュートリアル:Azure PowerShell を使用してカスタム ロールを作成する」か「チュートリアル:もしくは「チュートリアル:Azure CLI を使用してカスタム ロールを作成する」を参照してください。For a step-by-step tutorial on how to create a custom role, see Tutorial: Create a custom role using Azure PowerShell or Tutorial: Create a custom role using Azure CLI.

カスタム ロールのプロパティCustom role properties

カスタム ロールには、次のプロパティがあります。A custom role has the following properties.

プロパティProperty 必須Required TypeType 説明Description
Name はいYes StringString カスタム ロールの表示名。The display name of the custom role. ロールの定義は、サブスクリプション レベルのリソースですが、同じ Azure AD ディレクトリを共有する複数のサブスクリプションで使用できます。While a role definition is a subscription-level resource, a role definition can be used in multiple subscriptions that share the same Azure AD directory. この表示名は、Azure AD ディレクトリ範囲で一意である必要があります。This display name must be unique at the scope of the Azure AD directory. 英字、数字、スペース、特殊文字を含めることができます。Can include letters, numbers, spaces, and special characters. 最大文字数は 128 文字です。Maximum number of characters is 128.
Id はいYes StringString カスタム ロールの一意の ID。The unique ID of the custom role. Azure PowerShell と Azure CLI では、新しいロールを作成するときに自動的にこの ID が生成されます。For Azure PowerShell and Azure CLI, this ID is automatically generated when you create a new role.
IsCustom はいYes StringString これがカスタム ロールであるかどうかを示します。Indicates whether this is a custom role. カスタム ロールの場合は true に設定します。Set to true for custom roles.
Description はいYes StringString カスタム ロールの説明。The description of the custom role. 英字、数字、スペース、特殊文字を含めることができます。Can include letters, numbers, spaces, and special characters. 最大文字数は 1024 文字です。Maximum number of characters is 1024.
Actions はいYes String[]String[] ロールで実行できる管理操作を指定する文字列の配列。An array of strings that specifies the management operations that the role allows to be performed. 詳細については、「Actions」を参照してください。For more information, see Actions.
NotActions いいえNo String[]String[] 許可された Actions から除外される管理操作を指定する文字列の配列。An array of strings that specifies the management operations that are excluded from the allowed Actions. 詳細については、「notActions」を参照してください。For more information, see NotActions.
DataActions いいえNo String[]String[] 対象のオブジェクト内のデータに対して、ロールで実行できるデータ操作を指定する文字列の配列。An array of strings that specifies the data operations that the role allows to be performed to your data within that object. 詳細については、「DataActions (プレビュー)」を参照してください。For more information, see DataActions (Preview).
NotDataActions いいえNo String[]String[] 許可された DataActions から除外されるデータ操作を指定する文字列の配列。An array of strings that specifies the data operations that are excluded from the allowed DataActions. 詳細については、「NotDataActions (プレビュー)」を参照してください。For more information, see NotDataActions (Preview).
AssignableScopes はいYes String[]String[] 割り当てにカスタム ロールを使用できるスコープを指定する文字列の配列。An array of strings that specifies the scopes that the custom role is available for assignment. 現在、ルート スコープ ("/") または管理グループ スコープに設定することはできません。Currently cannot be set to the root scope ("/") or a management group scope. 詳細については、AssignableScopes および Azure 管理グループでリソースを整理する方法に関するページを参照してください。For more information, see AssignableScopes and Organize your resources with Azure management groups.

カスタム ロールを作成、削除、更新、または表示できるユーザーWho can create, delete, update, or view a custom role

組み込みロールと同じように、AssignableScopes プロパティでは、割り当てにロールを使用できるスコープを指定します。Just like built-in roles, the AssignableScopes property specifies the scopes that the role is available for assignment. カスタム ロールの AssignableScopes プロパティでは、カスタム ロールを作成、削除、更新、または表示できるユーザーも制御されます。The AssignableScopes property for a custom role also controls who can create, delete, update, or view the custom role.

タスクTask OperationOperation 説明Description
カスタム ロールの作成/削除Create/delete a custom role Microsoft.Authorization/ roleDefinitions/write カスタム ロールのすべての AssignableScopes に対してこの操作が許可されているユーザーは、これらのスコープで使用するカスタム ロールを作成 (または削除) できます。Users that are granted this operation on all the AssignableScopes of the custom role can create (or delete) custom roles for use in those scopes. たとえば、サブスクリプション、リソース グループ、リソースの所有者ユーザー アクセス管理者です。For example, Owners and User Access Administrators of subscriptions, resource groups, and resources.
カスタム ロールの更新Update a custom role Microsoft.Authorization/ roleDefinitions/write カスタム ロールのすべての AssignableScopes に対してこの操作が許可されているユーザーは、これらのスコープ内のカスタム ロールを更新できます。Users that are granted this operation on all the AssignableScopes of the custom role can update custom roles in those scopes. たとえば、サブスクリプション、リソース グループ、リソースの所有者ユーザー アクセス管理者です。For example, Owners and User Access Administrators of subscriptions, resource groups, and resources.
カスタム ロールの表示View a custom role Microsoft.Authorization/ roleDefinitions/read あるスコープでこの操作を許可されたユーザーは、そのスコープで割り当て可能なカスタム ロールを表示できます。Users that are granted this operation at a scope can view the custom roles that are available for assignment at that scope. すべての組み込みロールでは、カスタム ロールを割り当てることができます。All built-in roles allow custom roles to be available for assignment.

次の手順Next steps