首页 > 解决方案 > Azure 拒绝分配以阻止对 Azure Blob 存储的读取访问

问题描述

有没有办法使用 azure 蓝图在管理组级别创建拒绝分配,以防止所有者和参与者角色读取 blob 存储内容。在我的具体情况下,我想存储 terraform 状态并且只想授予服务原则读/写访问权限。所有者和贡献者应该只能管理存储。这是否可以通过蓝图或其他方式实现?如果是的话,由于我缺乏信息,您是否有一些资源,谢谢。

标签: azureazure-blob-storageazure-rbacazure-blueprints

解决方案


借助 Azure AD,我们可以借助基于角色的访问控制来配置访问权限,我们可以在其中设置访问blob 数据的权限。

Azure 角色分配给安全主体,然后将使用它访问资源。Azure AD 安全主体可以是用户、组、应用程序服务主体或 Azure 资源的托管标识。

下面是我们如何使用 CLI 进行操作:

az role assignment create \
    --role "Storage Blob Data Contributor" \
    --assignee <email> \
    --scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container>"

现在来拒绝访问,我们可以限制对用户或安全主体的资源访问。

除了这些,我们还有一些锁定模式和状态,我们可以在其中设置对资源组的只读访问权限,它们不能出错或删除。

以下是我们如何使用资源锁定从拒绝分配中排除操作:

"locks": {
    "mode": "AllResourcesDoNotDelete",
    "excludedPrincipals": [
        "7be2f100-3af5-4c15-bcb7-27ee43784a1f",
        "38833b56-194d-420b-90ce-cff578296714"
    ],
    "excludedActions": [
        "Microsoft.ContainerRegistry/registries/push/write",
        "Microsoft.Authorization/*/read"
    ]
},

推荐阅读