【问题标题】:Restrict azure role assignment only to group by azure policy将 azure 角色分配限制为仅按 azure policy 分组
【发布时间】:2022-12-16 16:26:33
【问题描述】:

我想制定一项 azure 政策来限制用户直接访问 azure 资源。管理员应该授予对安全组的访问权限,而不是单个用户。

"policyRule": {
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.Authorization/roleAssignments"
      },
      {
        "field": "Microsoft.Authorization/roleAssignments/principalType",
        "equals": "User"
      }
    ]
  },
  "then": {
    "effect": "audit"
  }
}

我创建了这个策略规则并分配给了一个特定的订阅。但什么也没发生。没有检查资源。此订阅分配了 5 种不同的角色分配。

【问题讨论】:

    标签: azure azure-active-directory azure-policy


    【解决方案1】:

    我在下面的 json 格式中创建了一个 Azure Policy 定义:-

    { 
    
      "properties": { 
    
        "displayName": "Allow azure ad role assignments only to groups and not user level", 
    
        "policyType": "Custom", 
    
        "mode": "All", 
    
        "description": "This policy will allow admins to only assign role assignment at group level and not user level", 
    
        "metadata": { 
    
          "category": "Azure Active Directory", 
    
          "createdBy": "a5487xxxxxxx9a7", 
    
          "createdOn": "2022-12-15T15:14:30.5246747Z", 
    
          "updatedBy": "xx487xxxxxa9a7", 
    
          "updatedOn": "2022-12-15T15:39:26.9459792Z" 
    
        }, 
    
        "parameters": {},    
    
        "policyRule": { 
    
          "if": { 
    
            "allOf": [ 
    
              { 
    
                "field": "type", 
    
                "equals": "Microsoft.Authorization/roleAssignments" 
    
              }, 
    
              { 
    
                "anyOf": [ 
    
                  { 
    
                    "field": "Microsoft.Authorization/roleAssignments/principalType", 
    
                    "equals": "User" 
    
                  } 
    
                ] 
    
              }, 
    
              { 
    
                "anyOf": [ 
    
                  { 
    
                    "not": { 
    
                      "field": "Microsoft.Authorization/roleAssignments/principalType", 
    
                      "equals": "Group" 
    
                    } 
    
                  }, 
    
                  { 
    
     
    
                    "not": { 
    
                      "field": "Microsoft.Authorization/roleAssignments/createdBy", 
    
                      "in": [ 
    
                        "a548xxxxca2fa9a7" 
    
                      ] 
    
                    } 
    
                  } 
    
                ] 
    
              } 
    
            ] 
    
          }, 
    
          "then": { 
    
            "effect": "deny" 
    
          } 
    
        } 
    
      }, 
    
      "id": "/subscriptions/0151xxxe2b6xxxa7/providers/Microsoft.Authorization/policyDefinitions/1xxx1c", 
    
      "type": "Microsoft.Authorization/policyDefinitions", 
    
      "name": "18dxxx1c", 
    
      "systemData": { 
    
        "createdBy": "sidxxi@outlook.com", 
    
        "createdByType": "User", 
    
        "createdAt": "2022-12-15T15:14:30.4550288Z", 
    
        "lastModifiedBy": "sidxxdesai@outlook.com", 
    
        "lastModifiedByType": "User", 
    
        "lastModifiedAt": "2022-12-15T15:39:26.9052179Z" 
    
      } 
    

    现在,我在天蓝色的订阅级别分配此策略。

    当我尝试在订阅级别添加 UserB 贡献者角色时分配此策略后,我无法分配该策略,因为它被拒绝了:-

    现在,管理员无法为任何用户分配任何 Azure RBAC 角色分配。因此,用户无权访问 Azure 中的任何资源。

    现在,我尝试将 Azure Policy 添加到 azure 组,并且该组成功分配了贡献者角色,请参阅此处:

    角色已成功分配给 DnsUpdateProxy 组

    笔记:

    但是这个政策在天蓝色的广告角色级别不起作用,当我试图 使用我的全局分配 Azure AD 应用程序管理员角色 administrator 帐户给 UserB,角色分配成功,如果 您在组级别分配此角色组内的用户将 拥有通过继承分配给他们的所有角色,

    笔记-

    1. 用于为用户提供资源访问权限的 Azure RBAC 角色不同于用于执行 azure AD、Microsoft 365、Intune、交换身份等相关任务的 Azure AD 角色。
    2. 此外,Azure 策略应用于订阅、管理组、资源组或资源级别。而且它们不能显式应用于 Azure AD 对象。用户、组、设备、应用程序,这些都是 Azure AD 对象。

      另请注意-

      默认情况下,当您创建新用户或邀请新用户时 Azure AD 租户用户没有分配任何 Azure Ad 角色 除非全局管理员将角色分配给该用户。

      只有 具有全局管理员角色的用户可以将 Azure AD 角色分配给其他用户 用户或组。用户自己不能分配任何角色。还, 无法将 Azure AD 角色仅分配给 Azure 安全组 而不是给用户。

      如上所述,使用 RBAC 是可能的,但使用 Azure 则不行 作为全局管理员角色的 AD 角色具有对 Azure 租户中的所有功能和服务,您不能限制 全局管理员在 Azure AD 中执行任何任务。

      目前, azure 没有限制全局管理员申请的功能 仅在安全组级别而不是用户级别的角色。还, 目前还没有 Azure 政策来限制这一点。作为解决方法,您可以 有 1 个分配有全局管理员角色的用户可以创建所有 您的用户和组的角色。全球以外的其他用户 管理员角色无法向用户添加分配。

      我已将用户管理员角色添加到 UserB,但 UserB 仍无法执行添加分配任务,因为它显示为灰色并且仅支持全局管理员角色,请参考以下内容:-

      这适用于除具有全局管理员角色的用户之外的所有用户。我可以使用我的全局管理员帐户添加作业,参考以下:-

      Thus, You can have just one global administrator and other users won’t have access to any Azure AD feature unless your global administrator assigns them Azure Ad roles.

      参考 :

      1. https://learn.microsoft.com/en-us/answers/questions/857740/azure-arm-policy-to-deny-role-assignments-only-for.html
      2. Azure Policy to restrict role based access control(IAM) to users at Resource group level in Azure

    【讨论】:

      猜你喜欢
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 2021-11-08
      • 2020-04-03
      • 2020-09-21
      相关资源
      最近更新 更多