如何使用 SSH 通道從 VPC 外部存取具有 Amazon Cognito 驗證的 OpenSearch Dashboards?

3 分的閱讀內容
0

我的 Amazon OpenSearch Service 網域位於虛擬私有雲端 (VPC) 中。我想使​​用 SSH 通道從 VPC 外部透過 Amazon Cognito 驗證存取 OpenSearch Dashboards。

簡短描述

預設情況下,Amazon Cognito 會將 OpenSearch Dashboards 存取權限制為 VPC 中的 AWS Identity and Access Management (IAM) 使用者。若要從另一個 VPC 存取 OpenSearch Service 網域,請為 OpenSearch Service 建立介面 VPC 端點。若要公開存取儀表板 URL,請使用 SSH 通道。

**重要:**請確認從 VPC 外部存取 OpenSearch 儀表板是否符合您組織的安全要求。

若要使用 SSH 通道從 VPC 外部存取 OpenSearch 儀表板,請完成下列步驟:

  1. 建立 Amazon Cognito 使用者集區和身分池。
  2. 在公有子網路中建立 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。
  3. 使用瀏覽器附加元件設定 SOCKS Proxy。
  4. 建立從本機電腦到 EC2 執行個體的 SSH 通道。
    **注意:**您也可以使用 NGINX Proxy 或 Client VPN,透過 Amazon Cognito 驗證從 VPC 外部存取 OpenSearch Dashboards
  5. (選用) 如果您開啟精細存取控制,請新增經過 Amazon Cognito 驗證的角色。

解決方法

建立 Amazon Cognito 使用者集區和身分池

請完成下列步驟:

  1. 建立 Amazon Cognito 使用者集區。設定下列設定:
    Application type (應用程式類型),請選擇 Traditional web application (傳統 Web 應用程式)。
    Name your application (命名您的應用程式),請輸入自訂應用程式名稱或保留預設名稱。
    Options for sign-in identifiers (登入識別碼選項),請選擇 Username (使用者名稱)。
    Required attributes for sign-up (註冊所需的屬性),請選擇 Email (電子郵件)。
  2. 開啟 Amazon Cognito console (Amazon Cognito 主控台)。
  3. 在導覽窗格中,請選擇 User pools (使用者集區)。
  4. 選取您的 User pool (使用者集區)。
  5. 在導覽窗格中的 Branding (品牌) 下,請選擇 Managed Login (受管登入)。設定下列設定:
    Domains with managed login branding (具有受管登入品牌的網域),請選擇 Update version (更新版本)。
    Branding version (品牌版本),請選擇 Hosted UI (classic) (託管 UI (傳統))。
  6. 設定您的使用者和群組
  7. 建立 Amazon Cognito 身分池。設定下列設定:
    User Access (使用者存取),請選擇 Authenticated access (經過驗證的存取)。
    Authenticated identity sources (經過驗證的身份來源),請輸入 Amazon Cognito user pool (Amazon Cognito 使用者集區)。
    IAM role (IAM 角色),請選擇 Create a new IAM role (建立新的 IAM 角色),然後輸入角色名稱。
    User pool details (使用者集區詳細資訊),請選取您的使用者集區,然後選擇 AppClient ID
    Role settings (角色設定),請選擇 Use default authenticated role (使用預設經過驗證的角色)。
    Claim mapping (宣告對應),請選擇 Inactive (非作用中)。
  8. 設定您的 OpenSearch Service 網域,以使用 Amazon Cognito 驗證。設定下列設定:
    Cognito user pool (Cognito 使用者集區),請選取您的使用者集區。
    Cognito identity pool (Cognito 身分池),請選取您的身分池。
  9. Domain (網域) 存取政策,請輸入以下存取政策:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::account-id:role/service-role/identitypool-role"
          },
          "Action": "es:*",
          "Resource": "arn:aws:es:region:account-id:domain/domain-name/*"
        }
      ]
    }
    **注意:**將 account-id 替換為您的 AWS 帳戶,並將 identitypool-role 替換為您身分池角色的名稱。將 domain-name 替換為您的 OpenSearch Service 網域,並將 region 替換為您網域的 AWS 區域。

