閘道 VPC 端點 - Amazon Virtual Private Cloud

閘道 VPC 端點

閘道端點可以提供 Amazon S3 和 DynamoDB 的可靠連線能力,而不必為您的 VPC 提供網際網路閘道或 NAT 裝置。閘道端點不會啟用 AWS PrivateLink。

若要建立和設定閘道端點,請遵循下列一般步驟:

  1. 指定要在其中建立端點的 VPC,以及您要連線的服務。AWS 受管的字首清單所識別的服務 - 區域之服務的名稱和 ID。AWS 字首清單 ID 使用 pl-xxxxxxx 形式,而 AWS 字首清單名稱使用 "com.amazonaws.region.service" 形式。使用 AWS 字首清單名稱 (服務名稱) 建立端點。

  2. 端點政策附加至端點,以允許存取您要連線的部分或所有服務。如需詳細資訊,請參閱 使用 VPC 端點政策

  3. 指定一個或多個路由表來建立路由至服務。路由表控制 VPC 與其他服務之間的流量路由。每個路由表相關聯的子網路可以存取端點,從這些子網路中之執行個體的流量即可透過端點路由至服務。

在下圖中,子網路 2 中的執行個體可以透過閘道端點存取 Amazon S3。


				使用閘道端點存取 Amazon S3

例如,您可以在多個服務的單一 VPC 中建立多個端點。您也可以為單一服務建立多個端點,並使用不同的路由表,於同個服務對不同的子網路行使不一樣的存取政策。

在您建立端點之後,即可修改連接至端點的端點政策,以及新增或移除端點所使用的路由表。

閘道端點的定價

使用閘道端點不需額外付費。需支付標準數據傳輸與資源使用費。如需有關定價的詳細資訊,請參閱 Amazon EC2 定價

閘道端點的路由

當您建立或修改端點時,會指定用以透過端點存取服務的 VPC 路由表。路由會自動新增至所有路由表,其中路由表具有指定服務 AWS 字首清單 ID (pl-xxxxxxxx) 的目的地,以及具有端點 ID (vpce-xxxxxxxx) 的目標,例如:

目的地 目標
10.0.0.0/16 區域
pl-1a2b3c4d vpce-11bb22cc

字首清單 ID 邏輯上代表服務所使用之公有 IP 地址的範圍。與指定路由表相關聯子網路中的所有執行個體,都會自動使用端點來存取服務。未與指定路由表建立關聯的子網路則不會使用端點。這可讓您的端點與其他子網路中的資源隔離。

若要檢視服務的目前公有 IP 地址範圍,您可以使用 describe-prefix-lists 命令 發佈清單。。

注意

服務的公有 IP 地址範圍會不時變更。請先將之納入考量,再根據服務目前的 IP 地址範圍來做出路由或其他決策。

適用的規定如下:

  • 您可以在路由表中讓多個端點路由至不同服務,也可以在不同的路由表中讓多個端點路由至相同服務。但您無法在單一路由表中讓多個端點路由至相同服務。例如,如果您的 VPC 中建立兩個端點至 Amazon S3,則您不能在相同的路由表中為兩個端點建立兩個端點路由。

  • 您無法使用路由表 API,或使用 Amazon VPC 主控台中的路由表頁面,來明確地新增、修改或刪除路由表中的端點路由。您只能透過建立路由表與端點的關聯,來新增端點路由。若要變更與您端點建立關聯的路由表,您可以修改端點

  • 當您從端點移除路由表關聯時 (修改端點) 或刪除端點時,會自動刪除端點路由。

我們會使用最具體且符合流量的路由,從而判斷如何路由流量 (最長的字首相符)。如果您的路由表中有一個適用於所有網際網路流量 (0.0.0.0/0) 的現有路由,且流量指向網際網路閘道,則該端點路由對於所有以服務為目標的流量具有優先權,因為服務的 IP 地址範圍比 0.0.0.0/0 更具體。所有其他網際網路流量都會流向網際網路閘道,包括以其他區域中的服務為目標的流量。

