• 【Azure Redis 缓存】如何使得Azure Redis可以仅从内网访问? Config 及 Timeout参数配置


    问题描述

    问题一:Redis服务,如何可以做到仅允许特定的子网内的服务器进行访问?

    问题二:Redis服务,timeout和keepalive的设置是怎样的?是否可以配置成timeout 0?

    问题三:需要在Redis中做一些配置的调试,但是Config命令禁用了,应该如何调试?

    关于指定内网访问(问题一)

    标准版Redis开启Private Endpoint之后,默认是只能在虚拟网络内部才可以访问的,且Redis防火墙则无法使用。同时,Private Endpoint不支持NSG。

    在Redis开启Private Endpoint如果选择使用Azure Private DNS Zone的话,那么只有在该VNET中才可以解析到Private Endpoint内网IP。所以对于限制某些子网(subnet)可以访问Azure Redis的要求可以使用:

    1: 使用高级版Redis并且配置虚拟网络,即可通过虚拟网络来实现该需求。

    2: 使用标准版Redis开启private endpoint后,使用Redis Host Name来访问,则只有在该VNET中才可以访问Azure Redis,因为即时与其他VNET有打通,但是在其他VNET中也无法解析到内网IP。

    3: 使用标准版Redis开启private endpoint后,为源端subnet设置NSG Outbound规则允许或者禁止访问private endpoint的内网IP。

    在使用内网访问Redis时,需要注意的有:

    • 防火墙规则可以与 VNet 注入的缓存一起使用,但目前不能与专用终结点一起使用

    Azure 防火墙规则

    Azure 防火墙是托管的、基于云的网络安全服务,可保护 Azure VNet 资源。 它是一个服务形式的完全有状态防火墙,具有内置的高可用性和不受限制的云可伸缩性。 可以跨订阅和虚拟网络集中创建、实施和记录应用程序与网络连接策略。

    优点

    • 配置防火墙规则时,仅指定 IP 地址范围内的客户端连接可以连接到缓存。 即使配置了防火墙规则,仍始终允许来自 Azure Redis 缓存监视系统的连接。 还允许你定义的 NSG 规则。

    限制

    • 防火墙规则可以与 VNet 注入的缓存一起使用,但目前不能与专用终结点一起使用。

     

    • Redis专用终结点不支持NSG 

    是否对专用终结点启用了网络安全组 (NSG)?

    否,已对专用终结点禁用了 NSG。 尽管包含专用终结点的子网可以有关联的 NSG,但这些规则不会针对专用终结点处理的流量生效。 必须禁用网络策略的强制实施,才能在子网中部署专用终结点。 NSG 仍会在同一子网中托管的其他工作负荷上强制实施。 任何客户端子网上的路由将使用 /32 前缀,更改默认路由行为需要类似的 UDR。

    对源客户端上的出站流量使用 NSG 规则来控制流量。 部署具有 /32 前缀的单个路由,以替代专用终结点路由。 仍支持出站连接的 NSG 流日志和监视信息,并且可以使用这些信息

     

    • 专用终结点限制 :网络安全组 (NSG) 规则和用户定义的路由不适用于专用终结点

    说明:专用终结点不支持 NSG。 尽管包含专用终结点的子网可以有关联的 NSG,但这些规则不会针对专用终结点处理的流量生效。 必须禁用网络策略的强制实施,才能在子网中部署专用终结点。 NSG 仍会在同一子网中托管的其他工作负荷上强制实施。 任何客户端子网上的路由将使用 /32 前缀,更改默认路由行为需要类似的 UDR

    缓解措施:对源客户端上的出站流量使用 NSG 规则来控制流量。 部署具有 /32 前缀的单个路由,以替代专用终结点路由。 仍支持出站连接的 NSG 流日志和监视信息,并且可以使用这些信息

     

    Redis Config 设置参数(问题二&问题三)

    Azure Redis是无法执行Config命令的,所以timeout是没有办法配置的,默认值为: tcp-keepalive = 25 & timeout = 600

    Azure Redis 缓存中不支持 Redis 命令

    因为 Azure Redis 缓存实例的配置和管理由 Microsoft 进行管理,所以禁用了以下命令。 如果尝试调用它们,将收到一条类似于 "(error) ERR unknown command" 的错误消息。

    • BGREWRITEAOF
    • BGSAVE
    • CONFIG
    • DEBUG
    • MIGRATE
    • SAVE
    • SHUTDOWN
    • SLAVEOF
    • CLUSTER - 群集写命令已禁用,但允许使用只读群集命令。

     有一些config参数是可以修改的,不过需要使用Powershell修改:https://docs.microsoft.com/zh-cn/powershell/module/az.rediscache/set-azrediscache?view=azps-6.0.0

     

     举例:

    # Create redis configuration JSON
    $RedisConfiguration = @{"rdb-backup-enabled"="true"; "rdb-backup-frequency"="60"; "rdb-storage-connection-string"="$StorageConnectionString"; "rdb-backup-max-days"="7"}
    
    
    # Update an existing cache
    Set-AzRedisCache -ResourceGroupName $ResourceGroupName -Name $CacheName -RedisConfiguration $RedisConfiguration

    【完】

    当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

  • 相关阅读:
    Kubernetes-一文详解ServiceAccount与RBAC权限控制
    删除无用的docker镜像与容器
    How do I write one to many query in Dapper.Net?
    c# 使用反射Reflection的Emit实现动态创建元数据及可执行文件
    IE浏览器下bootStrap form-control input输入框不显示兼容性问题
    WPF控件从一个窗口移动到另一个窗口,特别适合实时刷新的
    添加/扫描显示二维码中的换行之【另类视野】
    各浏览器官方离线版下载地址
    CentOS挂载NTFS
    System.Data.SQLite.Core for .NET 5 Core manual reference
  • 原文地址:https://www.cnblogs.com/lulight/p/14867743.html
Copyright © 2020-2023  润新知