Compartir a través de

使用 IP 允许列表限制对 DRM 许可证和 AES 密钥传递的访问

Media Services logo v3


警告

Azure 媒体服务将于 2024 年 6 月 30 日停用。 有关详细信息,请参阅 AMS 停用指南

当使用媒体服务的内容保护和 DRM 功能保护媒体时,你可能会遇到这样的情形:需要将许可证或密钥请求的交付限制为网络上客户端设备的特定 IP 范围。 若要限制内容播放和密钥传递,可以使用 IP 允许列表进行密钥传递。

此外,还可以使用允许列表完全阻止对密钥传递流量的所有公共 Internet 访问,而只允许来自专用网络终结点的流量。

密钥传递的 IP 允许列表限制在提供的 IP 允许列表范围内将 DRM 许可证和 AES-128 密钥传递到客户端。

媒体服务支持使用 IPv6 进行流式处理。 客户端可以通过 IPv4 和 IPv6 使用媒体服务实时事件、流式处理终结点和密钥传送服务。

为密钥传递设置允许列表

密钥传递 IP 允许列表的设置位于媒体服务帐户资源上。 创建新的媒体服务帐户时,可以通过媒体服务帐户资源的 KeyDelivery 属性限制允许的 IP 范围。

可以将 defaultAction 属性设置为“允许”或“拒绝”,以控制将许可证和密钥传递到允许列表范围内的客户端。

ipAllowList 属性是采用 CIDR 表示法的单个 IPv4 或 IPv6 地址和/或范围的数组。

在门户中设置允许列表

Azure 门户提供了一种方法,用于配置和更新用于密钥传递的 IP 允许列表。 导航到媒体服务帐户,并访问“设置”下的“密钥传递”菜单。

流式处理终结点 IPv6 支持

默认情况下,流式处理终结点接受来自任何 IPv4 地址的请求。 若要启用所有 IPv4 和 IPv6 地址,请在 IP 允许列表中创建同时允许 IPv4 和 IPv6 的规则:

PUT https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Media/mediaservices/{accountName}/streamingEndpoints/se1?api-version=2020-05-01
Authorization: Bearer {{getArmToken.response.body.access_token}}
Content-Type: application/json; charset=utf-8

{
  "properties": {
    "accessControl": {
      "ip": {
        "allow": [
          {
            "name": "Allow all IPv6 addresses",
            "address": "::",
            "subnetPrefixLength": 0
          },
          {
            "name": "Allow all IPv4 addresses",
            "address": "0.0.0.0",
            "subnetPrefixLength": 0
          }
        ]
      }
    }
  },
 "location": "{resourceLocation}"
}

流式处理终结点的 IP 允许列表还可以包含特定的 IPv6 地址或范围。

实时事件 IPv6 支持

默认情况下,实时事件接受来自任何 IPv4 地址的内容。 若要允许任何 IPv4 或 IPv6 地址,请在 IP 允许列表中同时允许 IPv4 和 IPv6 地址:

实时事件的 IP 允许列表还可以包含特定的 IPv6 地址或范围。 密钥传送 IPv6 支持:默认情况下,接受来自任何 IPv4 或 IPv6 地址的内容密钥请求。 密钥传送 IP 允许列表可用于限制可连接到密钥传送终结点的 IP 地址。

IP 允许列表可以包含:

  • IPv4 地址
  • IPv4 CIDR 范围
  • IPv6 地址
  • IPv6 CIDR 范围

以下示例设置密钥传送的 IP 允许列表:

PUT https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Media/mediaservices/{mediaAccountName}?api-version=2021-11-01

{
  "properties": {
    "storageAccounts": [
      {
        "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}"
      }
    ],
    "keyDelivery": {
      "accessControl": {
        "defaultAction": "Deny",
        "ipAllowList": [ "10.0.0.0/16", "2001:1234:1234::4567/32", "2001:1235::"]
      }
    },
  },
  "location": "chinaeast2"
}

对于此示例,将接受来自以下地址的请求:

  • 介于 2001:1234:1234:0000:0000:0000:0000:4567 和 2001:1234:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF 之间的 IPv6 地址;
  • IPv6 地址 2001:1235:0000:0000:0000:0000:0000:0000
  • 介于 10.0.0.0 和 10.0.255.255 之间的 IPv4 地址

其他示例:

  • 若要允许来自任何 IP 地址的请求,请将“accessControl”块的“defaultAction”设置为“Allow”(并且不要指定“ipAllowList”)
  • 若要允许所有 IPv4 地址并阻止所有 IPv6 地址,请将 IP 允许列表设置为 [ "0.0.0.0/0" ]
  • 若要允许所有 IPv6 地址并阻止所有 IPv4 地址,请将 IP 允许列表设置为 [ "::/0" ]