中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用PowerShell 獲取 Azure賬戶中的用戶權限分配情況

發布時間:2020-07-10 02:56:28 來源:網絡 閱讀:3557 作者:mxy00000 欄目:云計算

    今天再來分享一篇關于PowerShell的文章,這次分享的腳本主要是用來獲取Azure中用戶權限分配的情況,原始的需求是因為公司Azure賬戶因為權限分配混亂,導致了一些不該發生的事情,所以需要重新整理所有的用戶權限分配情況,重新進行梳理和規整,這種情況下,了解當前的權限分配情況就非常重要了。一般情況下,Azure可以根據RBAC的方式進行權限分配,這個是很方便的,簡單介紹下RBAC的概念吧

    

     RBAC概念

     使用 RBAC,可以在團隊中實現職責分離,僅向用戶授予執行作業所需的訪問權限。 無需向每個人授予 Azure 訂閱或資源的無限制權限,可以僅允許在特定的范圍執行某些操作。

規劃訪問控制策略時,最佳做法是授予用戶完成工作所需的最低權限。 下圖顯示了與 RBAC 使用有關的建議模式。




    使用PowerShell 獲取 Azure賬戶中的用戶權限分配情況



    使用 RBAC 控制資源訪問權限的方式是創建角色分配。 這是一個需要理解的重要概念 — 它涉及到如何強制實施權限。 角色分配包含三個要素:安全主體、角色訂閱和范圍。



    安全主體

    安全主體是一個對象,表示請求訪問 Azure 資源的用戶、組、服務主體或托管標識。


    使用PowerShell 獲取 Azure賬戶中的用戶權限分配情況




  • 用戶 - 在 Azure Active Directory 中具有配置文件的人員。 也可以將角色分配到其他租戶中的用戶。 有關其他組織中的用戶的信息,請參閱 Azure Active Directory B2B。

  • 組 - 在 Azure Active Directory 中創建的一組用戶。 將某個角色分配到某個組時,該組中的所有用戶都擁有該角色。

  • 服務主體 - 應用程序或服務用來訪問特定 Azure 資源的安全標識。 可將服務主體視為應用程序的用戶標識(用戶名和密碼或證書)。

  • 托管標識 - Azure Active Directory 中由 Azure 自動托管的標識。 在開發云應用程序時,通常使用托管標識來管理用于向 Azure 服務進行身份驗證的憑據。


    角色

    

    

    使用PowerShell 獲取 Azure賬戶中的用戶權限分配情況




    

Azure 包含多個可用的內置角色。 下面列出了四個基本的內置角色。 前三個角色適用于所有資源類型。

  • 所有者 - 擁有對所有資源的完全訪問權限,包括將訪問權限委派給其他用戶的權限。

  • 參與者 - 可以創建和管理所有類型的 Azure 資源,但無法將訪問權限授予其他用戶。

  • 讀取者 - 可以查看現有的 Azure 資源。

  • 用戶訪問管理員 - 允許你管理用戶對 Azure 資源的訪問。



    范圍


    范圍是訪問權限適用于的資源集。 分配角色時,可以通過定義范圍來進一步限制允許的操作。 如果你想要將某人分配為網站參與者,但只針對一個資源組執行此分配,則使用范圍就很有幫助。

在 Azure 中,可在多個級別指定范圍:管理組、訂閱、資源組或資源。 范圍采用父子關系結構。

使用PowerShell 獲取 Azure賬戶中的用戶權限分配情況



在父范圍授予訪問權限時,這些權限會繼承到子范圍。 例如:

  • 如果將所有者角色分配給管理組范圍的用戶,則該用戶可以在管理組中管理所有訂閱中的一切內容。

  • 如果在訂閱范圍向某個組分配了讀取者角色,則該組的成員可以查看訂閱中的每個資源組和資源。

  • 如果在資源組范圍向某個應用程序分配了參與者角色,則該應用程序可以管理該資源組中所有類型的資源,但不能管理訂閱中的其他資源組資源。


  角色分配是出于授予訪問權限的目的,將角色定義附加到特定范圍內的用戶、組、服務主體或托管標識的過程。 通過創建角色分配來授予訪問權限,通過刪除角色分配來撤銷訪問權限。 

  下圖顯示了角色分配的示例。 在此示例中,為“營銷”組分配了醫藥銷售資源組的參與者角色。 這意味著,“營銷”組中的用戶可以在醫藥銷售資源組中創建或管理任何 Azure 資源。 “營銷”用戶無權訪問醫藥銷售資源組外部的資源,除非他們屬于另一個角色分配。

