该公司正在设计和开发一款新应用。 开发人员需要确保仅使用密钥和托管标识访问存储。 开发人员希望使用基于角色的访问控制。 为了帮助进行测试,需要受保护的不可变存储。

体系结构关系图

包含存储帐户、托管标识和密钥保管库的示意图。

技能任务

  • 创建存储帐户和托管标识。
  • 使用密钥保管库和密钥保护对存储帐户的访问。
  • 将存储帐户配置为使用密钥保管库中的客户管理的密钥
  • 配置基于时间的保留策略和加密范围。

练习说明

创建存储帐户和托管标识

  1. 为 Web 应用提供存储帐户。
    • 在门户中,搜索并选择“存储帐户”。
    • 选择“+ 新建”。
    • 对于“资源组”**,选择“新建”。 为资源组指定一个名称,然后选择“确定”** 以保存更改。
    • 提供存储帐户名称**。 确保名称是唯一的且符合命名要求。
    • 移动到“加密”选项卡**
    • 选中“启用基础结构加密”框**
    • 请注意警告“创建此存储帐户后,无法更改此选项。”**
    • 选择“查看 + 创建” 。
    • 等待资源部署完毕。
  2. 提供托管标识以供 Web 应用使用。 详细了解托管标识

    • 搜索并选择“托管标识”**
    • 选择创建
      • 选择资源组
      • 为托管标识命名。
    • 选择“查看并创建”**,然后选择“创建”**。
  3. 为托管标识分配正确的权限。 标识只需读取和列出容器和 Blob。 详细了解如何分配 Azure 角色

    • 搜索并选择“存储帐户”**
    • 选择“访问控制(IAM)”边栏选项卡。
    • 选择“添加角色分配”**(页面中心)。
    • 在“工作职能角色”** 页上,搜索并选择“存储 Blob 数据读取者”** 角色。
    • 在“成员”** 页上,选择“托管标识”**。
    • 选择“选择成员”**,在“托管标识”** 下拉列表中选择“用户分配的托管标识”**
    • 选择上一步中创建的托管标识。
    • 单击“选择”,然后单击“查看+分配”角色****。
    • 再次选择“查看 + 分配”** 以添加角色分配。
    • 现在,可以通过具有存储数据 Blob 读取者权限的托管标识访问存储帐户。

使用密钥保管库和密钥保护对存储帐户的访问

  1. 要创建实验室中此部分所需的密钥保管库和密钥,用户帐户必须具有密钥保管库管理员权限。 详细了解如何使用 Azure 基于角色的访问控制提供对密钥保管库密钥、证书和机密的访问权限
    • 在门户中,搜索并选择“资源组”。
    • 选择“资源组”**,然后选择“访问控制 (IAM)”** 边栏选项卡。
    • 选择“添加角色分配”**(页面中心)。
    • 在“工作职能角色”** 页上,搜索并选择“密钥保管库管理员”** 角色。
    • 在“成员”** 页上,选择“用户、组或服务主体”**。
    • 选择选择成员
    • 搜索并选择用户帐户。 用户帐户显示在门户的右上角。
    • 单击“选择”**,然后单击“查看 + 分配”**。
    • 再次选择“查看 + 分配”** 以添加角色分配。
    • 你现在可以继续完成实验室了。
  2. 创建密钥保管库来存储访问密钥。

    • 在门户中,搜索并选择“密钥保管库”**
    • 选择创建
    • 选择资源组
    • 提供密钥保管库的名称**。 名称必须唯一。
    • 确保在“访问配置”选项卡上选择了“Azure 基于角色的访问控制(推荐)”。****
    • 选择“查看 + 创建”。
    • 等待验证检查完成,然后选择“创建”**
    • 部署完成后,选择“转到资源”**
    • 在“概述”** 边栏选项卡上,确保“软删除”** 和“清除保护”** 均为“已启用”**。
  3. 在密钥保管库中创建客户管理的密钥。

    • 在“密钥保管库”** 的“对象”** 部分中,选择“密钥”** 边栏选项卡。
    • 选择“生成/导入”** 并命名** 密钥。
    • 对其余参数使用默认值,然后单击“创建”以创建密钥**

