Az - Basic Information

支持 HackTricks

组织层次结构

管理组

如果您的组织有许多 Azure 订阅,您可能需要一种有效的方式来管理访问、策略和合规性。管理组提供了一个高于订阅的治理范围

请注意,单个目录中可以支持10,000 个管理组,管理组树可以支持最多六级深度

来自文档: 每个目录都有一个顶级管理组,称为根管理组。根管理组内置于层次结构中,所有管理组和订阅都归属于它。这个根管理组允许在目录级别应用全局策略和 Azure 角色分配Azure AD 全局管理员需要将自己提升为此根组的用户访问管理员角色。提升访问权限后,管理员可以将任何 Azure 角色分配给其他目录用户或组以管理层次结构。作为管理员,您可以将自己的帐户分配为根管理组的所有者

根管理组不能移动或删除,与其他管理组不同。

无论您拥有何种类型的订阅,管理组都为您提供企业级的管理能力。然而,单个管理组内的所有订阅必须信任相同的 Azure Active Directory (Azure AD) 租户

Azure 订阅

在 Azure 中,订阅作为逻辑容器,用于配置业务或技术资源。此容器维护资源的详细信息,如虚拟机 (VM)、数据库等。在创建 Azure 资源(如 VM)时,指定与其关联的订阅。这种结构便于使用基于角色的访问控制机制进行访问委派。

资源组

来自文档: 资源组是一个容器,用于存放与 Azure 解决方案相关的资源。资源组可以包含解决方案的所有资源,或仅包含您希望作为组管理的资源。通常,将共享相同生命周期资源添加到同一资源组中,以便您可以轻松地作为一个组进行部署、更新和删除。

所有资源必须在资源组内,并且只能属于一个组,如果删除资源组,组内的所有资源也会被删除。

管理单元

来自文档: 管理单元允许您将组织细分任何您想要的单位,然后分配特定的管理员,这些管理员只能管理该单位的成员。例如,您可以使用管理单元将权限委派给大型大学中每个学院的管理员,以便他们只能在工程学院内控制访问、管理用户和设置策略。

只有用户设备可以成为管理单元的成员

因此,管理单元包含一些成员,其他主体将被分配权限,以便他们可以管理管理单元的成员

Azure vs Azure AD vs Azure AD Domain Services

需要注意的是,Azure ADAzure 内的一个服务。Azure 是微软的云平台,而 Azure AD 是 Azure 中的企业身份服务。 此外,Azure AD 不像 Windows Active Directory,它是一种完全不同的身份服务。如果您想在 Azure 中运行 Windows Active Directory 环境的域控制器,您需要使用 Azure AD Domain Services

主体

Azure 支持不同类型的主体:

  • 用户:一个拥有访问凭证的普通

  • :一个一起管理的主体组授予组的权限由其成员继承

  • 服务主体/企业应用程序:这是为应用程序、托管服务和自动化工具访问 Azure 资源而创建的身份。此访问受分配给服务主体的角色限制,使您可以控制可以访问哪些资源以及在何种级别。出于安全原因,始终建议使用服务主体与自动化工具,而不是允许它们使用用户身份登录。

创建服务主体时,您可以选择密码认证证书认证

  • 如果选择密码认证(默认),请保存生成的密码,因为您将无法再次访问它。

  • 如果选择证书认证,请确保应用程序将能够访问私钥

  • 托管身份(元数据凭证):Azure Active Directory 中的托管身份提供了一种自动管理应用程序身份的解决方案。这些身份由应用程序用于连接兼容 Azure Active Directory(Azure AD)认证的资源。通过使用托管身份,应用程序可以安全地获取 Azure AD 令牌,而无需直接处理凭证。有两种类型的托管身份:

  • 系统分配。某些 Azure 服务允许您直接在服务实例上启用托管身份。启用系统分配的托管身份时,会在 Azure AD 中创建一个身份。该身份与服务实例的生命周期相关联。当资源删除时,Azure 会自动删除身份。根据设计,只有该 Azure 资源可以使用此身份从 Azure AD 请求令牌。

  • 用户分配。您还可以创建一个独立的 Azure 资源作为托管身份。您可以创建用户分配的托管身份并将其分配给一个或多个 Azure 服务实例(多个资源)。对于用户分配的托管身份,身份与使用它的资源分开管理

角色和权限

角色分配主体在一个范围内:principal -[HAS ROLE]->(scope)

分配给组的角色由组的所有成员继承

根据角色分配的范围,角色可以继承范围容器内的其他资源。例如,如果用户 A 在订阅上有一个角色,他将在订阅内的所有资源组资源组内的所有资源上拥有该角色

经典角色

所有者

  • 对所有资源的完全访问权限

  • 可以管理其他用户的访问权限

所有资源类型

贡献者

  • 对所有资源的完全访问权限

  • 不能管理访问权限

所有资源类型

读者

• 查看所有资源

所有资源类型

用户访问管理员

  • 查看所有资源

  • 可以管理其他用户的访问权限

所有资源类型

内置角色

来自文档: Azure 基于角色的访问控制 (Azure RBAC) 有几个 Azure 内置角色,您可以分配用户、组、服务主体和托管身份。角色分配是您控制访问 Azure 资源的方式。如果内置角色不能满足您组织的特定需求,您可以创建自己的 Azure 自定义角色