使用PowerShell 獲取 Azure賬戶中的用戶權限分配情況


 基本上RBAC的概念已經簡單介紹過了,我們也是通過RBAC的方式進行權限分配的,如果想了解權限分配的情況,可以運行以下的腳本

      

function Write-DateTimeMessage {
    param (
        [parameter(Mandatory = $false)]
        [switch]$Warning,
        [parameter(Mandatory = $true)]
        [string]$Message,
        [parameter(Mandatory = $false)]
        [string]$ForegroundColor
        
    )
    
    
    if ($Warning) {
        Write-Warning ($(Get-Date -UFormat '%Y/%m/%d %H:%M:%S') + " * " + $Message)
    }
    else {
        if ($ForegroundColor) {
            Write-Host ($(Get-Date -UFormat '%Y/%m/%d %H:%M:%S') + " * " + $Message) -ForegroundColor $ForegroundColor
        }
        else {
            Write-Host ($(Get-Date -UFormat '%Y/%m/%d %H:%M:%S') + " * " + $Message)
        }
    }
    
}


[pscustomobject[]]$UserObjects = $null
    
Get-AzureRmADUser | % {
    $User = $_
    Write-DateTimeMessage -Message "Checking User $($User.UserPrincipalName)"
    


    $RoleAssignments = Get-AzureRmRoleAssignment -SignInName $User.UserPrincipalName
        
    if ($null -ne $RoleAssignments) {
            
        $RoleAssignments | % {
            $RoleAssignment = $_
             
            $UserObject = New-Object -TypeName psobject
            $UserObject | Add-Member -MemberType NoteProperty -Name DisplayName -Value $RoleAssignment.DisplayName
            $UserObject | Add-Member -MemberType NoteProperty -Name SignInName -Value $RoleAssignment.SignInName
            $UserObject | Add-Member -MemberType NoteProperty -Name Scope -Value $RoleAssignment.Scope
            $UserObject | Add-Member -MemberType NoteProperty -Name RoleDefinitionName -Value $RoleAssignment.RoleDefinitionName
            $UserObject | Add-Member -MemberType NoteProperty -Name ObjectType -Value $RoleAssignment.ObjectType
            $UserObject | Add-Member -MemberType NoteProperty -Name CanDelegate -Value $RoleAssignment.CanDelegate
            $UserObject | Add-Member -MemberType NoteProperty -Name RoleDefinitionId -Value $RoleAssignment.RoleDefinitionId
            $UserObject | Add-Member -MemberType NoteProperty -Name ObjectId -Value $RoleAssignment.ObjectId
            $UserObjects += $UserObject
            
                
        }
    }else{

        Write-DateTimeMessage "No role assignment for user $($User.DisplayName)" -Warning

    }
        
        
}
    


$OutputPath = Join-Path -Path ([Environment]::GetFolderPath("Desktop")) -ChildPath ("AzureUserPermission-" + $(Get-Date -Format "yyyyMMdd-HHmmss") + ".csv")

if ($null -ne $UserObjects) {
    
    $UserObjects | Export-Csv -NoTypeInformation -LiteralPath $OutputPath
    Write-DateTimeMessage -Message "Please check $OutputPath" -Warning
}
else {
    Write-DateTimeMessage  "Maybe no user in the environment or didn't get information, please check" -warning
}

腳本沒有任何的參數,直接運行即可,運行的效果大概如下

使用PowerShell 獲取 Azure賬戶中的用戶權限分配情況

運行完成后,會在你的桌面生成一個csv文件,里邊會記錄這些信息

使用PowerShell 獲取 Azure賬戶中的用戶權限分配情況


  


    



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

栾城县| 瑞金市| 阿克苏市| 平舆县| 竹溪县| 依兰县| 井陉县| 济阳县| 阜平县| 揭西县| 荃湾区| 古田县| 双流县| 斗六市| 根河市| 克东县| 西昌市| 汽车| 黄骅市| 潜山县| 微山县| 乌审旗| 伊宁县| 页游| 左贡县| 行唐县| 策勒县| 和静县| 兴文县| 贵溪市| 博乐市| 桂林市| 满洲里市| 互助| 龙游县| 镇原县| 永康市| 波密县| 北安市| 靖西县| 班玛县|