在 VPC 中啟動您的 Amazon OpenSearch Service 網域 - Amazon OpenSearch Service

在 VPC 中啟動您的 Amazon OpenSearch Service 網域

您可以將 AWS 資源 (例如 Amazon OpenSearch Service 網域) 啟動到 Virtual Private Cloud (VPC)。VPC 是 AWS 帳戶 的專用虛擬網路。它在邏輯上與 AWS 雲端中的其他虛擬網路隔離。在 VPC 中放置 OpenSearch Service 網域可在 VPC 中的 OpenSearch Service 和其他服務之間進行安全通訊,而不需要網際網路閘道、NAT 裝置或 VPN 連接。在 AWS Cloud 中保持所有流量的安全。

注意

如果您將 OpenSearch Service 網域放置在 VPC 中,您的電腦必須能夠連接到 VPC。此連線通常會採用 VPN、傳輸閘道、受管網路或代理伺服器形式。您無法從 VPC 外部直接存取您的網域。

VPC 與公有網域

以下是 VPC 網域不同於公有網域的一些方面。稍後會更詳細地說明各項差異。

  • 因為其邏輯隔離,相較於使用公有端點的網域,位於 VPC 內的網域具有額外的安全層。

  • 雖然可以從任何連接網際網路的裝置存取公有網域,但 VPC 網域需要某種形式的 VPN 或代理。

  • 相較於公有網域,VPC 網域在 主控台中顯示較少的資訊。特別是,Cluster health (叢集運作狀態) 索引標籤並不包含碎片資訊,並且 Indices (索引) 索引標籤不會出現。

  • 網域端點採用不同的形式 (https://search-domain-namehttps://vpc-domain-name)。

  • 由於安全群組已經強制執行 IP 為基礎的存取政策,您無法將 IP 為基礎的存取政策套用到位於 VPC 內的網域。

限制

在 VPC 中操作 OpenSearch Service 網域具有下列限制:

  • 如果您在 VPC 中啟動新的網域,則無法在稍後進行切換以使用公有端點。反之亦然:如果您建立具有公有端點的網域,您稍後無法將其置於 VPC 之中。反之,您必須建立新網域並遷移您的資料。

  • 您可以在 VPC 中啟動您的網域,或者使用公有端點,但是您無法同時進行兩者。您必須在建立網域時選擇其中一個。

  • 您無法在使用專用租用的 VPC 中啟動您的網域。您必須使用租用設定為預設的 VPC。

  • 您將網域置於 VPC 後,您無法將其移到不同的 VPC,但您可以變更子網路和安全群組設定。

  • 若要針對位於 VPC 內的網域存取 OpenSearch Dashboards 的預設安裝,使用者必須能夠存取 VPC。此程序會依網路組態而異,但可能需要連線到 VPN 或受管網路或使用代理伺服器或傳輸閘道。如需進一步了解,請參閱 關於 VPC 網域上的存取政策Amazon VPC 使用者指南控制 OpenSearch Dashboards 的存取

架構

為了支援 VPC,OpenSearch Service 會將端點置放到您 VPC 的一個、二個或三個子網路中。如果您為網域啟用了多個可用區,每個子網路都必須位於相同區域中的不同可用區域內。如果您只啟用一個可用區域,OpenSearch Service 會僅將端點置於一個子網路中。

下圖顯示一個可用區域的 VPC 架構:

下圖顯示兩個可用區域的 VPC 架構:

對於每個資料節點,OpenSearch Service 也會將彈性網路介面 (ENI) 放置到 VPC 中。OpenSearch Service 會為每個 ENI 指派一個您的子網路 IPv4 地址範圍中的私有 IP 地址。服務也會為 IP 地址指定公有 DNS 主機名稱 (網域端點)。您必須使用公有 DNS 服務,來解析端點 (DNS 主機名稱) 到資料節點的適當 IP 地址:

  • 如果您的 VPC 透過將 enableDnsSupport 選項設定為 true (預設值),來使用 Amazon 提供的 DNS 伺服器,則 OpenSearch Service 端點的解析將會取得成功。

  • 如果您的 VPC 使用私有 DNS 伺服器且伺服器可以連接公有授權的 DNS 伺服器以解析 DNS 主機名稱,則 OpenSearch Service 端點的解析也會取得成功。

由於 IP 地址可能變更,您應該定期解析網域端點,以便您可以隨時存取正確的資料節點。我們建議您設定 DNS 解析間隔為一分鐘。如果您使用的是用戶端,您也應該確保用戶端中的 DNS 快取已清除。

注意

OpenSearch Service 不支援具有 VPC 的 IPv6 地址。您可以使用已啟用 IPv6 的 VPC,但是網域將使用 IPv4 地址。

從公有存取遷移到 VPC 存取

當您建立網域時,可以指定是否應該有公有端點或位於 VPC 中。建立之後,您無法從一個切換到另一個。反之,您必須建立新網域並且手動重新建立索引或遷移您的資料。快照提供方便的方法遷移資料。如需有關拍攝和恢復快照的資訊,請參閱在 Amazon OpenSearch Service 中建立索引快照

關於 VPC 網域上的存取政策

將 OpenSearch Service 網域置於 VPC 中可提供固有、強大的安全層。當您建立具有公用存取的網域時,端點的格式如下:

https://search-domain-name-identifier.region.es.amazonaws.com

如「公有」標籤建議,這個端點可從任何連接網際網路的裝置存取,即使您可以 (且應該) 控制對其的存取。如果您在 Web 瀏覽器中存取端點,您可能會收到 Not Authorized 訊息,但請求會到達網域。

當您建立具 VPC 存取的網域時,端點看起來類似公有端點:

https://vpc-domain-name-identifier.region.es.amazonaws.com

如果您嘗試在 Web 瀏覽器中存取端點,不過您可能會發現請求逾時。若要執行更基本的 GET 請求,您的電腦必須能夠連接到 VPC。此連線通常會採用 VPN、傳輸閘道、受管網路或代理伺服器形式。如需有關它可採用的各種形式的詳細資訊,請參閱 Amazon VPC 使用者指南中的 VPC 範例。關於以開發為中心的範例,請參閱測試 VPC 網域

除了此連線需求外,VPC 還可讓您透過安全群組管理網域的存取。對於許多使用案例,這個安全功能的組合已足夠,而您可能感覺可安心將開放的存取政策套用到網域。

使用開放的存取政策並不表示網際網路上的任何人都可以存取 OpenSearch Service 網域。反之,其表示如果請求達到 OpenSearch Service 網域且經關聯之安全群組允許,則網域會接受請求。唯一的例外情況是,您使用精細存取控制或指定 IAM 使用者或角色的存取政策。在這些情況下,如果網域要接受請求,安全群組必須允許它,並且它必須使用有效的憑證進行簽署。

注意

由於安全群組已經強制執行 IP 為基礎的存取政策,您無法將 IP 為基礎的存取政策套用到位於 VPC 內的 網域。如果您使用公有存取,IP 為基礎的政策仍然可用。

在您開始之前:VPC 存取的先決條件

在您可以啟用 VPC 和新 OpenSearch Service 網域之間的連線之前,必須執行以下操作:

  • 建立 VPC

    若要建立 VPC,您可以使用 Amazon VPC 主控台、AWS CLI 或其中一個 AWS 開發套件。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的使用 VPC。如果您已有 VPC,則可以略過此步驟。

  • 預留 IP 地址

    OpenSearch Service 透過將網路介面置於 VPC 的子網路中來啟用 VPC 到網域的連線。每個網路界面都與 IP 地址關聯。您必須在子網路中保留足夠數量的 IP 地址給網路界面。如需詳細資訊,請參閱在 VPC 子網路中保留 IP 地址

測試 VPC 網域

VPC 的增強安全性使得連線到您的網域以及執行基本測試成為一個挑戰。如果您已經擁有 OpenSearch Service VPC 網域而寧願不建立 VPN 伺服器,請嘗試下列程序:

  1. 對於網域的存取政策,請選擇 Only use fine-grained access control (僅使用精細存取控制)。完成測試後,您隨時可以更新此設定。

  2. 在與 OpenSearch Service 網域相同的 VPC、子網路和安全群組中建立 Amazon Linux Amazon EC2 執行個體。

    由於此執行個體是用於進行測試,只需執行極少的工作,因此請選擇較便宜的執行個體類型,如 t2.micro。指派公有 IP 地址給執行個體,然後建立新的金鑰對或選擇現有的金鑰對。如果您建立新的金鑰,請將其下載到您的 ~/.ssh 目錄。

    若要進一步了解如何建立執行個體,請參閱 Amazon EC2 Linux 執行個體入門

  3. 網際網路閘道新增至您的 VPC。

  4. 在 VPC 的路由表中,新增新的路由。對於 Destination (目的地),指定其中包含您電腦公有 IP 地址的 CIDR 區塊。對於 Target (目標),指定您剛建立的網際網路閘道。

    例如,您可以指定 123.123.123.123/32 以只用於您的電腦,或指定 123.123.123.0/24 以用於一個範圍的電腦。

  5. 對於安全群組,指定兩個傳入規則:

    類型 通訊協定 連接埠範圍 來源
    SSH (22) TCP (6) 22 您的 CIDR 區塊
    HTTPS (443) TCP (6) 443 您的安全群組 ID

    第一個規則可讓您使用 SSH 連接到 EC2 執行個體。第二個規則允許 EC2 執行個體透過 HTTPS 與 OpenSearch Service 網域通訊。

  6. 從終端機執行下列命令:

    ssh -i ~/.ssh/your-key.pem ec2-user@your-ec2-instance-public-ip -N -L 9200:vpc-domain-name.region.es.amazonaws.com:443

    此命令會建立一個 SSH 通道,透過 EC2 執行個體將 https://localhost:9200 的請求轉送到 OpenSearch Service 網域。在命令中指定連接埠 9200 會模擬本機 OpenSearch 安裝,但您可使用您想要的任何連接埠。OpenSearch Service 只接受透過連接埠 80 (HTTP) 或 443 (HTTPS) 的連接。

    此命令不會提供任何意見回饋,並且無限期地執行。若要停止命令,請按 Ctrl + C

  7. 在 Web 瀏覽器中導覽至 https://localhost:9200/_dashboards/。您可能需要認可安全例外狀況。

    或者,您也可以使用 https://localhost:9200curlPostman 或您愛用的程式設計語言,傳送請求到

    提示

    如果因為憑證不相符而遇到 Curl 錯誤,請嘗試 --insecure​ 旗標。

在 VPC 子網路中保留 IP 地址

OpenSearch Service 會透過將網路介面置放在 VPC (或者如果您啟用了多個可用區域,則為 VPC 的多個子網路) 的子網路中,將網域連線到 VPC。每個網路界面都與 IP 地址關聯。在您建立 OpenSearch Service 網域之前,您必須在每個子網路中有足夠數量的 IP 地址,以適應網路介面。

以下是基本公式:OpenSearch Service 在每個子網路預留的 IP 地址數量是資料節點數的三倍,再除以可用區域數量。

範例

  • 如果某個網域有 9 個資料節點和 3 個可用區域,則每個子網路的 IP 計數為 9 * 3 / 3 = 9。

  • 如果某個網域有 8 個資料節點和 2 個可用區域,則每個子網路的 IP 計數為 8 * 3 / 2 = 12。

  • 如果某個網域有 6 個資料節點和 1 個可用區域,則每個子網路的 IP 計數為 6 * 3 / 1 = 18。

當您建立網域時,OpenSearch Service 會保留 IP 地址,將某些 IP 地址用於網域,並為藍/綠部署保留其餘 IP 地址。您可以在 Amazon EC2 主控台的網路介面區段中查看網路介面及其關聯的 IP 地址。Description (描述) 欄顯示網路介面與哪些 OpenSearch Service 網域相關聯。

提示

我們建議您為 OpenSearch Service 保留 IP 地址建立專用的子網路。透過使用專用的子網路,可避免與其他應用程式和服務重疊,並確保您可以預留額外的 IP 地址供未來若需要擴展叢集時使用。若要進一步了解,請參閱在您的 VPC 中建立子網路

VPC 存取適用的服務連結角色

服務連結角色是一個唯一的 IAM 角色類型,它將許可委派給服務,以便服務可代表您建立和管理資源。OpenSearch Service 需要服務連結角色來存取您的 VPC、建立網域端點以及將網路介面置於您的 VPC 子網路中。

當您使用 OpenSearch Service 主控台在 VPC 中建立網域時,OpenSearch Service 會自動建立角色。若要讓此自動建立成功,您必須有 iam:CreateServiceLinkedRole 動作的許可。如需進一步了解,請參閱 IAM 使用者指南中的服務連結角色許可

在 OpenSearch Service 建立角色後,您可以使用 IAM 主控台檢視它 (AWSServiceRoleForAmazonOpenSearchService)。

如需此角色許可以及如何刪除它的完整資訊,請參閱使用服務連結角色提供對資源的 Amazon OpenSearch Service 存取