啟用 Cassandra 驗證

根據預設,Cassandra 安裝但不啟用驗證功能。也就是說,凡是能存取 Cassandra 伺服器的使用者,都可以查詢 Cassandra 資料庫,不必進行任何驗證。您可以在安裝 Edge 後啟用驗證功能,或在安裝過程中啟用驗證功能。

如果您決定在 Cassandra 上啟用驗證,但未提供自己的任何憑證,系統會使用下列預設憑證:

  • 使用者名稱 =「cassandra」
  • 密碼 =「cassandra」

您可以使用這個使用者帳戶、為這個使用者帳戶設定其他密碼,或建立新的 Cassandra 使用者。使用 Cassandra CREATE/ALTER/DROP USER 陳述式新增、移除及修改使用者。

詳情請參閱 Cassandra SQL 殼層指令

在安裝期間啟用 Cassandra 驗證

您可以在安裝時啟用 Cassandra 驗證。不過,雖然您可以在安裝 Cassandra 時啟用驗證功能,但應一律在安裝期間使用預設的 cassandra 使用者名稱和密碼 (‘cassandra’:’cassandra’)。 如要使用非預設的 Cassandra 憑證,必須在安裝後按照 這裡所列的步驟重新啟用 Cassandra 驗證。

如果您想在新的 Cassandra 安裝期間啟用 Cassandra 驗證,請在所有 Cassandra 節點的設定檔中加入下列屬性:

CASS_AUTH=y
CASS_USERNAME=cassandra
CASS_PASSWORD=cassandra

安裝程序會在 Cassandra 設定啟用驗證功能,並採用預設的 cassandra:cassandra 憑證。

初次安裝完成後,您可以執行以下一或多個步驟:

連線至 Cassandra 的邊緣元件

下列 Edge 元件可存取 Cassandra:

  • 管理伺服器
  • 訊息處理器
  • 路由器
  • Qpid 伺服器
  • Postgres 伺服器

在啟用 Cassandra 驗證的情況下安裝 Edge 元件

如果您在首次安裝這些 Edge 元件時啟用了 Cassandra 驗證,必須在無訊息設定檔中提供下列設定:

CASS_AUTH=Y
CASS_USERNAME=<valid username in Cassandra>
CASS_PASSWORD=<password for the above username>

您可以在安裝 Cassandra 後變更 Cassandra 憑證。不過,如果您已經安裝管理伺服器、訊息處理器、路由器、Qpid 伺服器或 Postgres 伺服器,也必須更新這些元件才能使用新的憑證,如下一節所述。

更新連線至 Cassandra 的 Edge 元件

