启用 Cassandra 身份验证

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

如果您决定在 Cassandra 上启用身份验证,它将使用以下默认设置 凭据:

  • 用户名 = 'cassandra'
  • 密码 = 'cassandra'

您可以使用此账号,为此账号设置其他密码,或创建新的 Cassandra 用户。使用 Cassandra CREATE/ALTER/DROP USER添加、移除和修改用户 语句。

如需了解详情,请参阅 Cassandra SQL shell 命令

启用 Cassandra 身份验证 安装

您可以在安装时启用 Cassandra 身份验证。不过,虽然您可以 身份验证,则无法更改默认用户名和密码。 您必须在安装 Cassandra 后手动执行此步骤。

如需在安装时启用 Cassandra 身份验证,请添加 CASS_AUTH 属性:

CASS_AUTH=y # The default value is n.

以下 Edge 组件访问 Cassandra:

  • 管理服务器
  • 消息处理器
  • 路由器
  • Qpid 服务器
  • Postgres 服务器

因此,在安装这些组件时,必须在 配置文件来指定 Cassandra 凭据:

CASS_USERNAME=cassandra
CASS_PASSWORD=cassandra

您可以在安装 Cassandra 后更改 Cassandra 凭据。但是,如果你 已安装管理服务器、邮件处理器、路由器、Qpid 服务器或 Postgres 服务器,您还必须更新这些组件以使用新凭据。

如需在安装 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 服务器,请参阅重置边缘密码,了解更新密码的过程 使用新密码。

启用 Cassandra 身份验证发布 安装

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

  • 使用 Cassandra 用户名和 密码。
  • 在所有 Cassandra 节点上,启用身份验证。
  • 在任意一个节点上设置 Cassandra 用户名和密码。您只需更改 凭据会广播到 响铃。

按照以下步骤更新与 Cassandra 通信的所有 Edge 组件 输入新凭据请注意,您在实际更新 Cassandra 之前 凭据:

  1. 在管理服务器节点上,运行以下命令:
    /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 chars

    此命令会自动重启管理服务器。

  2. 针对以下每项服务,重复第 1 步: <ph type="x-smartling-placeholder">
      </ph>
    • 所有消息处理器
    • 所有路由器
    • 所有 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 身份验证,并设置用户名和 密码:

  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 节点上更改密码, 广播:
    /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 [-u username -pw 'password'] repair system_auth

    只有在以下情况下,您才需要传递用户名和密码: 为 Cassandra 启用了 JMX 身份验证