📜  Azure存储安全性

📅  最后修改于: 2021-01-07 04:27:20             🧑  作者: Mango

Azure存储安全

Azure存储安全分为五个主要领域。

管理平面安全

管理平面是指影响存储帐户本身的操作。我们控制对影响存储帐户的服务的访问的方法是使用Azure活动目录。

基于角色的访问控制

  • 我们知道,每个Azure订阅都有一个关联的Azure活动目录。 Azure活动目录包含用户,组和应用程序。对于他们,我们可以提供访问权限来管理Azure订阅中的资源。该资源可以是一个存储帐户,而我们控制对存储帐户的访问级别的方法是通过为用户分配适当的角色。因此,我们可以具有可以定义的所有者角色或参与者角色或读者角色。

要记住的要点:

  • 分配角色时,我们可以控制对用于管理存储帐户的操作的访问,但不能控制对该帐户中数据对象的访问。
  • 但是,我们可以通过提供读取存储帐户密钥的权限来授予对数据对象的访问权限,因为存储帐户密钥使用户可以访问数据对象。
  • 每个角色都有一个动作列表。
  • 有一些可用的标准角色,例如所有者,读者,贡献者等。
  • 我们可以通过从可用操作列表中选择一组操作来定义新的自定义角色。

数据平面安全

它是指用于保护存储帐户中的数据对象(blob,队列,表和文件)的方法。

您可以通过三种方式控制对存储帐户中数据的访问

  • Azure活动目录授权对容器和队列的访问。与其他授权方法相比,Azure Active Directory具有优势,包括无需在代码中存储机密。
  • 存储帐户密钥提供对存储帐户内所有数据对象的全面访问。
  • 共享访问签名,以防万一,如果我们要提供对某些服务的访问权限,例如-仅访问blob,仅访问队列或它们的组合。另外,如果我们要控制访问级别,例如,只读,更新,删除等方式,还希望提供限时访问。因此,我们只希望提供一年的访问权限,然后在一年之后,出于安全原因,我们将生成另一个SAS并将其提供给他们。在这种情况下,我们使用共享访问签名。

我们可以通过相应地设置保存blob的容器的访问级别来允许公共访问blob。

传输中的加密

使用HTTPS的传输级别加密

  • 使用REST API或访问存储中的对象时,请始终使用HTTPS。
  • 如果使用的是SAS,则可以指定仅应用HTTPS。

在传输中对Azure文件共享使用加密

  • 1不支持加密,因此仅允许在同一区域内进行连接。
  • 0支持加密,并且允许跨区域访问。

客户端加密

  • 在将数据传输到Azure存储之前对其进行加密
  • 当从Azure检索数据时,在客户端接收到数据后,数据将被解密。

静态加密

客户端加密

  • 在将数据传输到Azure存储之前对其进行加密。
  • 当从Azure检索数据时,在客户端接收到数据后,数据将被解密。

存储服务加密(SSE)

这就是我们通常用于在REST上加密数据的Azure存储

  • 已为所有存储帐户启用该功能,不能禁用它。
  • 它会自动加密所有性能层(标准和高级),所有部署模型(Azure Resource Manager和Classic)以及所有Azure存储服务(Blob,队列,表和文件)中的数据。因此,它是跨所有Azure存储的全面加密。
  • 我们可以使用Microsoft管理的密钥或您的自定义密钥来加密数据。

Azure磁盘加密

这是Microsoft推荐的方法,尤其是使用Azure磁盘对磁盘进行加密

  • 加密IaaS虚拟机使用的OS和数据磁盘
  • 您可以在现有的IaaS VM上启用加密
  • 您可以使用客户提供的加密密钥

CORS(跨源资源共享)

  • 当Web浏览器发出来自不同域的资源的HTTP请求时,这称为跨域HTTP请求。
  • Azure存储使我们能够启用CORS。对于每个存储帐户,我们可以指定可以访问该存储帐户中资源的域。例如,在mystorage.blob.core.windows.net存储帐户上启用CORS,并将其配置为允许访问mywebsite.com。
  • CORS允许访问,但不提供身份验证,这意味着我们仍然需要使用SAS密钥来访问非公共存储资源。
  • 默认情况下,所有服务均禁用CORS。我们可以使用Azure门户或Power Shell启用它,并且可以指定请求来自其访问存储帐户中数据的域。