New-AzRoleDefinition
Azure RBAC でカスタム ロールを作成します。 JSON ロール定義ファイルまたは PSRoleDefinition オブジェクトを入力として指定します。 最初に、Get-AzRoleDefinition コマンドを使用して、ベースライン ロール定義オブジェクトを生成します。 次に、必要に応じてプロパティを変更します。 最後に、このコマンドを使用して、ロール定義を使用してカスタム ロールを作成します。
構文
New-AzRoleDefinition
[-InputFile] <String>
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzRoleDefinition
[-Role] <PSRoleDefinition>
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
説明
New-AzRoleDefinition コマンドレットは、Azure Role-Based Access Controlでカスタム ロールを作成します。 JSON ファイルまたは PSRoleDefinition オブジェクトとして、コマンドへの入力としてロール定義を指定します。 入力ロール定義には、次のプロパティが含まれている必要があります。
- DisplayName: カスタム ロールの名前
- 説明: ロールが付与するアクセスを要約したロールの簡単な説明。
- アクション: カスタム ロールがアクセスを許可する操作のセット。 Get-AzProviderOperationを使用して、Azure RBAC を使用してセキュリティで保護できる Azure リソース プロバイダーの操作を取得します。 有効な操作文字列を次に示します。
- "*/read" は、すべての Azure リソース プロバイダーの読み取り操作へのアクセスを許可します。
- "Microsoft.Network/*/read" は、Azure の Microsoft.Network リソース プロバイダー内のすべてのリソースの種類に対する読み取り操作へのアクセスを許可します。
- "Microsoft.Compute/virtualMachines/*" は、仮想マシンとその子リソースの種類のすべての操作へのアクセスを許可します。
- AssignableScopes: カスタム ロールが割り当てに使用できるスコープのセット (Azure サブスクリプションまたはリソース グループ)。 AssignableScopes を使用すると、カスタム ロールを必要とするサブスクリプションまたはリソース グループでのみ割り当てに使用でき、残りのサブスクリプションやリソース グループのユーザー エクスペリエンスを乱雑にしないようにすることができます。 有効な割り当て可能なスコープを次に示します。
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624": ロールを 2 つのサブスクリプションで割り当てることができます。
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e": ロールを 1 つのサブスクリプションで割り当て可能にします。
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network": このロールは、ネットワーク リソース グループでのみ割り当てに使用できます。 入力ロール定義には、次のプロパティが含まれる場合があります。
- NotActions: カスタム ロールの有効なアクションを決定するためにアクションから除外する必要がある一連の操作。 カスタム ロールで にアクセス権を付与しない特定の操作がある場合は、[アクション] で特定の操作以外のすべての操作を指定するのではなく、NotActions を使用して除外すると便利です。
- DataActions: カスタム ロールがアクセスを許可するデータ操作のセット。
- NotDataActions: カスタム ロールの有効なデータ アクションを決定するために DataActions から除外する必要がある一連の操作。 カスタム ロールで へのアクセスを許可しない特定のデータ操作がある場合は、アクションで特定の操作以外のすべての操作を指定するのではなく、NotDataActions を使用して除外すると便利です。 注: NotActions で操作を指定し、別のロールも割り当てられたロールがユーザーに割り当てられている場合、ユーザーはその操作を実行できます。 NotActions は拒否ルールではありません。特定の操作を除外する必要がある場合に、許可される一連の操作を簡単に作成できます。 入力 { "Name": "Updated Role", "Description": "Can monitor all resources and start and restart virtual machines", "Actions": [ "/read", "Microsoft.ClassicCompute/virtualmachines/restart/action", "Microsoft.ClassicCompute/virtualmachines/start/action" ], "NotActions": [ "/write" ], "DataActions": [ "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read" ], "NotDataActions": [ Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write" ], "AssignableScopes": ["/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"] }
例
例 1: PSRoleDefinitionObject を使用して作成する
$role = Get-AzRoleDefinition -Name "Virtual Machine Contributor"
$role.Id = $null
$role.Name = "Virtual Machine Operator"
$role.Description = "Can monitor, start, and restart virtual machines."
$role.IsCustom = $True
$role.Actions.RemoveRange(0,$role.Actions.Count)
$role.Actions.Add("Microsoft.Compute/*/read")
$role.Actions.Add("Microsoft.Compute/virtualMachines/start/action")
$role.Actions.Add("Microsoft.Compute/virtualMachines/restart/action")
$role.Actions.Add("Microsoft.Compute/virtualMachines/downloadRemoteDesktopConnectionFile/action")
$role.Actions.Add("Microsoft.Network/*/read")
$role.Actions.Add("Microsoft.Storage/*/read")
$role.Actions.Add("Microsoft.Authorization/*/read")
$role.Actions.Add("Microsoft.Resources/subscriptions/resourceGroups/read")
$role.Actions.Add("Microsoft.Resources/subscriptions/resourceGroups/resources/read")
$role.Actions.Add("Microsoft.Insights/alertRules/*")
$role.Actions.Add("Microsoft.Support/*")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
New-AzRoleDefinition -Role $role
例 2: JSON ファイルを使用して作成する
New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json
パラメーター
-DefaultProfile
Azure との通信に使用される資格情報、アカウント、テナント、およびサブスクリプション
Type: | IAzureContextContainer |
Aliases: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputFile
1 つの json ロール定義を含むファイル名。
Type: | String |
Position: | 0 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Role
ロール定義オブジェクト。
Type: | PSRoleDefinition |
Position: | 0 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
None
出力
メモ
キーワード: azure, azurerm, arm, リソース, 管理, マネージャー, リソース, グループ, テンプレート, デプロイ
関連リンク
フィードバック
フィードバックの送信と表示