建立 EC2 執行個體並設定安全群組規則

**重要:**執行個體的子網路必須與您的 OpenSearch Service 網域位於同一個 VPC 中。

請完成下列步驟:

  1. 在您 OpenSearch Service 網域所在的 VPC 的公有子網路中,啟動執行個體
  2. Configure Instance Details (設定執行個體詳細資料) 頁面上,確認 Auto-assign Public IP (自動指派公有 IP) 是否為 Enable (啟用)。
  3. 將傳入規則新增至與您的執行個體相關聯的安全群組。允許從本機電腦的 IP 位址到連接埠 8157 和 22 的流量。
  4. 向與 OpenSearch Service 網域相關聯的安全群組新增傳入規則。允許來自您執行個體私有 IP 位址的流量

設定 SOCKS Proxy

**注意:**以下指示使用 FoxyProxy 設定 SOCKS Proxy。若要安裝該擴充功能,請參閱 Chrome 線上商店中的 FoxyProxy

請完成下列步驟:

  1. 開啟 FoxyProxy,然後選擇 Options (選項)。
  2. Proxies 下,選擇 Add (新增)。
  3. 設定下列設定:
    Title (標題),請輸入 Proxy 名稱。
    Hostname,請輸入 localhost
    Port (連接埠),請輸入 8157
    Type (類型),請選取 SOCKS5
  4. 若要新增模式,請選擇加號 (+),然後設定下列設定:
    將第一個欄位保留空白。
    Title (標題),請輸入您的模式的名稱。
    Pattern (模式),請輸入 OpenSearch Dashboards VPC 端點,例如:https://vpc-mydomain-rg3abcdefghiflge.us-east-1.es.amazonaws.com/_dashboards
    Type (類型),請選擇 Wildcards (萬用字元)。
    Include (包括),請選擇 Include (包括)。
  5. 選擇 Save (儲存)。

建立 SSH 通道

請完成下列步驟:

  1. 使用您用於存取 OpenSearch 儀表板的本機電腦執行以下命令:

    ssh -i "mykeypair.pem"  ec2-user@public_dns_name -ND 8157

    **注意:**將 mykeypair.pem 替換為您啟動執行個體時,指定金鑰對之 .pem 檔案的名稱。將 public_dns_name 替換為您執行個體的公有 DNS。如需相關資訊,請參閱 VPC 中的 DNS 屬性

  2. 在瀏覽器中輸入 OpenSearch Dashboards 端點,以開啟 OpenSearch Dashboards 的 Amazon Cognito 登入頁面。

(選用) 如果您啟用精細存取控制,請新增 Amazon Cognito 身分池角色

如果您為 OpenSearch Service 叢集啟用精細存取控制,那麼您可能會收到缺少角色錯誤。

若要解決缺少角色錯誤,請完成下列步驟:

  1. 開啟 OpenSearch Service console (OpenSearch Service 主控台)。
  2. 在導覽窗格的 Managed clusters (受管叢集) 下,請選擇 Domains (網域)。
  3. 選取您的網域,然後選擇 Actions (動作)。
  4. 選擇 Edit security configurations (編輯安全組態)。
  5. 選擇 Set IAM ARN as your master user (將 IAM ARN 設定為主要使用者)。
  6. IAM ARN,請輸入 Amazon Cognito 身分池角色的 ARN。
  7. 選擇 Save (儲存)。

如需精細存取控制的詳細資訊,請參閱教學課程: 使用 IAM 主要使用者和 Amazon Cognito 驗證設定網域

相關資訊

為 OpenSearch Dashboards 設定 Amazon Cognito 驗證

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

AWS 官方
AWS 官方已更新 1 個月前