将存储帐户配置为使用密钥保管库中的客户管理的密钥

  1. 在完成后续步骤之前,必须将“密钥保管库加密服务加密用户”角色分配给托管标识。 详细了解如何使用系统分配的托管标识来授权访问
    • 在门户中,搜索并选择“资源组”。
    • 选择“资源组”**,然后选择“访问控制 (IAM)”** 边栏选项卡。
    • 选择“添加角色分配”**(页面中心)。
    • 在“工作职能角色”** 页上,搜索并选择“密钥保管库加密服务加密用户”** 角色。
    • 在“成员”** 页上,选择“托管标识”**。
    • 选择“选择成员”**,在“托管标识”** 下拉列表中选择“用户分配的托管标识”**
    • 选择托管标识。
    • 单击“选择”**,然后单击“查看 + 分配”**。
    • 再次选择“查看 + 分配”** 以添加角色分配。
  2. 将存储帐户配置为使用密钥保管库中的客户管理的密钥。 详细了解现有存储帐户上的客户管理的密钥
    • 返回到存储帐户。
    • 在“安全性 + 网络”部分中,选择“加密”边栏选项卡。****
    • 选择“客户管理的密钥”**
    • 选择“密钥保管库和密钥”。 选择“密钥保管库和密钥”。
    • 单击“选择”** 以确认所做选择。
    • 确保“标识类型”** 为“用户分配”**。
    • 选择标识**
    • 选择“托管标识”,然后选择“添加”**
    • 保存所做更改。
    • 如果收到错误消息,指出标识没有正确权限,请稍等片刻后再重试。

配置基于时间的保留策略和加密范围。

  1. 开发人员需要一种存储容器,即使管理员也无法修改其中的文件。 详细了解 Blob 不可变存储

    • 导航到“存储帐户”**
    • 在“数据存储”** 部分中,选择“容器”** 边栏选项卡。
    • 创建名为 hold** 的容器。 采用默认值。 请务必创建** 容器。
    • 将文件上传到容器。
    • 在“设置”** 部分中,选择“访问策略”** 边栏选项卡。
    • 在“不可变 Blob 存储”** 部分中,选择“+ 添加策略”**。
    • 对于“策略类型”,请选择“基于时间的保留期”****。
    • 将保持期设置为 5 天****。
    • 务必保存你的更改。
    • 尝试删除** 容器中的文件。
    • 验证是否收到通知,指出因为策略而导致无法删除 Blob**
  2. 开发人员需要加密范围以启用基础结构加密。 详细了解基础结构加密

    • 导航回你的存储帐户。
    • 在“安全 + 网络”** 边栏选项卡中,选择“加密”**。
    • 在“加密范围”** 选项卡中,选择“添加”**。
    • 为加密范围指定一个名称**
    • “加密类型”** 为“Microsoft 管理的密钥”**。
    • 将“基础结构加密”** 设置为“启用”**。
    • 创建** 加密范围。
    • 返回到存储帐户并新建容器。
    • 请注意,“新建容器”** 页上有“名称”** 和“公共访问级别”**
    • 请注意,在“高级”** 部分中,可以选择创建的“加密范围”** 并将其应用于容器中的所有 Blob。

备注:如需进行额外练习,请完成使用用网络安全组和服务终结点来保护和隔离对 Azure 资源的访问模块。 该模块有一个沙盒,可在其中进一步练习限制对存储的访问。

清理资源

如果使用自己的订阅并且已完成这些实验室,请花点时间删除实验室资源。 这将确保资源得到释放,并将成本降至最低。 删除实验室资源的最简单方法是删除实验室资源组。

  • 在 Azure 门户中,选择资源组,选择“删除资源组”,输入资源组名称,然后单击“删除”****
  • Remove-AzResourceGroup -Name resourceGroupName(使用 Azure PowerShell)。
  • az group delete --name resourceGroupName(使用 CLI)。

使用 Copilot 扩展学习

Copilot 可以协助你完成学习之旅。 Copilot 可以提供基本的技术信息、高级步骤、优点和缺点、故障排除帮助、用例、编码示例等。 要访问 Copilot,请打开 Edge 浏览器,然后选择 Copilot(右上角)。 花几分钟时间尝试这些提示。

  • 什么是 Azure 托管标识以及如何将其用于 Azure 存储?
  • 哪些内置的基于角色的访问控制 (RBAC) 角色可用于管理对 Azure 存储的访问权限。
  • 什么是客户管理的密钥及其如何用于 Azure 存储?

通过自定进度的培训了解详细信息

关键结论

  • Azure 具有适用于 Azure 存储的内置 RBAC 角色。 这些角色包括:存储帐户参与者、存储 Blob 数据所有者和文件数据 SMB 共享参与者。
  • 可以使用自己的加密密钥来保护存储帐户中的数据。 指定客户托管密钥时,该密钥用于保护和控制对数据加密密钥的访问。
  • 不可变存储可确保在用户指定的时间间隔内无法修改或删除数据。 有两种类型的不可变策略:基于时间和法定保留。
  • 可以为整个存储帐户或帐户内的加密范围启用基础结构加密。 对于需要对数据进行双重加密以满足合规性要求的场景,建议使用基础结构加密。