内置角色仅适用于它们针对的资源,例如,查看这两个关于计算资源内置角色示例:

提供备份保管库执行磁盘备份的权限

3e5e47e6-65f7-47ef-90b5-e5dd4d455f24

在门户中查看虚拟机并以普通用户身份登录

fb879df8-f326-4884-b1cf-06f3ad86be52

这些角色也可以分配给逻辑容器(如管理组、订阅和资源组),受影响的主体将在这些容器内的资源上拥有这些角色

自定义角色

Azure 还允许创建 自定义角色 以满足用户的权限需求。

权限被拒绝

  • 为了让主体对资源有某些访问权限,他需要明确授予的角色(以任何方式)授予他该权限

  • 明确的拒绝角色分配优先于授予权限的角色

全局管理员

具有全局管理员角色的用户有能力提升到根管理组的用户访问管理员 Azure 角色。这意味着全局管理员将能够管理所有 Azure 订阅和管理组的访问权限。 此提升可以在页面底部完成:https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Properties

Azure 策略

Azure 策略是 Microsoft Azure 中的一组规则和规定,这是一种云计算服务,帮助管理和执行组织标准并评估大规模合规性。这些策略对您的Azure 资源实施不同的规则,确保这些资源符合公司标准和服务级别协议。

Azure 策略对于云治理和安全至关重要,有助于确保资源的正确和高效使用,并符合外部法规和内部政策。 一些示例:

  1. 确保符合特定 Azure 区域的合规性:此策略确保所有资源部署在特定的 Azure 区域。例如,公司可能希望确保其所有数据都存储在欧洲以符合 GDPR。

  2. 强制命名标准:策略可以强制执行 Azure 资源的命名约定。这有助于在大型环境中根据名称组织和轻松识别资源。

  3. 限制某些资源类型:此策略可以限制创建某些类型的资源。例如,可以设置策略以防止创建昂贵的资源类型,如某些 VM 大小,以控制成本。

  4. 强制标签策略:标签是与 Azure 资源关联的键值对,用于资源管理。策略可以强制所有资源必须存在某些标签或具有特定值。这对于成本跟踪、所有权或资源分类非常有用。

  5. 限制资源的公共访问:策略可以强制某些资源(如存储帐户或数据库)没有公共端点,确保它们只能在组织的网络内访问。

  6. 自动应用安全设置:策略可以用于自动将安全设置应用于资源,例如将特定的网络安全组应用于所有 VM 或确保所有存储帐户使用加密。

请注意,Azure 策略可以附加到 Azure 层次结构的任何级别,但它们通常用于根管理组或其他管理组。

权限范围

在 Azure 中,权限可以分配给层次结构的任何部分。这包括管理组、订阅、资源组和单个资源。权限由分配它们的实体的包含资源继承。

这种层次结构允许高效和可扩展的访问权限管理。

Azure RBAC vs ABAC

RBAC(基于角色的访问控制)是我们在前几节中已经看到的:为主体分配角色以授予他对资源的访问权限。 然而,在某些情况下,您可能希望提供更细粒度的访问管理简化数百个角色分配的管理。

Azure ABAC(基于属性的访问控制)在 Azure RBAC 的基础上增加了基于属性的角色分配条件,用于特定操作的上下文中。角色分配条件 是您可以选择性地添加到角色分配中的额外检查,以提供更细粒度的访问控制。条件过滤角色定义和角色分配中授予的权限。例如,您可以添加一个条件,要求对象具有特定标签才能读取对象。 您不能使用条件明确拒绝对特定资源的访问

默认用户权限

基本用户将拥有一些默认权限来枚举 AzureAD 的某些部分:

  • 读取所有用户、组、应用程序、设备、角色、订阅及其公共属性

  • 邀请访客(可以关闭

  • 创建安全组

  • 读取非隐藏的组成员资格

  • 将访客添加到拥有的组

  • 创建新应用程序(可以关闭

  • 将最多 50 个设备添加到 Azure(可以关闭

您可以在文档中查看 用户默认权限的完整列表。此外,请注意,在该列表中,您还可以看到访客默认权限列表

请记住,要枚举 Azure 资源,用户需要明确授予该权限。

特权身份管理 (PIM)

Azure 中的特权身份管理 (PIM) 是一种管理、控制和监控特权访问的工具。它通过提供按需和时间限制的特权访问强制审批工作流和要求额外认证来增强安全性。这种方法通过确保仅在必要时和特定时间段内授予提升的权限,最大限度地减少了未经授权访问的风险。

认证令牌

在 OIDC 中有三种类型的令牌

  • 访问令牌: 客户端向资源服务器出示此令牌以访问资源。它只能用于特定的用户、客户端和资源组合,在到期之前无法撤销——默认情况下为 1 小时。检测率低。

  • ID 令牌:客户端从授权服务器接收此令牌。它包含有关用户的基本信息。它绑定到特定的用户和客户端组合

  • 刷新令牌:与访问令牌一起提供给客户端。用于获取新的访问和 ID 令牌。它绑定到特定的用户和客户端组合,可以被撤销。默认到期时间为90 天(对于不活跃的刷新令牌)和无到期时间(对于活跃的令牌)。

**条件访问**信息**存储**在**JWT**中。因此,如果您从允许的 IP 地址请求**令牌**,该

Last updated