不過,如果您有 IP 地址範圍的現有更具體路由,而 IP 地址範圍指向網際網路閘道或 NAT 裝置,則這些路由具有優先權。如果您有以 IP 地址範圍為目標的現有路由,而此 IP 地址範圍與服務所使用的 IP 地址範圍相同,則您的路由具有優先權。

範例:路由表中的端點路由

在此情況下,您的路由表中有適用於所有網際網路流量 (0.0.0.0/0) 且指向網際網路閘道的現有路由。來自以另一個 AWS 服務為目標之子網路的所有流量都會使用網際網路閘道。

目的地 目標
10.0.0.0/16 區域
0.0.0.0/0 igw-1a2b3c4d

您可以建立支援之 AWS 服務的端點,並建立路由表與端點的關聯。端點路由會自動新增至目標為 pl-1a2b3c4d 的路由表 (假設這代表您已建立端點的服務)。現在,來自以相同區域中該 AWS 服務為目標之子網路的所有流量都會前往端點,而不會前往網際網路閘道。所有其他網際網路流量都會流向網際網路閘道,包括以其他服務為目標的流量,以及以其他區域中 AWS 服務為目標的流量。

目的地 目標
10.0.0.0/16 區域
0.0.0.0/0 igw-1a2b3c4d
pl-1a2b3c4d vpce-11bb22cc

範例:調整端點的路由表

在此情況下,54.123.165.0/24 是在 Amazon S3 IP 地址範圍中,而且您已設定路由表,允許子網路中的執行個體透過網際網路閘道與 Amazon S3 儲存貯體通訊。您已新增路由,其中以 54.123.165.0/24 做為目的地,且以網際網路閘道做為目標。您接著可以建立端點,並建立此路由表與端點的關聯。端點路由會自動新增至路由表。您接著可以使用 describe-prefix-lists 命令來檢視 Amazon S3 的 IP 地址範圍。範圍為 54.123.160.0/19,此範圍較不具體 (相較於指向網際網路閘道的範圍)。這表示以 54.123.165.0/24 IP 地址範圍為目標的任何流量都會持續使用網際網路閘道,而且不會使用端點 (只要這保有 Amazon S3 的公有 IP 地址範圍)。

目的地 目標
10.0.0.0/16 區域
54.123.165.0/24 igw-1a2b3c4d
pl-1a2b3c4d vpce-11bb22cc

若要確保以相同區域中 Amazon S3 為目標的所有流量是透過端點路由,您必須調整路由表中的路由。若要執行此作業,您可以刪除網際網路閘道的路由。現在,所有流向相同區域中 Amazon S3 的流量會使用端點,而且與路由表建立關聯的子網路是私有子網路。

目的地 目標
10.0.0.0/16 區域
pl-1a2b3c4d vpce-11bb22cc

閘道端點限制

若要使用閘道端點,您需要知道目前的限制:

  • 您無法在網路 ACL 的傳出規則中使用 AWS 字首清單 ID,來允許或拒絕流向端點中指定之服務的傳出流量。如果您的網路 ACL 規則限制流量,則您必須改為指定服務的 CIDR 區塊 (IP 地址範圍)。不過,您可以在傳出安全群組規則中使用 AWS 字首清單 ID。如需詳細資訊,請參閱 安全群組

  • 只在相同的區域內支援端點。您無法在 VPC 和位於不同區域內的服務之間建立端點。

  • 端點僅支援 IPv4 流量。

  • 您無法在 VPC 與 VPC 之間或是服務與服務之間轉移端點。

  • 每個 VPC 可建立的端點數量都有配額。如需詳細資訊,請參閱 AWS PrivateLink 配額

  • 端點連線不能延伸出 VPC。VPC 中 VPN 連接、VPC 對等互連、轉換閘道、AWS Direct Connect 連線或 ClassicLink 連線另一側的資源,無法使用端點與端點服務中的資源通訊。

  • 您必須在 VPC 中開啟 DNS 解析,或者如果您使用自有的 DNS 伺服器,請確保向所需服務 (例如 Amazon S3) 提出的 DNS 請求會正確地解析為 AWS 所維護的 IP 地址 如需詳細資訊,請參閱 Amazon VPC 使用者指南中的搭配 VPC 使用 DNSAmazon Web Services 一般參考中的 AWS IP 地址範圍

  • 檢閱您端點服務的服務特定限制。

