使用 IP 允许列表限制对 DRM 许可证和 AES 密钥传递的访问
警告
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" ]