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 オブジェクトとして、コマンドへの入力としてロール定義を指定します。

入力ロールの定義には、次のプロパティが含まれている必要があります。

  1. 名前: カスタム ロールの名前
  2. 説明: ロールが付与するアクセスを要約したロールの簡単な説明。
  3. アクセス許可: アクセス許可オブジェクトの配列。各オブジェクトには Actions や DataActions が含まれます。 Get-AzProviderOperation を使用して、Azure RBAC を使用してセキュリティで保護できるAzureリソース プロバイダーの操作を取得します。 有効な操作文字列を次に示します。
    • "*/read" は、すべてのAzureリソース プロバイダーの読み取り操作へのアクセスを許可します。
    • "Microsoft。Network/*/read" は、Microsoft内のすべてのリソースの種類に対する読み取り操作へのアクセスを許可します。Azureのネットワーク リソース プロバイダー。
    • "Microsoft。Compute/virtualMachines/*" は、仮想マシンとその子リソースの種類のすべての操作へのアクセスを許可します。
  4. 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 配列内の各アクセス許可オブジェクトには、次のものが含まれる場合があります。

  1. アクション: カスタム ロールがアクセスを許可するコントロール プレーン操作のセット。
  2. NotActions: 有効なアクションを決定するためにアクションから除外する必要がある一連の操作。
  3. DataActions: カスタム ロールがアクセスを許可するデータ プレーン操作のセット。
  4. NotDataActions: DataActions から除外する必要がある一連の操作。
  5. 条件: アクセス許可を制限する Attribute-Based Access Control (ABAC) 条件。
  6. 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, リソース, 管理, マネージャー, リソース, グループ, テンプレート, デプロイ