如需有關 Amazon S3 特有規則和限制的詳細資訊,請參閱 適用於 Amazon S3 的端點

如需有關 DynamoDB 特有規則和限制的詳細資訊,請參閱 Amazon DynamoDB 的端點

建立閘道端點

若要建立端點,您必須指定要在其中建立端點的 VPC,以及要與其建立連線的服務。

使用主控台建立閘道端點
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇 Endpoints (端點)Create Endpoint (建立端點)

  3. 針對 Service Name (服務名稱),選擇要連線的服務。若要建立 DynamoDB 或 Amazon S3 的閘道端點,請確定 類型 欄指出閘道

  4. 完成下列資訊,然後選擇 Create endpoint (建立端點)

    • 針對 VPC,選取要在其中建立端點的 VPC。

    • 針對 Configure route tables (設定路由表),選取要供端點使用的路由表。我們會自動新增路由,將以服務為目標的流量指向所選取之路由表的端點。

    • 針對 Policy (政策),選擇政策類型。您可以保留預設選項 Full Access (完整存取),允許完整存取服務。或者,您可以選取 Custom (自訂),然後使用 AWS 政策產生器來建立自訂政策,或是在政策視窗中輸入您自己的政策。

    • (選用) 新增或移除標籤。

      [新增標籤] 選擇 Add tag (新增標籤),並執行下列動作:

      • 對於 Key (金鑰),輸入金鑰名稱。

      • 對於 Value (值),進入金鑰值。

      [移除標籤] 選擇標籤 Key (金鑰) 和 Value (值) 右邊的刪除按鈕 (「x」)。

在您建立端點之後,即可檢視其相關資訊。

使用主控台檢視閘道端點的相關資訊
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇 Endpoints (端點),然後選取您的端點。

  3. 若要檢視端點的相關資訊,請選擇 Summary (摘要)。您可以在 Service (服務) 方塊中取得服務的 AWS 字首清單名稱。

  4. 若要檢視端點所使用之路由表的相關資訊,請選擇 Route Tables (路由表)

  5. 若要檢視連線至端點的 IAM 原則,請選擇原則

    注意

    Policy (政策) 標籤只會顯示端點政策。針對具有端點使用許可的 IAM 使用者,標籤內不會顯示任何 IAM 原則的資訊。也不會顯示服務特定政策 (例如 S3 儲存貯體政策)。

