部署和管理Azure治理方案
创建和管理包含管理组,订阅和资源组的继承结构
Azure管理组
如果你的组织有多个订阅,则可能需要一种方法来高效地管理这些订阅的访问权限、策略和符合性。Azure管理组提供订阅上的作用域级别。可将订阅组织到名为“管理组”的容器中,并将管理条件应用到管理组。管理组中的所有订阅都将自动继承应用于管理组的条件。不管使用什么类型的订阅,管理组都能提供大规模的企业级管理。单个管理组中的所有订阅都必须信任同一个Azure Active Directory租户。
Azure基于角色的访问控制(Azure RBAC)
如果你的组织有多个订阅,则可能需要一种方法来高效地管理这些订阅的访问权限、策略和符合性。Azure管理组提供订阅上的作用域级别。可将订阅组织到名为“管理组"的容器中,并将管理条件应用到管理组。管理组中的所有订阅都将自动继承应用于管理组的条件。不管使用什么类型的订阅,管理组都能提供大规模的企业级管理。单个管理组中的所有订阅都必须信任同一个Azure Active Directory租户。
角色的定义和作用域
角色定义是权限的集合。它有时简称为"角色"。角色定义列出可以执行的操作,例如读取、写入和删除。它还可以列出允许操作之外的操作,或者与基础数据相关的操作。
作用域是指access适用的资源集。分配角色时,请务必了解作用域,以便能够仅授予安全主体真正需要的访问权限。通过限制作用域,如果安全主体泄露,则限制有风险的资源。
在用户这里进行角色分配,通过赋予角色来访问资源
内置角色
官网
https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles
General
角色 | 权限范围 |
---|---|
Contributor | 授予管理所有资源的完全访问权限,但不允许在 Azure RBAC 中分配角色、在 Azure 蓝图中管理分配或共享映像库。 |
Owner | 授予管理所有资源的完全访问权限,包括在 Azure RBAC 中分配角色的能力。 |
Reader | 查看所有资源,但不允许您进行任何更改 |
User Access Administrator | 用于管理用户对 Azure 资源的访问权限。 |
Compute
角色 | 权限范围 |
---|---|
Classic Virtual Machine Contributor | 允许你管理经典虚拟机,但不能访问它们,也不允许访问它们连接到的虚拟网络或存储帐户。 |
Virtual Machine Administrator Login | 在门户中查看虚拟机并以管理员身份登录 |
Virtual Machine Contributor | 创建和管理虚拟机、管理磁盘、安装和运行软件、使用 VM 扩展重置虚拟机 root 用户的密码,以及使用 VM 扩展管理本地用户帐户。此角色不会授予对虚拟机连接到的虚拟网络或存储帐户的管理访问权限。此角色不允许在 Azure RBAC 中分配角色。 |
Virtual Machine User Login | 在门户中查看虚拟机并以普通用户身份登录。 |
Networking
角色 | 权限范围 |
---|---|
Classic Network Contributor | 允许您管理经典网络,但不能访问它们。 |
Network Contributor | 允许您管理网络,但不能访问网络。 |
Identity
角色 | 权限范围 |
---|---|
Managed Identity Contributor | 创建、读取、更新和删除用户分配的标识 |
Managed Identity Operator | 读取和分配用户分配的标识 |
Security
角色 | 权限范围 |
---|---|
Security Admin | 查看和更新安全中心的权限。与安全读取者角色具有相同的权限,还可以更新安全策略并消除警报和建议。 |
Security Assessment Contributor | 允许将评估推送到安全中心 |
Security Manager (Legacy) | 这是一个遗留角色。请改用安全管理员。 |
Security Reader | 查看安全中心的权限。可以查看建议、警报、安全策略和安全状态,但不能进行更改。 |
创建一个自定义RBAC角色
如果Azure内置角色不满足组织的特定需求,你可以创建自己的自定义角色。与内置角色一样,可将自定义角色分配到管理组、订阅和资源组范围内的用户、组与服务主体。自定义角色可在信任同一Azure AD目录的订阅之间共享。每个目录都有5,000个自定义角色的限制。
可以使用Azure门户、Azure PowerShell、Azure CLI或 REST API创建自定义角色。需要Azure AD Premium P1或P2订阅
创建自定义角色的步骤
- 确定所需的权限
- 确定要如何创建自定义角色:您可以使用Azure 门户、 Azure PowerShell、 Azure CLI或 REST API创建自定义角色
- 创建自定义角色
- 创建自定义角色
以 JSON 格式显示的自定义角色
一般修改下列两项,自定义角色:真 可分配范围:内容
“IsCustom”: true
“AssignableScopes”
此自定义角色可用于监视和重新启动虚拟机
{
"Name": "Virtual Machine Operator",
"Id": "88888888-8888-8888-8888-888888888888",
"IsCustom": true,
"Description": "Can monitor and restart virtual machines.",
"Actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/{subscriptionId1}",
"/subscriptions/{subscriptionId2}",
"/providers/Microsoft.Management/managementGroups/{groupId1}"
]
}
解读实际权限
Azure AD访问评审
访问评审包含组和应用
Azure Active Directory (Azure AD)访问评审可以使组织有效地管理组成员身份、对企业应用程序的访问权限,以及角色分配。可以定期评审用户的访问权限,确保相应人员持续拥有访问权限。
使用此功能需要Azure AD Premium P2许可证。目录需要的Azure ADPremium P2许可证至少与要执行以下任务的员工数相同:
- 指定为审阅者的成员和来宾用户
- 执行自我评审的成员和来宾用户
- 执行访问评审的组所有者
- 执行访问评审的应用程序所有者
具有全局管理员或用户管理员角色的用户不需要Azure AD Premium P2许可证,这些用户可设置访问评审、配置设置或根据评审作出决策。
创建访问评审
收到邮件
审批
部署和配置一个Azure Policy策略
Azure Policy策略
https://learn.microsoft.com/en-us/azure/governance/policy/overview
类似Windows 组策略
形成业务规则后,策略定义或计划将分配给 Azure 支持的任何资源范围,例如管理组、订阅、资源组或单个资源
定制一些策略,检测虚拟机等,如果不符合规则自动做出修正
Azure Policy 是 Azure 工具箱中的强大工具。 它允许您强制执行您希望在您的环境中实现的特定治理主体。 Azure Policy 允许您执行的操作是:
- 自动标记资源
- 阻止虚拟机拥有公共 IP
- 强制执行特定区域
- 强制执行 VM 大小
Azure Policy可帮助实施组织标准并大规模评估合规性。Azure Policy通过其合规性仪表板提供一个聚合视图来评估环境的整体状态,并允许用户按资源、按策略粒度向下钻取。它还通过对现有资源的批量修正以及对新资源的自动修正,帮助资源符合规范。
Azure Policy通过将Azure中资源的属性与业务规则进行比较,来评估这些资源。以ISON格式描述的这些业务规则称为策略定义。为了简化管理,可以组合多个业务规则来构成一个策略计划(有时称为"策略集’”)。构成业务规则后,策略定义或计划将分配到Azure支持的任何资源范围,例如管理组、订阅、资源组或单个资源。分配应用于该分配的资源管理器作用域内的所有资源。必要时可以排除子范围。有关详细信息,请参阅Azure Policy中的作用域。
Azure Policy使用JSON格式构成评估机制用来确定某个资源是否合规的逻辑。定义包括元数据和策略规则。定义的规则可以使用与所需方案完全匹配的函数、参数、逻辑运算符、条件和属性别名。策略规则确定要评估分配范围内的哪些资源。
-
定制一些策略
-
修正,部署 deployfNotExists
-
执行结果
部署和配置一个Azure Blueprint蓝图
Azure Blueprint蓝图
https://learn.microsoft.com/en-us/azure/governance/blueprints/overview
任务的列表
通过Azure蓝图,云架构师和中心信息技术组同样可以定义一组可重复的Azure资源,这些资源实现并遵守组织的标准、模式和要求。通过Azure蓝图,开发团队可以快速生成和构建新环境,并确信这些生成的环境符合组织规定,还可以使用一组有助于加快开发和交付过程的内置组件(如网络)。
蓝图是一种声明性方法,用于协调各个资源模板和其他项目的部署,例如;
- 角色分配
- 策略分配
- Azure资源管理器模板(ARM模板)
- 资源组
Azure蓝图服务由全球分布的Azure Cosmos DB提供支持。蓝图对象将复制到多个Azure区域。无论Aure蓝图将资源部署到哪个区域,此复制提供的对蓝图对象的访问都具有低延迟、高可用性和一致性。
-
与ARM模板的不同之处:
-
蓝图有个锁定功能,锁定后创建的资源不可删除
此服务旨在帮助进行环境设置。此设置通常包括一组资源组、策略、角色分配和ARM模板部署。蓝图是将每个项目类型组合在一起的包,通过蓝图可编写和版本化该包(包括通过CI/CD管道)。最终可在一个可审计和跟踪的操作中将每个蓝图分配给订阅。
几乎所有要包含在Aure蓝图中部署的内容都可以使用ARM模板完成。但是,ARM模板是Aure中不以本机方式存在的文档-每个模板均存储在本地或源代码管理中。该模板用于部署一个或多个Azure资源,但部署了这些资源后,资源与模板之间就不再存在有效的连接或关系。
使用Aure蓝图,蓝图定义(应该部署的对象)和蓝图分配(已部署的对象)之间的关系仍然存在。此连接支持改进部署的跟踪和审核。Azure蓝图也能一次性升级由同一蓝图管理的多个订阅。无需在ARM模板和蓝图之间进行选择。每个蓝图都可以包含零个或多个ARM模板项目。此支持意味着可以在Azure蓝图中重复使用以前开发和维护ARM模板库的工作成果。 -
与Azure Policy的不同之处:
蓝图是一个包或容器,用于组合与Azure云服务、安全性和设计的实现相关的一组针对目标的标准、模式和要求,这些标准、模式和要求可以重复使用以确保一致性和符合性。
策略是默认允许和显式拒绝系统,侧重于部署期间的资源属性,用于现有资源。它会验证订阅中的资源是否符合要求和标准,以此为云治理提供支持。如果在蓝图中包含策略,则可以在分配蓝图期间创建适当的模式或设计。包含策略可确保只对环境进行批准或预期的更改,以确保持续符合蓝图意向。策略可作为众多项目中的一项包含在蓝图定义中。蓝图还支持在策略和计划中使用参数。 -
创建蓝图
-
定义蓝图作用,可创建多个项目
-
1:创建资源组
-
2:角色分配
-
发布蓝图
-
分配蓝图
锁定分配
- 不锁定:分配完成后,和蓝图就没有任何关联了,删除资源和蓝图没有关系
- 请勿删除:能对资源修改,但是不能删除,蓝图拒绝删除
- 只读:创建好资源后只能看,不能修改
蓝图定义位置Blueprint definition locations
创建蓝图定义时,您将定义蓝图的保存位置。可以将蓝图保存到您具有参与者访问权限的管理组或订阅中。如果位置是管理组,则可以将蓝图分配给该管理组的任何子订阅
蓝图分配Blueprint assignment
可以将蓝图的每个已发布版本(最大名称长度为 90 个字符)分配给现有管理组或订阅。在门户中,蓝图将版本默认为最近发布的版本。如果有项目参数或蓝图参数,则在分配过程中定义这些参数。