azure - Azure Policy 不拒绝创建自定义角色
问题描述
我目前正在帮助调查在我的组织的公共云中采用 Azure。我被分配的任务之一是锁定帐户以防止用户在订阅中提升他们的权限。
我特别感兴趣的一件事是拒绝创建自定义角色,因为我们不希望人们去开始创建自己的角色,直到安全审查了对角色的需求。
我一直在尝试通过具有以下定义的 Azure 策略来做到这一点
{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Authorization/roleDefinitions"
},
{
"field": "Microsoft.Authorization/roleDefinitions/type",
"equals": "CustomRole"
}
]
},
"then": {
"effect": "Deny"
}
}
实际上只是复制了内置的“审核自定义角色”策略并将效果从“审核”更改为“拒绝”
但是,我已将此策略应用于包含我正在测试的订阅的管理组,但是当我登录 CLI 并尝试创建新的自定义角色时,它会继续创建角色。
我已确保订阅中存在该策略,并且我已确认我在 CLI 中的订阅正确(使用az account show
),但我仍然可以创建自定义角色。
这只是 Azure 不支持的东西,还是我还缺少其他东西?任何帮助或指导将不胜感激,因为 Microsoft 文档和在线提供的众多示例似乎没有任何关于使用策略控制角色的信息。
PS 我知道您可以通过策略在一定程度上控制角色,因为我们有另一个策略可以防止分配特定角色集的发生并且确实有效。
解决方案
看起来 Azure CLI 在不填充“类型”字段的情况下创建了角色定义。以下策略将处理此问题:
{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Authorization/roleDefinitions"
},
{
"anyOf": [
{
"field": "Microsoft.Authorization/roleDefinitions/type",
"equals": "CustomRole"
},
{
"field": "Microsoft.Authorization/roleDefinitions/type",
"exists": "false"
}
]
}
]
},
"then": {
"effect": "Deny"
}
}
推荐阅读
- graphql - 如何将 apollo 客户端 fetchMore updateQuery 转换为 apollo 缓存合并功能?
- php -
- excel - “数据透视表字段名称无效。要创建数据透视表,您必须使用组织为带有标签列的列表的数据”错误
- julia - 如何在 julia 中使用 Juniper.register?
- phpunit - phpunit 在测试失败时运行函数
- sql - 为 mariadb 查询获取正确的 REGEX 表达式
- java - 未使用迁移查询的默认值创建 JPA 实体
- gnuplot - 如何使用gnuplot在pm3d地图上添加二维曲线而不是单调数据
- python - 如何在每个嵌套列表中更新为不同的值
- docker - 如何在启动容器时将 docker IP 地址添加到容器中?