使用 AWS CLI 建立和檢視端點
  1. 使用 describe-vpc-endpoint-services 命令,以取得可用服務清單。在傳回的輸出中,記下要連線之服務的名稱。serviceType 欄位會指出您透過界面端點還是閘道端點連線至服務。

    aws ec2 describe-vpc-endpoint-services
    { "serviceDetailSet": [ { "serviceType": [ { "serviceType": "Gateway" } ...
  2. 若要建立 Amazon S3 這類項目的閘道端點,請使用 create-vpc-endpoint 命令,並指定 VPC ID、服務名稱以及將使用端點的路由表。您可以選擇性地使用 --policy-document 參數指定自訂政策,以控制對服務的存取。如果未使用參數,則會連接允許完整存取服務的預設政策。

    對於 Amazon S3,您必須將 --vpc-endpoint-type 參數設定為 Gateway

    aws ec2 create-vpc-endpoint --vpc-id vpc-1a2b3c4d --service-name com.amazonaws.us-east-1.s3 --route-table-ids rtb-11aa22bb --vpc-endpoint-type Gateway
  3. 使用 describe-vpc-endpoints 命令來說明端點。

    aws ec2 describe-vpc-endpoints
使用 AWS Tools for Windows PowerShell 或 API 說明可用的服務
使用 AWS Tools for Windows PowerShell 或 API 建立 VPC 端點
使用 AWS Tools for Windows PowerShell 或 API 說明 VPC 端點

修改安全群組

如果與執行個體建立關聯的 VPC 安全群組限制傳出流量,您必須新增規則,允許以 AWS 服務為目標的流量離開執行個體。

新增閘道端點的傳出規則
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇 Security Groups (安全群組)

  3. 選取 VPC 安全群組,接著選擇傳出規則索引標籤,然後選擇編輯傳出規則

  4. Type (類型) 清單選取流量類型,然後在需要時輸入連接埠範圍。例如,如果您使用執行個體從 Amazon S3 擷取物件,請從類型清單選擇 HTTPS

  5. 針對 Destination (目的地),請開始輸入 pl- 以顯示可用 AWS 服務的前置詞清單 ID 和名稱清單。選擇 AWS 服務的字首清單 ID,或是進行輸入。

  6. 選擇 Save (儲存)。

使用命令列或 API 取得 AWS 服務的字首清單名稱、ID 和 IP 地址範圍

修改閘道端點

您可以變更或移除閘道端點的政策,以及新增或移除端點所使用的路由表,藉以修改閘道端點。

如果您想要將現有的 Amazon S3 閘道端點遷移到界面端點,請在建立 Amazon S3 界面端點後,刪除 Amazon S3 閘道端點。如需詳細資訊,請參閱 建立界面端點刪除 VPC 端點

變更與閘道端點建立關聯的政策
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇 Endpoints (端點),然後選取您的端點。

  3. 選擇 Actions (動作)Edit policy (編輯政策)

  4. 您可以選擇 Full Access (完整存取) 允許完整存取。或者,選擇 Custom (自訂),然後使用 AWS 政策產生器來建立自訂政策,或是在政策視窗中輸入您自己的政策。完成後,選擇 Save (儲存)

    注意

    政策變更生效可能需要幾分鐘。

新增或移除閘道端點所使用的路由表
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇 Endpoints (端點),然後選取您的端點。

  3. 依序選擇動作管理路由表

  4. 選取或取消選取必要的路由表,然後選擇 Modify Route Tables (修改路由表)

使用 AWS CLI 修改閘道端點
  1. 使用 describe-vpc-endpoints 命令來取得閘道端點的 ID。

    aws ec2 describe-vpc-endpoints
  2. 下列範例使用 modify-vpc-endpoint 命令建立路由表 rtb-aaa222bb 與閘道端點的關聯,並重設原則文件。

    aws ec2 modify-vpc-endpoint --vpc-endpoint-id vpce-1a2b3c4d --add-route-table-ids rtb-aaa222bb --reset-policy
使用 AWS Tools for Windows PowerShell 或 API 修改 VPC 端點

新增或移除閘道端點標籤

標籤可供識別閘道端點。您可以新增或移除標籤。

若要新增或移除閘道端點標籤
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中選擇 Endpoints (端點)

  3. 選取閘道端點並選擇Actions (動作)Add/Edit Tags (新增/編輯標籤)

  4. 新增或移除標籤。

    [新增標籤] 選擇 Create tag (建立標籤),並執行下列動作:

    • 對於 Key (金鑰),輸入金鑰名稱。

    • 對於 Value (值),進入金鑰值。

    [移除標籤] 選擇標籤 Key (金鑰) 和 Value (值) 右邊的刪除按鈕 (「x」)。

使用 AWS Tools for Windows PowerShell 或 API 新增或移除標籤