AWS Global Accelerator の背後にあるエンドポイントへのアクセスを制限するにはどうすればよいですか?

所要時間2分
0

エンドポイントにセキュリティグループルールを設定して、エンドポイントへのアクセスを制限したいです。

簡単な説明

AWS Global Accelerator では、Application Load Balancer、Network Load Balancer、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、または Elastic IP アドレスをエンドポイントとして使用できます。これらのエンドポイントへのアクセスを制限するかどうかは、エンドポイントのソース IP 保存がオンかオフかによって異なります。

解決策

ソース IP 保存がオンの場合

内部の Application Load Balancer または Global Accelerator で EC2 インスタンスを使用する場合、エンドポイントのクライアント IP アドレスの保存は常にオンになっています。デフォルトでは、インターネット向け Application Load Balancer のエンドポイントである新しいアクセラレーターの IP アドレス保存は常にオンになっています。この設定では、エンドポイントには 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 範囲のプレフィックスリストを作成する必要があります。プレフィックスリストは 1 つ以上の 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年前
コメントはありません