启用 Cassandra 身份验证

Edge for Private Cloud v. 4.16.05

默认情况下,Cassandra 会在未启用身份验证的情况下安装。这意味着任何人都可以访问 Cassandra。您可以在安装 Edge 后启用身份验证,也可以在安装过程中启用身份验证。

如果您决定在 Cassandra 上启用身份验证,则会使用以下默认凭据:

  • 用户名 = 'cassandra'
  • 密码 =“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 堆栈,请参阅重置边缘密码,了解更新这些组件以使用新密码的过程。

在安装后启用 Cassandra 身份验证

如需启用身份验证,请执行以下操作:

  • 使用 Cassandra 用户名和密码更新所有连接到 Cassandra 的 Edge 组件。
  • 在所有 Cassandra 节点上启用身份验证。
  • 在任意一个节点上设置 Cassandra 用户名和密码。您只需更改一个 Cassandra 节点上的凭据,它们便会广播到环中的所有 Cassandra 节点。

按照以下步骤使用新凭据更新与 Cassandra 通信的所有 Edge 组件。请注意,在实际更新 Cassandra 凭据之前,请执行此步骤:

  1. 在“管理服务器”节点上,运行以下命令:
    > /opt/apigee/apigee-service/bin/apigee-serviceedge-management-server store_cassandra_credentials -u CASS_USERNAME -p CASS_PASSWORD

    或者,您可以将文件传递给包含新用户名和密码的命令:
    > /opt/apigee/apigee-service/bin/apigee-serviceedge-management-server store_cassandra_credentials -u CASS_USERNAME -p CASS_PASSWORD

    您可以将文件传递给包含新用户名和密码的命令:
    >> >> >configS-configs_firebase_config_apigee_server store


    configFile
  2. 对以下项目重复第 1 步:
    • 所有消息处理器
    • 所有路由器
    • 所有 Qpid 服务器 (edge-qpid-server)
    • Postgres 服务器 (edge-postgres-server)
  3. 在 4.16.05.04 及更高版本的 BaaS 堆栈节点上:
    1. 运行以下命令以生成加密密码:
      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid secure_password

      此命令会提示您输入纯文本密码,并以如下形式返回加密密码:
      SECURE:ae1b6dedbf6b26aaab8bee815c1c1
    2. /opt/apigee/customer/application/usergrid.properties 设置以下令牌。如果该文件不存在,请创建:
      usergrid-deployment_cassandra.username=cassandra
      usergrid-deployment_cassandra.password=SECURE:ae1b6dedbf6b26aaab8bee815a910737c1c15b55f3504c23
      Caaab8bee815a910737c1c15b55f3504c23f3504c23
      如果您更改了用户名,请相应地设置 usergrid-deployment_cassandra.username 的值。

      确保在密码中包含“SECURE:”前缀。 否则,BaaS 堆栈会将值解读为未加密。

      注意:每个 BaaS 堆栈节点都有自己的唯一密钥,用于加密密码。因此,您必须在每个 BaaS 堆栈节点上分别生成加密值。
    3. usergrid.properties 文件的所有权更改为“apigee”用户:
      > chown apigee:apigee /opt/apigee/customer/application/usergrid.properties
    4. 配置堆栈节点:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure
    5. 重启 BaaS 堆栈:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid 重启
    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