請按照下列程序,更新與 Cassandra 通訊的所有 Edge 元件與新憑證。請注意,您必須先完成這個步驟,才能實際更新 Cassandra 憑證:

  1. 在 Management Server 節點中,執行下列指令:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server store_cassandra_credentials -u cassandra_username -p cassandra_password

    您也可以選擇將包含新使用者名稱和密碼的檔案傳送至指令:

    apigee-service edge-management-server store_cassandra_credentials  -f configFile

    其中 configFile 包含以下:

    CASS_USERNAME=cassandra_username # Default is cassandra
    CASS_PASSWORD='cassandra_password' # Default is cassandra; wrap in single quotes if it includes special characters.

    這個指令會自動重新啟動管理伺服器。

  2. 針對下列各項服務重複步驟 1:
    • 所有訊息處理器
    • 所有路由器
    • 所有 Qpid 伺服器 (edge-qpid-server)
    • Postgres 伺服器 (edge-postgres-server)

    當您針對每項服務重複步驟 1 時,請將上述指令中的 edge-management-server 替換為適當的服務名稱。舉例來說,當您執行路由器服務的步驟時,請使用下列指令:

    /opt/apigee/apigee-service/bin/apigee-service edge-router store_cassandra_credentials -u cassandra -p cassandra

    在安裝後啟用 Cassandra 驗證

    下列各節說明如何在安裝後啟用 Cassandra 驗證。

    針對單一資料中心設定啟用 Cassandra 驗證

    對於已安裝 Cassandra 且以單一資料中心為基礎的 Apigee 設定,您可以:

    注意:「Cassandra」使用者是 Cassandra 中的特殊使用者。透過這位使用者進行驗證,需要 QUORUM 一致性。請參閱 關於 Cassandra 一致性等級

    在有多個資料中心時啟用 Cassandra 驗證

    擴展資料中心時,請根據您設定的設定,按照下列其中一種情境執行相應步驟。

    情境 1:現有資料中心已啟用 Cassandra 驗證

    如果已有預設 cassandra:cassandra 憑證的現有資料中心已啟用 Cassandra 驗證,請按照下列步驟操作:

    1. 使用預設的 Cassandra:Cassandra 憑證和 CASS_AUTH=y 來設定新的資料中心。請參閱「首次啟用 Cassandra 驗證」。
    2. 使用預設 Cassandra 憑證,在新資料中心內安裝 Edge 元件

    如果已啟用非預設憑證的現有資料中心已啟用 Cassandra 驗證,請按照下列步驟操作:

    1. 使用預設的 Cassandra:Cassandra 憑證和 CASS_AUTH=y 來設定新的資料中心。請參閱「首次啟用 Cassandra 驗證」。
    2. 如果現有資料中心使用非預設憑證,請按照 首次啟用 Cassandra 驗證中的步驟操作。
    3. 使用非預設的 Cassandra 憑證在新的資料中心安裝 Edge 元件

    情境 2:現有的資料中心未啟用 Cassandra 驗證

    如未啟用 cassandra 驗證,請按照下列步驟操作:

    1. 設定不使用 Cassandra 驗證的新資料中心。
    2. 按照「 第一次啟用 Cassandra 驗證」步驟來在整個叢集中啟用 Cassandra 驗證 (展開後)。
    3. 請按照這裡的步驟更新連線至 Cassandra 的 Edge 元件。

    首次啟用 Cassandra 驗證

    如果是第一次啟用 Cassandra 驗證,或建立新的 Cassandra 使用者名稱和密碼,請按照下列程序操作:

    1. 使用以下內容建立無訊息設定檔:
      # Specify IP address or DNS name of cassandra node
      IP1=192.168.1.1
      IP2=192.168.1.2
      IP3=192.168.1.3
      
      # Must resolve to IP address or DNS name of host
      HOSTIP=$(hostname -i)
      
      # Set to ‘y’ to enable Cassandra authentication.
      CASS_AUTH=y # Possible values are ‘y/n’
      
      # Cassandra username. If it does not exist, this user would be created as a SUPERUSER
      CASS_USERNAME=cassandra # Default value is cassandra
      # Cassandra Password. If CASS_USERNAME does not exist, create SUPERUSER with this as password
      CASS_PASSWORD=cassandra # Default value is cassandra
      
      # Space-separated IP/DNS names of the Cassandra hosts
      CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1"
      
      # Username of an existing C* user. Only needed if you have disabled or change details of the default cassandra user(‘cassandra’)
      CASS_EXISTING_USERNAME=cassandra  # The default username is cassandra
      # Password of an existing C* user. Only needed if you have disabled or change password of the default cassandra user(‘cassandra’)
      CASS_EXISTING_PASSWORD=cassandra  # The default password is cassandra
      
      # Cassandra port
      CASS_PORT=9042 # The default port is 9042.
    2. 登入第一個 Cassandra 節點,然後執行下列指令:
      apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG

      您也可以選擇將屬性做為指令引數傳送至指令碼,如以下範例所示:

      CASS_AUTH=y HOSTIP=$(hostname -i) CASS_PORT=9042 CASS_EXISTING_USERNAME=cassandra CASS_EXISTING_PASSWORD=cassandra CASS_USERNAME=cassandra CASS_PASSWORD=cassandra  CASS_HOSTS="192.168.1.1:1,1 192.168.1.2:1,1 192.168.1.3:1,1" apigee-service apigee-cassandra enable_cassandra_authentication

      注意:

      • 如為預設 Cassandra 憑證,上述指令會啟用 Cassandra 驗證並重新啟動 Cassandra。
      • 如為非預設憑證,這個指令也會變更複製係數、建立超級使用者,並在 system_auth keyspace 上執行修復。
    3. 逐一對所有 Cassandra 節點逐一重複執行步驟 1 和 2。

    安裝 Cassandra 後變更 Cassandra 憑證

    如何在安裝 Cassandra 後變更 Cassandra 憑證:

    1. 使用 cqlsh 工具和預設憑證登入任一 Cassandra 節點。您只需在一個節點上變更密碼,系統就會對環狀中的所有 Cassandra 節點廣播:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p cassandra

      在此情況下:

      1. cassIP 是 Cassandra 節點的 IP 位址。
      2. 9042 是預設的 Cassandra 通訊埠。
      3. 預設使用者為 cassandra
      4. 預設密碼為 cassandra。如果之前變更過密碼,請使用目前的密碼。如果密碼含有任何特殊字元,請用單引號括住。
    2. cqlsh> 提示中執行下列指令,以更新密碼:
      ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
    3. 結束 cqlsh 工具,如以下範例所示:
      exit
    4. 如果您尚未安裝管理伺服器、訊息處理器、路由器、Qpid 伺服器或 Postgres 伺服器,請在設定檔中設定下列屬性,然後安裝這些元件:
      CASS_USERNAME=cassandra
      CASS_PASSWORD=NEW_PASSWORD
    5. 如果您已安裝管理伺服器、訊息處理器、路由器、Qpid 伺服器或 Postgres 伺服器,請參閱「重設邊緣密碼」一文,瞭解更新這些元件來使用新密碼的程序。