閘道 VPC 端點
閘道端點可以提供 Amazon S3 和 DynamoDB 的可靠連線能力,而不必為您的 VPC 提供網際網路閘道或 NAT 裝置。閘道端點不會啟用 AWS PrivateLink。
若要建立和設定閘道端點,請遵循下列一般步驟:
-
指定要在其中建立端點的 VPC,以及您要連線的服務。AWS 受管的字首清單所識別的服務 - 區域之服務的名稱和 ID。AWS 字首清單 ID 使用
pl-xxxxxxx
形式,而 AWS 字首清單名稱使用 "com.amazonaws.region
.service
" 形式。使用 AWS 字首清單名稱 (服務名稱) 建立端點。 -
將端點政策附加至端點,以允許存取您要連線的部分或所有服務。如需詳細資訊,請參閱 使用 VPC 端點政策。
-
指定一個或多個路由表來建立路由至服務。路由表控制 VPC 與其他服務之間的流量路由。每個路由表相關聯的子網路可以存取端點,從這些子網路中之執行個體的流量即可透過端點路由至服務。
在下圖中,子網路 2 中的執行個體可以透過閘道端點存取 Amazon S3。

例如,您可以在多個服務的單一 VPC 中建立多個端點。您也可以為單一服務建立多個端點,並使用不同的路由表,於同個服務對不同的子網路行使不一樣的存取政策。
在您建立端點之後,即可修改連接至端點的端點政策,以及新增或移除端點所使用的路由表。
閘道端點的定價
使用閘道端點不需額外付費。需支付標準數據傳輸與資源使用費。如需有關定價的詳細資訊,請參閱 Amazon EC2 定價
閘道端點的路由
當您建立或修改端點時,會指定用以透過端點存取服務的 VPC 路由表。路由會自動新增至所有路由表,其中路由表具有指定服務 AWS 字首清單 ID (pl-
) 的目的地,以及具有端點 ID (xxxxxxxx
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 使用 DNS 和 Amazon Web Services 一般參考中的 AWS IP 地址範圍。
-
檢閱您端點服務的服務特定限制。
如需有關 Amazon S3 特有規則和限制的詳細資訊,請參閱 適用於 Amazon S3 的端點。
如需有關 DynamoDB 特有規則和限制的詳細資訊,請參閱 Amazon DynamoDB 的端點。
建立閘道端點
若要建立端點,您必須指定要在其中建立端點的 VPC,以及要與其建立連線的服務。
使用主控台建立閘道端點
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中,選擇 Endpoints (端點),Create Endpoint (建立端點)。
-
針對 Service Name (服務名稱),選擇要連線的服務。若要建立 DynamoDB 或 Amazon S3 的閘道端點,請確定 類型 欄指出閘道。
-
完成下列資訊,然後選擇 Create endpoint (建立端點)。
-
針對 VPC,選取要在其中建立端點的 VPC。
-
針對 Configure route tables (設定路由表),選取要供端點使用的路由表。我們會自動新增路由,將以服務為目標的流量指向所選取之路由表的端點。
-
針對 Policy (政策),選擇政策類型。您可以保留預設選項 Full Access (完整存取),允許完整存取服務。或者,您可以選取 Custom (自訂),然後使用 AWS 政策產生器來建立自訂政策,或是在政策視窗中輸入您自己的政策。
-
(選用) 新增或移除標籤。
[新增標籤] 選擇 Add tag (新增標籤),並執行下列動作:
-
對於 Key (金鑰),輸入金鑰名稱。
-
對於 Value (值),進入金鑰值。
[移除標籤] 選擇標籤 Key (金鑰) 和 Value (值) 右邊的刪除按鈕 (「x」)。
-
-
在您建立端點之後,即可檢視其相關資訊。
使用主控台檢視閘道端點的相關資訊
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中,選擇 Endpoints (端點),然後選取您的端點。
-
若要檢視端點的相關資訊,請選擇 Summary (摘要)。您可以在 Service (服務) 方塊中取得服務的 AWS 字首清單名稱。
-
若要檢視端點所使用之路由表的相關資訊,請選擇 Route Tables (路由表)。
-
若要檢視連線至端點的 IAM 原則,請選擇原則。
注意 Policy (政策) 標籤只會顯示端點政策。針對具有端點使用許可的 IAM 使用者,標籤內不會顯示任何 IAM 原則的資訊。也不會顯示服務特定政策 (例如 S3 儲存貯體政策)。
使用 AWS CLI 建立和檢視端點
使用 describe-vpc-endpoint-services 命令,以取得可用服務清單。在傳回的輸出中,記下要連線之服務的名稱。
serviceType
欄位會指出您透過界面端點還是閘道端點連線至服務。aws ec2 describe-vpc-endpoint-services
{ "serviceDetailSet": [ { "serviceType": [ { "serviceType": "Gateway" } ...
-
若要建立 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-namecom.amazonaws.us-east-1.s3
--route-table-idsrtb-11aa22bb
--vpc-endpoint-type Gateway -
使用 describe-vpc-endpoints 命令來說明端點。
aws ec2 describe-vpc-endpoints
使用 AWS Tools for Windows PowerShell 或 API 說明可用的服務
-
Get-EC2VpcEndpointService (AWS Tools for Windows PowerShell)
-
DescribeVpcEndpointServices (Amazon EC2 Query API)
使用 AWS Tools for Windows PowerShell 或 API 建立 VPC 端點
-
New-EC2VpcEndpoint (AWS Tools for Windows PowerShell)
-
CreateVpcEndpoint (Amazon EC2 Query API)
使用 AWS Tools for Windows PowerShell 或 API 說明 VPC 端點
-
Get-EC2VpcEndpoint (AWS Tools for Windows PowerShell)
-
DescribeVpcEndpoints (Amazon EC2 Query API)
修改安全群組
如果與執行個體建立關聯的 VPC 安全群組限制傳出流量,您必須新增規則,允許以 AWS 服務為目標的流量離開執行個體。
新增閘道端點的傳出規則
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中,選擇 Security Groups (安全群組)。
-
選取 VPC 安全群組,接著選擇傳出規則索引標籤,然後選擇編輯傳出規則。
-
從 Type (類型) 清單選取流量類型,然後在需要時輸入連接埠範圍。例如,如果您使用執行個體從 Amazon S3 擷取物件,請從類型清單選擇 HTTPS。
-
針對 Destination (目的地),請開始輸入
pl-
以顯示可用 AWS 服務的前置詞清單 ID 和名稱清單。選擇 AWS 服務的字首清單 ID,或是進行輸入。 -
選擇 Save (儲存)。
使用命令列或 API 取得 AWS 服務的字首清單名稱、ID 和 IP 地址範圍
-
describe-prefix-lists (AWS CLI)
-
Get-EC2PrefixList (AWS Tools for Windows PowerShell)
-
DescribePrefixLists (Amazon EC2 Query API)
修改閘道端點
您可以變更或移除閘道端點的政策,以及新增或移除端點所使用的路由表,藉以修改閘道端點。
如果您想要將現有的 Amazon S3 閘道端點遷移到界面端點,請在建立 Amazon S3 界面端點後,刪除 Amazon S3 閘道端點。如需詳細資訊,請參閱 建立界面端點 及 刪除 VPC 端點。
變更與閘道端點建立關聯的政策
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中,選擇 Endpoints (端點),然後選取您的端點。
-
選擇 Actions (動作)、Edit policy (編輯政策)。
-
您可以選擇 Full Access (完整存取) 允許完整存取。或者,選擇 Custom (自訂),然後使用 AWS 政策產生器來建立自訂政策,或是在政策視窗中輸入您自己的政策。完成後,選擇 Save (儲存)。
注意 政策變更生效可能需要幾分鐘。
新增或移除閘道端點所使用的路由表
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中,選擇 Endpoints (端點),然後選取您的端點。
-
依序選擇動作,管理路由表。
-
選取或取消選取必要的路由表,然後選擇 Modify Route Tables (修改路由表)。
使用 AWS CLI 修改閘道端點
使用 describe-vpc-endpoints 命令來取得閘道端點的 ID。
aws ec2 describe-vpc-endpoints
下列範例使用 modify-vpc-endpoint 命令建立路由表
rtb-aaa222bb
與閘道端點的關聯,並重設原則文件。aws ec2 modify-vpc-endpoint --vpc-endpoint-id
vpce-1a2b3c4d
--add-route-table-idsrtb-aaa222bb
--reset-policy
使用 AWS Tools for Windows PowerShell 或 API 修改 VPC 端點
-
Edit-EC2VpcEndpoint (AWS Tools for Windows PowerShell)
-
ModifyVpcEndpoint (Amazon EC2 Query API)
新增或移除閘道端點標籤
標籤可供識別閘道端點。您可以新增或移除標籤。
若要新增或移除閘道端點標籤
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中選擇 Endpoints (端點)。
-
選取閘道端點並選擇Actions (動作)、Add/Edit Tags (新增/編輯標籤)。
-
新增或移除標籤。
[新增標籤] 選擇 Create tag (建立標籤),並執行下列動作:
-
對於 Key (金鑰),輸入金鑰名稱。
-
對於 Value (值),進入金鑰值。
[移除標籤] 選擇標籤 Key (金鑰) 和 Value (值) 右邊的刪除按鈕 (「x」)。
-
使用 AWS Tools for Windows PowerShell 或 API 新增或移除標籤
-
create-tags (AWS CLI)
-
CreateTags (AWS Tools for Windows PowerShell)
-
delete-tags (AWS CLI)
-
DeleteTags (AWS Tools for Windows PowerShell)