啟用 Cassandra 驗證

Edge for Private Cloud 4.17.01 版

根據預設,Cassandra 會在不啟用驗證功能的情況下安裝。也就是說,任何人都可以存取 Cassandra。您可以在安裝 Edge 後啟用驗證功能,或在安裝過程中啟用驗證功能。

如果您決定在 Cassandra 上啟用驗證功能,系統將使用下列預設憑證:

  • username = 'cassandra'
  • password =「cassandra」

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

詳情請參閱 http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/cqlCommandsTOC.html

在安裝期間啟用 Cassandra 驗證

您可以在安裝時啟用 Cassandra 驗證。不過,您可以在安裝 Cassandra 時啟用驗證功能,但無法變更預設的使用者名稱和密碼。您必須在 Cassandra 安裝完成後手動執行這項步驟。

注意:請使用「-p c」、「-p ds」、「-p sa」、「-p aio」、「-p asa」和「-p ebp」選項,按照這個程序安裝 Cassandra。

如要在安裝時啟用 Cassandra 驗證功能,請在所有 Cassandra 節點的設定檔中加入 CASS_AUTH 屬性:

CASS_AUTH=y # The default value is n.

下列 Edge 元件可存取 Cassandra:

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

因此,安裝這些元件時,您必須在設定檔中設定下列屬性,以指定 Cassandra 憑證:

CASS_USERNAME=cassandra 
CASS_PASSWORD=cassandra

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

如要在安裝 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> 提示下執行下列指令,以更新密碼:
    cqlsh> ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
  3. 退出 cqlsh 工具:
    cqlsh> exit
  4. 如果您尚未安裝管理伺服器、訊息處理器、路由器、Qpid 伺服器、Postgres 伺服器或 BaaS 堆疊,請在設定檔中設定下列屬性,然後安裝這些元件:
    CASS_USERNAME=cassandra
    CASS_PASSWORD=NEW_PASSWORD
  5. 如果您已安裝管理伺服器、訊息處理器、路由器、Qpid 伺服器、Postgres 伺服器或 BaaS 堆疊,請參閱「重設 Edge 密碼」一文,瞭解如何更新這些元件以使用新密碼。

在安裝後啟用 Cassandra 驗證

如要啟用驗證功能,請按照下列步驟操作:

  • 更新所有連線至 Cassandra 的 Edge 元件,並使用 Cassandra 使用者名稱和密碼。
  • 在所有 Cassandra 節點上啟用驗證功能。
  • 在任一節點上設定 Cassandra 使用者名稱和密碼。您只需變更一個 Cassandra 節點的憑證,系統就會將這些憑證廣播至環中的所有 Cassandra 節點。

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

  1. 在管理伺服器節點上執行下列指令:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server store_cassandra_credentials -u CASS_USERNAME -p CASS_PASSWORD

    您可以選擇將檔案傳遞至包含新使用者名稱和密碼的指令:
    > apigee-service edge-management-server store_cassandra_credentials -f configFile

    其中 configFile 包含以下內容:
    CASS_USERNAME=cassandra
    CASS_PASSWORD=CASS_PASSWROD


    這個指令會自動重新啟動管理伺服器。
  2. 重複步驟 1:
    • 所有訊息處理器
    • 所有路由器
    • 所有 Qpid 伺服器 (edge-qpid-server)
    • Postgres 伺服器 (edge-postgres-server)
  3. 在 4.16.05.04 以上版本的 BaaS Stack 節點上:
    1. 執行下列指令,產生加密密碼:
      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid secure_password

      這個指令會提示您輸入純文字密碼,並以以下格式傳回加密密碼:
      SECURE:ae1b6dedbf6b26aaab8bee815a910737c1c15b55f3505c239e43bc09f8050
    2. /opt/apigee/customer/application/usergrid.properties 中設定下列權杖。 如果該檔案不存在,請建立這個檔案:
      usergrid-deployment_cassandra.username=cassandra
      usergrid-deployment_cassandra.password=SECURE:ae1b6dedbf6b26aaab8bee815a910737c1c15b55f3505c239e43bc09f8050


      這個範例使用 Cassandra 的預設使用者名稱。如果您變更了使用者名稱,請據此設定 usergrid-deployment_cassandra.username 的值。

      請務必在密碼中加入「SECURE:」前置字元。 否則,Baas 堆疊會將該值解讀為未加密。

      注意:每個 BaaS Stack 節點都有專屬金鑰,用於加密密碼。因此,您必須在每個 BaaS Stack 節點上個別產生加密值。
    3. usergrid.properties 檔案的擁有權變更為「apigee」使用者:
      > chown Apigee:apigee /opt/apigee/customer/application/usergrid.properties
    4. 設定 Stack 節點:
      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
    5. 重新啟動 BaaS 堆疊:
      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
    6. 針對所有 BaaS 堆疊點重複上述步驟。

請按照下列程序啟用 Cassandra 驗證,並設定使用者名稱和密碼:

  1. 登入第一個 Cassandra 節點。
  2. 執行下列指令:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra
      enable_cassandra_authentication -e y

    這項指令會啟用驗證機制並重新啟動 Cassandra。

  3. 針對所有 Cassandra 節點重複執行步驟 1 和 2。
  4. 使用 cqlsh 工具和預設憑證登入任一 Cassandra 節點。您只需變更一個 Cassandra 節點的密碼,系統就會將密碼廣播至環中的所有 Cassandra 節點:
    /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p cassandra

    地點

    • cassIP 是 Cassandra 節點的 IP 位址。
    • 9042 是 Cassandra 通訊埠。
    • 預設使用者為 cassandra
    • 預設密碼為 cassandra。如果您先前已變更密碼,請使用目前的密碼。
  5. cqlsh> 提示中執行下列指令,更新密碼:
    ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
  6. cqlsh> 提示中執行下列指令,確保鍵空間一律可用。 單一資料中心:
    ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-1': '3'};
    兩個資料中心:
    ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-1': '3', 'dc-2': '3'};
  7. 離開 cqlsh 工具:
    exit
  8. 執行 nodetool repair,確認變更已推送至所有 Cassandra 節點:
    /opt/apigee/apigee-cassandra/bin/nodetool repair system_auth