New-AzRoleDefinition
Azure RBAC にカスタム ロールを作成します。 JSON ロール定義ファイルまたは PSRoleDefinition オブジェクトを入力として指定します。 最初に、Get-AzRoleDefinition コマンドを使用して、ベースライン ロール定義オブジェクトを生成します。 次に、必要に応じてプロパティを変更します。 最後に、このコマンドを使用して、ロール定義を使用してカスタム ロールを作成します。
構文
InputFileParameterSet
New-AzRoleDefinition
[-InputFile] <String>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
RoleDefinitionParameterSet
New-AzRoleDefinition
[-Role] <PSRoleDefinition>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
説明
New-AzRoleDefinition コマンドレットは、Azure Role-Based Access Controlでカスタム ロールを作成します。 JSON ファイルまたは PSRoleDefinition オブジェクトとして、コマンドへの入力としてロール定義を指定します。
入力ロールの定義には、次のプロパティが含まれている必要があります。
- 名前: カスタム ロールの名前
- 説明: ロールが付与するアクセスを要約したロールの簡単な説明。
- アクセス許可: アクセス許可オブジェクトの配列。各オブジェクトには Actions や DataActions が含まれます。
Get-AzProviderOperation を使用して、Azure RBAC を使用してセキュリティで保護できるAzureリソース プロバイダーの操作を取得します。
有効な操作文字列を次に示します。
- "*/read" は、すべてのAzureリソース プロバイダーの読み取り操作へのアクセスを許可します。
- "Microsoft。Network/*/read" は、Microsoft内のすべてのリソースの種類に対する読み取り操作へのアクセスを許可します。Azureのネットワーク リソース プロバイダー。
- "Microsoft。Compute/virtualMachines/*" は、仮想マシンとその子リソースの種類のすべての操作へのアクセスを許可します。
- AssignableScopes: カスタム ロールを割り当て可能にするスコープのセット (サブスクリプションまたはリソース グループAzure)。
有効な割り当て可能なスコープを次に示します。
- "/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": このロールは、ネットワーク リソース グループ内でのみ割り当て可能になります。
Permissions 配列内の各アクセス許可オブジェクトには、次のものが含まれる場合があります。
- アクション: カスタム ロールがアクセスを許可するコントロール プレーン操作のセット。
- NotActions: 有効なアクションを決定するためにアクションから除外する必要がある一連の操作。
- DataActions: カスタム ロールがアクセスを許可するデータ プレーン操作のセット。
- NotDataActions: DataActions から除外する必要がある一連の操作。
- 条件: アクセス許可を制限する Attribute-Based Access Control (ABAC) 条件。
- ConditionVersion: 条件構文のバージョン (例: "2.0" (条件が指定されている場合は必須)。
Note
Azure RBAC API では現在、カスタム ロールを作成するときに Permissions 配列内の 1 つの要素のみがサポートされています。 データ モデルでは複数のアクセス許可エントリがサポートされていますが、作成操作では 1 つのアクセス許可オブジェクトを使用する必要があります。
入力として指定できる JSON ロール定義の例を次に示します。{ "名前": "カスタム VM オペレーター"、"説明": "Can monitor all resources and start and restart virtual machines"、 "Permissions": [ { "Actions": [ "/read"、"Microsoft。Compute/virtualMachines/restart/action"、"Microsoft。Compute/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-xxxxxxxxxxxx"] }
例
例 1: PSRoleDefinition オブジェクトを使用してカスタム ロールを作成する
$role = New-Object -TypeName Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition
$role.Name = 'Virtual Machine Operator'
$role.Description = 'Can monitor, start, and restart virtual machines.'
$role.IsCustom = $true
$role.AssignableScopes = @("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
$permission = New-Object -TypeName Microsoft.Azure.Commands.Resources.Models.Authorization.PSPermission
$permission.Actions = @(
"Microsoft.Compute/*/read"
"Microsoft.Compute/virtualMachines/start/action"
"Microsoft.Compute/virtualMachines/restart/action"
"Microsoft.Network/*/read"
"Microsoft.Storage/*/read"
"Microsoft.Authorization/*/read"
"Microsoft.Resources/subscriptions/resourceGroups/read"
"Microsoft.Resources/subscriptions/resourceGroups/resources/read"
"Microsoft.Insights/alertRules/*"
"Microsoft.Support/*"
)
$role.Permissions = @($permission)
New-AzRoleDefinition -Role $role
指定したアクションを使用して、"仮想マシン オペレーター" という名前のカスタム ロールを作成します。
例 2: JSON ファイルを使用してカスタム ロールを作成する
New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json
JSON 定義ファイルからカスタム ロールを作成します。
パラメーター
-DefaultProfile
Azure との通信に使用される資格情報、アカウント、テナント、サブスクリプション
パラメーターのプロパティ
| 型: | IAzureContextContainer |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | AzContext, AzureRmContext, AzureCredential |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-InputFile
単一の json ロール定義を含むファイル名。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
InputFileParameterSet
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Role
ロール定義オブジェクト。
パラメーターのプロパティ
| 型: | PSRoleDefinition |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
RoleDefinitionParameterSet
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-SkipClientSideScopeValidation
指定した場合は、クライアント側のスコープの検証をスキップします。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットは、共通パラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable をサポートします。 詳細については、about_CommonParametersを参照してください。
入力
None
出力
PSRoleDefinition
メモ
キーワード: azure, azurerm, arm, リソース, 管理, マネージャー, リソース, グループ, テンプレート, デプロイ