在 VPC 中啟動您的 Amazon OpenSearch 服務域 - Amazon OpenSearch 服務

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 VPC 中啟動您的 Amazon OpenSearch 服務域

您可以將 AWS 資源 (例如 Amazon OpenSearch 服務網域) 啟動到虛擬私有雲 (VPC)。VPC 是一種虛擬網路,專用於您 AWS 帳戶的. 它在邏輯上與 AWS 雲端中的其他虛擬網路隔離。將 OpenSearch 服務網域置於 VPC 內,可讓 VPC 內的 OpenSearch 服務與其他服務之間的安全通訊,而不需要網際網路閘道、NAT 裝置或 VPN 連線。所有流量都安全地保留在 AWS 雲中。

注意

如果您將 OpenSearch 服務網域放在 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 服務域具有以下限制:

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

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

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

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

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

架構

若要支援 VPC, OpenSearch 服務會將端點放入 VPC 的一個、兩個或三個子網路中。如果您為網域啟用了多個可用區,每個子網路都必須位於相同區域中的不同可用區域內。如果您只使用一個可用區域,則 OpenSearch 服務只會將端點置於一個子網路中。

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

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

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

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

  • 如果您的 VPC 使用私人 DNS 伺服器,且伺服器可以連線到公用授權 DNS 伺服器來解析 DNS 主機名稱,則 OpenSearch 服務端點的解析也會成功。

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

從公有存取遷移到 VPC 存取

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

關於 VPC 網域上的存取政策

將您的 OpenSearch 服務網域置於 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 服務網域。相反,這意味著如果請求到達 OpenSearch 服務域,並且相關聯的安全組允許它,則域接受該請求。唯一的例外情況是,您使用精細存取控制或指定 IAM 角色的存取政策。在這些情況下,如果網域要接受請求,安全群組必須允許它,並且它必須使用有效的憑證進行簽署。

注意

由於安全性群組已強制執行 IP 型存取原則,因此您無法將 IP 型存取原則套用至位於 VPC 內的 OpenSearch 服務網域。如果您使用公有存取,IP 為基礎的政策仍然可用。

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

您必須先執行下列動作,才能啟用 VPC 和新 OpenSearch 服務網域之間的連線:

  • 建立 VPC

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

  • 預留 IP 地址

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

測試 VPC 網域

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

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

  2. 在與您的 OpenSearch 服務網域相同的 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. 對於安全群組,指定兩個傳入規則:

    Type 通訊協定 連接埠範圍 來源
    SSH (22) TCP (6) 22 your-cidr-block
    HTTPS (443) TCP (6) 443 your-security-group-id

    第一個規則可讓您使用 SSH 連接到 EC2 執行個體。第二個允許 EC2 實例通過 HTTPS 與 OpenSearch 服務域進行通信。

  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 服務網域。在命令中指定連接埠 9200 會模擬本機 OpenSearch 安裝,但使用您想要的任何連接埠。 OpenSearch 服務只接受透過連接埠 80 (HTTP) 或 443 (HTTPS) 進行的連線。

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

  7. 在您的網絡瀏覽器中導航到 https://localhost:9200/_dashboards/。您可能需要認可安全例外狀況。

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

    提示

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

在 VPC 子網路中保留 IP 地址

OpenSearch 服務透過將網路介面放置在 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 位址供藍色/綠色部署使用。您可以在 Amazon EC2 主控台的網路介面區段中查看網路介面及其關聯的 IP 地址。「描述」欄會顯示與網路介面相關聯的 OpenSearch 服務網域。

提示

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

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

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

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

OpenSearch 服務建立角色後,您可以使用 IAM 主控台檢視該角色 (AWSServiceRoleForAmazonOpenSearchService)。

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