New-AzRoleAssignment
在指定的範圍內,將指定的 RBAC 角色指派給指定的主體。
Cmdlet 可能會根據輸入參數呼叫下列Microsoft圖形 API:
- GET /users/{id}
- GET /servicePrincipals/{id}
- GET /groups/{id}
- GET /directoryObjects/{id}
請注意,如果找不到角色指派的物件,或目前的帳戶沒有足夠的許可權可取得物件類型,此 Cmdlet 會將 ObjectType
標示為輸出中的 Unknown
。
語法
New-AzRoleAssignment
-ObjectId <String>
[-Scope <String>]
-RoleDefinitionName <String>
[-Description <String>]
[-Condition <String>]
[-ConditionVersion <String>]
[-ObjectType <String>]
[-AllowDelegation]
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzRoleAssignment
-ObjectId <String>
-ResourceGroupName <String>
-RoleDefinitionName <String>
[-Description <String>]
[-Condition <String>]
[-ConditionVersion <String>]
[-ObjectType <String>]
[-AllowDelegation]
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzRoleAssignment
-ObjectId <String>
-ResourceGroupName <String>
-ResourceName <String>
-ResourceType <String>
[-ParentResource <String>]
-RoleDefinitionName <String>
[-Description <String>]
[-Condition <String>]
[-ConditionVersion <String>]
[-ObjectType <String>]
[-AllowDelegation]
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzRoleAssignment
-ObjectId <String>
-Scope <String>
[-Description <String>]
[-Condition <String>]
[-ConditionVersion <String>]
[-ObjectType <String>]
-RoleDefinitionId <Guid>
[-AllowDelegation]
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzRoleAssignment
-SignInName <String>
-ResourceGroupName <String>
-RoleDefinitionName <String>
[-Description <String>]
[-Condition <String>]
[-ConditionVersion <String>]
[-ObjectType <String>]
[-AllowDelegation]
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzRoleAssignment
-SignInName <String>
-ResourceGroupName <String>
-ResourceName <String>
-ResourceType <String>
[-ParentResource <String>]
-RoleDefinitionName <String>
[-Description <String>]
[-Condition <String>]
[-ConditionVersion <String>]
[-ObjectType <String>]
[-AllowDelegation]
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzRoleAssignment
-SignInName <String>
[-Scope <String>]
-RoleDefinitionName <String>
[-Description <String>]
[-Condition <String>]
[-ConditionVersion <String>]
[-ObjectType <String>]
[-AllowDelegation]
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzRoleAssignment
-ApplicationId <String>
-ResourceGroupName <String>
-RoleDefinitionName <String>
[-Description <String>]
[-Condition <String>]
[-ConditionVersion <String>]
[-ObjectType <String>]
[-AllowDelegation]
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzRoleAssignment
-ApplicationId <String>
-ResourceGroupName <String>
-ResourceName <String>
-ResourceType <String>
[-ParentResource <String>]
-RoleDefinitionName <String>
[-Description <String>]
[-Condition <String>]
[-ConditionVersion <String>]
[-ObjectType <String>]
[-AllowDelegation]
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzRoleAssignment
-ApplicationId <String>
[-Scope <String>]
-RoleDefinitionName <String>
[-Description <String>]
[-Condition <String>]
[-ConditionVersion <String>]
[-ObjectType <String>]
[-AllowDelegation]
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzRoleAssignment
-InputFile <String>
[-AllowDelegation]
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Description
使用 New-AzRoleAssignment 命令來授與存取權。 將適當的 RBAC 角色指派給適當的 RBAC 角色,以授與存取權。 若要授與整個訂用帳戶的存取權,請在訂用帳戶範圍指派角色。 若要授與訂用帳戶內特定資源群組的存取權,請在資源群組範圍指派角色。 必須指定指派的主旨。 若要指定使用者,請使用 SignInName 或 Microsoft Entra ObjectId 參數。 若要指定安全組,請使用 Microsoft Entra ObjectId 參數。 若要指定Microsoft Entra 應用程式,請使用ApplicationId或 ObjectId 參數。 指派的角色必須使用 RoleDefinitionName 參數來指定。 可以指定授與存取權的範圍。 默認為選取的訂用帳戶。 您可以使用下列其中一個參數組合來指定指派的範圍。 範圍 - 這是從 /subscriptions/<subscriptionId> b 開始的完整範圍。 ResourceGroupName - 授與指定資源群組的存取權。 c. ResourceName、ResourceType、ResourceGroupName 和 (選擇性地) ParentResource - 在資源群組內指定要授與存取權的特定資源。
範例
範例 1
New-AzRoleAssignment -ResourceGroupName rg1 -SignInName allen.young@live.com -RoleDefinitionName Reader -AllowDelegation
授與讀者角色存取權給資源群組範圍中的使用者,並授與可供委派的角色指派
範例 2
Get-AzADGroup -SearchString "Christine Koch Team"
DisplayName Type Id
----------- ---- --------
Christine Koch Team 2f9d4375-cbf1-48e8-83c9-2a0be4cb33fb
New-AzRoleAssignment -ObjectId 2f9d4375-cbf1-48e8-83c9-2a0be4cb33fb -RoleDefinitionName Contributor -ResourceGroupName rg1
授與安全組的存取權
範例 3
New-AzRoleAssignment -SignInName john.doe@contoso.com -RoleDefinitionName Owner -Scope "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/rg1/providers/Microsoft.Web/sites/site1"
在資源上授與使用者存取權 (網站)
範例 4
New-AzRoleAssignment -ObjectId 00001111-aaaa-2222-bbbb-3333cccc4444 -RoleDefinitionName "Virtual Machine Contributor" -ResourceName Devices-Engineering-ProjectRND -ResourceType Microsoft.Network/virtualNetworks/subnets -ParentResource virtualNetworks/VNET-EASTUS-01 -ResourceGroupName Network
授與巢狀資源群組的存取權(子網)
範例 5
$servicePrincipal = New-AzADServicePrincipal -DisplayName "testServiceprincipal"
New-AzRoleAssignment -RoleDefinitionName "Reader" -ApplicationId $servicePrincipal.ApplicationId
授與讀取者對服務主體的存取權
範例 6
$Condition = '(
(
!(ActionMatches{''Microsoft.Authorization/roleAssignments/write''})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:PrincipalType] StringEqualsIgnoreCase ''ServicePrincipal''
)
)
AND
(
(
!(ActionMatches{''Microsoft.Authorization/roleAssignments/delete''})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:PrincipalType] StringEqualsIgnoreCase ''ServicePrincipal''
)
)'
$DelegationParams = @{
AllowDelegation = $true
Condition = $Condition
Scope = "/subscriptions/11112222-bbbb-3333-cccc-4444dddd5555"
RoleDefinitionName = 'User Access Administrator'
ObjectId = "00001111-aaaa-2222-bbbb-3333cccc4444"
}
New-AzRoleAssignment @DelegationParams
使用限制委派,將使用者存取系統管理員授與 Azure 訂用帳戶。
限制委派只會允許委派的使用者/服務主體/群組只能建立/刪除/更新服務主體和任何角色的新角色指派。
範例 7
$Condition = '(
(
!(ActionMatches{''Microsoft.Authorization/roleAssignments/write''})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:PrincipalType] StringEqualsIgnoreCase ''ServicePrincipal''
AND
NOT @Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {8e3af657-a8ff-443c-a75c-2fe8c4bcb635,18d7d88d-d35e-4fb5-a5c3-7773c20a72d9}
)
)
AND
(
(
!(ActionMatches{''Microsoft.Authorization/roleAssignments/delete''})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:PrincipalType] StringEqualsIgnoreCase ''ServicePrincipal''
AND
NOT @Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {8e3af657-a8ff-443c-a75c-2fe8c4bcb635,18d7d88d-d35e-4fb5-a5c3-7773c20a72d9}
)
)'
$DelegationParams = @{
AllowDelegation = $true
Condition = $Condition
Scope = "/subscriptions/11112222-bbbb-3333-cccc-4444dddd5555"
RoleDefinitionName = 'User Access Administrator'
ObjectId = "00001111-aaaa-2222-bbbb-3333cccc4444"
}
New-AzRoleAssignment @DelegationParams
使用限制委派,將使用者存取系統管理員授與 Azure 訂用帳戶。
限制委派只會允許委派的使用者/服務主體/群組只能建立/刪除/更新服務主體的新角色指派,但不包括 擁有者 和 使用者存取系統管理員 角色。
參數
-AllowDelegation
建立角色指派時委派旗標。
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ApplicationId
ServicePrincipal 的應用程式標識碼
類型: | String |
別名: | SPN, ServicePrincipalName |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Condition
要套用至 RoleAssignment 的條件。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-ConditionVersion
條件的版本。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-DefaultProfile
用於與 azure 通訊的認證、帳戶、租用戶和訂用帳戶
類型: | IAzureContextContainer |
別名: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Description
角色指派的簡短描述。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-InputFile
角色指派 json 的路徑
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-ObjectId
Microsoft使用者、群組或服務主體的 Entra Objectid。
類型: | String |
別名: | Id, PrincipalId |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-ObjectType
要與 ObjectId 搭配使用。 指定 asignee 物件的類型
類型: | String |
別名: | PrincipalType |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-ParentResource
階層中的父資源(使用 ResourceName 參數指定的資源)。 應該只與 ResourceGroupName、ResourceType 和 ResourceName 參數搭配使用,以識別資源的相對 URI 形式建構階層式範圍。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-ResourceGroupName
資源組名。 建立在指定資源群組上有效的指派。 搭配 ResourceName、ResourceType 和 (選擇性)ParentResource 參數使用時,命令會以識別資源的相對 URI 形式建構階層式範圍。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-ResourceName
資源名稱。 例如 storageaccountprod。 應該只與 ResourceGroupName、ResourceType 和 (選擇性)ParentResource 參數搭配使用,以識別資源的相對 URI 形式建構階層式範圍。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-ResourceType
資源類型。 例如,Microsoft.Network/virtualNetworks。 應該只能與 ResourceGroupName、ResourceName 和 (選擇性)ParentResource 參數搭配使用,以識別資源的相對 URI 形式建構階層式範圍。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-RoleDefinitionId
需要指派給主體的 RBAC 角色識別碼。
類型: | Guid |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-RoleDefinitionName
需要指派給主體的 RBAC 角色名稱,例如讀者、參與者、虛擬網路管理員等。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Scope
角色指派的範圍。 以相對 URI 的格式。 例如“/subscriptions/9004a9fd-d58e-48dc-aeb2-4a4aec58606f/resourceGroups/TestRG”。 如果未指定,將會在訂用帳戶層級建立角色指派。 如果指定,它應該以 “/subscriptions/{id}” 開頭。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-SignInName
用戶的電子郵件地址或用戶主體名稱。
類型: | String |
別名: | Email, UserPrincipalName |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-SkipClientSideScopeValidation
如果指定,請略過客戶端範圍驗證。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
輸出
備註
深入瞭解角色指派委派 - https://learn.microsoft.com/en-us/azure/role-based-access-control/delegate-role-assignments-portal?tabs=template
關鍵詞:azure, azurerm, arm, 資源, 管理, 管理員, 資源, 群組, 範本, 部署