如何限制对 AWS Global Accelerator 后面的端点的访问?

2 分钟阅读
0

我想通过在端点上配置安全组规则来限制对我的端点的访问。

简短描述

AWS Global Accelerator 可以将应用程序负载均衡器、网络负载均衡器、Amazon Elastic Compute Cloud(Amazon EC2)实例或弹性 IP 地址作为端点。限制对这些端点的访问取决于该端点是启用还是关闭了源 IP 保留功能。

解决方法

源 IP 保留已启用

当您使用内部应用程序负载均衡器或带有 Global Accelerator 的 EC2 实例时,端点的客户端 IP 地址保留功能始终处于启用状态。默认情况下,在面向互联网的应用程序负载均衡器(即带有加速器的端点)中,新加速器的 IP 地址保留始终处于启用状态。在此设置中,端点只能看到真正的客户端 IP 地址,而不是 Global Accelerato 的 IP 地址。您可以限制对这些端点的访问,如下所示:

  • 在端点上配置安全组以允许来自已知客户端 IP 地址的连接。
  • 在私有子网中启动端点,以便客户端只能通过 Global Accelerator 访问该端点。

源 IP 保留已关闭

使用以下任一项作为端点时,您可以选择关闭客户端 IP 保留:

  • 面向外部的应用程序负载均衡器
  • 网络负载均衡器
  • 弹性 IP 地址

在此设置中,端点只能看到 Global Accelerator 的 IP 地址。

由于 Global Accelerator 使用一系列 IP 地址,因此必须为 Global Accelerator 的 IP 范围创建前缀列表。前缀列表是包含一个或多个 CIDR 块的集合,您可以在 VPC 安全组的规则中引用这些块来限制访问。

安装必要的工具来创建自定义前缀列表。然后,将其配置为允许连接到端点,前提是这些连接是通过 AWS Global Accelerator 发起的。

安装工具

安装以下工具来构建自定义前缀列表:

  1. 使用正确的安全凭证和访问设置安装 AWS CLI。
    **注意:**如果在运行 CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI

  2. 在 Amazon Linux 2 上安装 'jq'。运行:

    sudo yum install -y jq
    
  3. 从 GitHub 安装 Aggeregate6

    sudo yum install -y python3 python3-devel python-pip
    pip3 install --user aggregate6  
    

创建自定义前缀列表

AWS 在 ip-ranges.json 中发布其当前的 IP 地址范围。

  1. 确定与 AWS Global Accelerator 边缘服务器关联的 IP 地址范围。

  2. 压缩列表以生成 IP 前缀。将其用作参数来创建自定义前缀列表,如下所示:

    aws ec2 create-managed-prefix-list --prefix-list-name <name-of-prefix-list> --address-family ipv4 --max-entries 99 --entries=$(curl -s https://ip-ranges.amazonaws.com/ip-ranges.json |jq -r '.prefixes[] |select( .service == "GLOBALACCELERATOR" ) |select( .region != "GLOBAL" ) |.ip_prefix' |aggregate6 |jq -R -M '{"Cidr": .}' |jq -s -c -M)
    

    **注意:**请将 <name-of-prefix-list> 替换为您的列表的名称。

  3. 查看输出。它必须类似于以下内容:

    {
        "PrefixList": {
            "PrefixListId": "pl-0abcde123456789",
            "AddressFamily": "IPv4",
            "State": "create-in-progress",
            "PrefixListArn": "arn:aws:ec2:us-east-1:1234567890:prefix-list/pl-0abcde123456789",
            "PrefixListName": "aga-regional-all",
            "MaxEntries": 99,
            "Version": 1,
            "Tags": [],
            "OwnerId": "1234567890"
        }
    }
    
  4. 查看此前缀列表中的 IP 地址,如下所示:

    aws ec2 get-managed-prefix-list-entries --prefix-list-id <prefix-list-id>

    **注意:**请将 <prefix-list-id> 替换为您的列表的 ID。

将自定义前缀列表添加到安全组

将您之前创建的前缀列表指定为与加速器端点关联的安全组之入站规则的来源。有关在安全组中引用前缀列表的详细信息,请参阅 VPC 安全组

相关信息

Global Accelerator 边缘服务器的位置和 IP 地址范围

使用托管前缀列表对 CIDR 块分组

AWS 官方
AWS 官方已更新 1 年前