Set-AzRoleDefinition
AZURE RBAC のカスタム ロールを変更します。 変更されたロール定義を JSON ファイルまたは PSRoleDefinition として指定します。 最初に、Get-AzRoleDefinition コマンドを使用して、変更するカスタム ロールを取得します。 次に、変更するプロパティを変更します。 最後に、このコマンドを使用してロール定義を保存します。
構文
InputFileParameterSet
Set-AzRoleDefinition
-InputFile <String>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
RoleDefinitionParameterSet
Set-AzRoleDefinition
-Role <PSRoleDefinition>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
説明
Set-AzRoleDefinition コマンドレットは、Azure Role-Based Access Controlの既存のカスタム ロールを更新します。 更新されたロール定義を、コマンドへの入力として JSON ファイルまたは PSRoleDefinition オブジェクトとして指定します。
更新されたカスタム ロールのロール定義には、次のものが含まれている必要があります。
- ID: 更新するロール定義の一意識別子
- 名前: カスタム ロールの名前
- 説明: ロールの簡単な説明
- アクセス許可: Actions や DataActions を含むアクセス許可オブジェクトの配列
- AssignableScopes: ロールを割り当てることができるスコープ
Permissions 配列内の各権限オブジェクトには、Actions、NotActions、DataActions、NotDataActions、および必要に応じて、Attribute-Based Access Control (ABAC) 条件の Condition および ConditionVersion を含めることができます。
Important
PSRoleDefinitionと-InputFile JSON の形状が変更されました。
-Role (PSRoleDefinition) と -InputFile (JSON) の両方で、最上位レベルのPermissions、Actions、NotActions、およびDataActionsのプロパティではなく、アクセス許可オブジェクトのNotDataActions配列が使用されるようになりました。
Get-AzRoleDefinitionをSet-AzRoleDefinition -Roleにパイプするスクリプトは、ロール オブジェクトに直接ではなく、$role.Permissions[n]を介してアクションと条件を読み取って変更する必要があります。
-InputFileで使用される JSON ファイルも同様に、Permissions配列の下にアクセス許可を入れ子にする必要があります。
Note
Azure RBAC API は現在、カスタム ロールを更新するときに Permissions 配列内の 1 つの要素のみをサポートしています。 データ モデルは複数のアクセス許可エントリをサポートしていますが、更新操作では 1 つのアクセス許可オブジェクトを使用する必要があります。
例
例 1: PSRoleDefinitionObject を使用して更新する
$roleDef = Get-AzRoleDefinition "Contoso On-Call"
$roleDef.Permissions[0].Actions.Add("Microsoft.ClassicCompute/virtualmachines/start/action")
$roleDef.Description = "Can monitor all resources and start and restart virtual machines"
$roleDef.AssignableScopes = @("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
Set-AzRoleDefinition -Role $roleDef
例 2: JSON ファイルを使用して更新する
Set-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json
JSON ファイルからカスタム ロール定義を更新します。 JSON ファイルには、ロールの Id プロパティが含まれている必要があります。
パラメーター
-DefaultProfile
Azure との通信に使用される資格情報、アカウント、テナント、サブスクリプション
パラメーターのプロパティ
| 型: | IAzureContextContainer |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | AzContext, AzureRmContext, AzureCredential |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-InputFile
更新する 1 つの json ロール定義を含むファイル名。 JSON で更新されるプロパティのみを含めます。 Id プロパティは必須です。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
InputFileParameterSet
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Role
更新するロール定義オブジェクト
パラメーターのプロパティ
| 型: | PSRoleDefinition |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
RoleDefinitionParameterSet
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | 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を参照してください。
入力
PSRoleDefinition
出力
PSRoleDefinition
メモ
キーワード: azure, azurerm, arm, リソース, 管理, マネージャー, リソース, グループ, テンプレート, デプロイ