AWS Global Accelerator를 지원하는 엔드포인트에 대한 액세스를 제한하려면 어떻게 해야 하나요?

3분 분량
0

엔드포인트에 보안 그룹 규칙을 구성하여 엔드포인트에 대한 액세스를 제한하려고 합니다.

간략한 설명

AWS Global Accelerator는 애플리케이션 로드 밸런서, 네트워크 로드 밸런서, Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 또는 탄력적 IP 주소를 엔드포인트로 사용할 수 있습니다. 이러한 엔드포인트에 대한 액세스 제한은 엔드포인트의 소스 IP 보존이 켜져 있는지 아니면 꺼져 있는지에 따라 달라집니다.

해결 방법

소스 IP 보존 켜짐

Global Accelerator와 함께 내부 Application Load Balancer 또는 EC2 인스턴스를 사용하는 경우 엔드포인트의 클라이언트 IP 주소 보존은 항상 켜져 있습니다. 기본적으로 IP 주소 보존은 액셀러레이터가 있는 엔드포인트인 인터넷 연결 Application Load Balancer의 새 액셀러레이터에 대해 항상 켜져 있습니다. 이 설정에서 엔드포인트는 Global Accelerator의 IP 주소 대신 실제 클라이언트 IP 주소만 볼 수 있습니다. 다음과 같이 이러한 엔드포인트에 대한 액세스를 제한할 수 있습니다.

  • 알려진 클라이언트 IP 주소에서의 연결을 허용하도록 엔드포인트의 보안 그룹을 구성합니다.
  • 클라이언트가 Global Accelerator를 통해서만 엔드포인트에 액세스할 수 있도록 프라이빗 서브넷에서 엔드포인트를 시작합니다.

소스 IP 보존이 꺼짐

다음 중 하나를 엔드포인트로 사용하는 경우 클라이언트 IP 보존을 끌 수 있습니다.

  • 외부 Application Load Balancer
  • Network Load Balancer
  • 탄력적 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 주소 범위를 ip-ranges.json에 게시합니다.

  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 공식업데이트됨 10달 전