默认情况下,Cassandra 安装时未启用身份验证。这意味着,任何有权访问 Cassandra 服务器的人都可以在不进行任何身份验证的情况下查询 Cassandra 数据库。您可以在安装 Edge 后或在安装过程中启用身份验证。
如果您决定在 Cassandra 上启用身份验证,而不提供您自己的任何凭据,则它会使用以下默认凭据:
- username = 'cassandra'
- password = 'cassandra'
您可以使用此用户账号,为此用户账号设置其他密码,或创建新的 Cassandra 用户。使用 Cassandra CREATE/ALTER/DROP USER 语句添加、移除和修改用户。
如需了解详情,请参阅 Cassandra SQL shell 命令。
在安装期间启用 Cassandra 身份验证
您可以在安装时启用 Cassandra 身份验证。不过,虽然您可以在安装 Cassandra 时启用身份验证,但在安装期间应始终使用默认的 cassandra 用户名和密码 (‘cassandra’:’cassandra’)。如果您想使用非默认 Cassandra 凭据,则必须在安装后按照
此处列出的步骤重新启用 Cassandra 身份验证。
如果您想在全新 Cassandra 安装期间启用 Cassandra 身份验证,请在所有 Cassandra 节点的配置文件中添加以下属性:
CASS_AUTH=y CASS_USERNAME=cassandra CASS_PASSWORD=cassandra
然后,安装过程将设置 Cassandra,并启用身份验证和默认 cassandra:cassandra 凭据。
完成初始安装后,您可以执行以下一个或多个步骤:
- 按照 此处的过程,创建用于 Cassandra 身份验证的备用用户。
- 按照此处的步骤更改默认 Cassandra 用户的密码。
- 安装使用 Cassandra 的 Edge 组件,以使用您在上面设置的凭据。
连接到 Cassandra 的 Edge 组件
以下 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 凭据之前执行此步骤:
- 在 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.
此命令会自动重启 Management Server。
- 对以下每项服务重复执行第 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 用户 (
cassandra:cassandra),也可以创建全新的超级用户。为此,请按以下步骤操作:- 按照 首次启用 Cassandra 身份验证中的步骤操作。
- 使用 Cassandra 用户名和密码更新连接到 Cassandra 的 Edge 组件。
- 更改现有 Cassandra 用户的密码。
如果您已使用默认 Cassandra 凭据 (
cassandra:cassandra) 启用 Cassandra 身份验证,则可以按照以下步骤更改密码:- 更改 Cassandra 用户的密码。
- 使用 Cassandra 用户名和密码更新连接到 Cassandra 的 Edge 组件。
注意:“Cassandra”用户是 Cassandra 中的特殊用户。使用此用户进行身份验证需要 QUORUM 一致性。请参阅 关于 Cassandra 一致性级别。
在有多个数据中心时启用 Cassandra 身份验证
扩展数据中心时,请按照以下任一场景中的步骤操作,具体取决于您的设置。
场景 1:现有数据中心已启用 Cassandra 身份验证
如果现有数据中心已使用默认
cassandra:cassandra凭据启用 Cassandra 身份验证,请按照以下步骤操作:- 使用默认 Cassandra:Cassandra 凭据和 CASS_AUTH=y 设置新数据中心。请参阅首次启用 Cassandra 身份验证。
- 使用默认 Cassandra 凭据在新数据中心安装 Edge 组件。
如果已在现有数据中心内使用非默认凭据启用 Cassandra 身份验证,请按照以下步骤操作:
- 使用默认 Cassandra:Cassandra 凭据和 CASS_AUTH=y 设置新数据中心。请参阅首次启用 Cassandra 身份验证。
- 按照 首次启用 Cassandra 身份验证中的步骤,重复使用现有数据中心的凭证(如果现有数据中心使用的是非默认凭证)。
- 使用非默认 Cassandra 凭据在新数据中心安装 Edge 组件。
场景 2:现有数据中心未启用 Cassandra 身份验证
如果未启用 Cassandra 身份验证,请执行以下步骤:
- 在不进行 Cassandra 身份验证的情况下设置新数据中心。
- 按照 首次启用 Cassandra 身份验证中的步骤,在整个集群中启用 Cassandra 身份验证(扩容后)。
- 按照此处的步骤更新连接到 Cassandra 的 Edge 组件。
首次启用 Cassandra 身份验证
请按照以下步骤首次启用 Cassandra 身份验证,或创建新的 Cassandra 用户名和密码:
- 创建一个包含以下内容的静默配置文件:
# 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.
- 登录第一个 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 键空间运行修复。
- 在所有 Cassandra 节点上逐一重复第 1 步和第 2 步。
在安装 Cassandra 后更改 Cassandra 凭据
如需在安装 Cassandra 后更改 Cassandra 凭证,请执行以下操作:
- 使用
cqlsh工具和默认凭据登录任何一个 Cassandra 节点。您只需在一个节点上更改密码,该密码就会广播到环中的所有 Cassandra 节点:/opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p cassandra
其中:
- cassIP 是 Cassandra 节点的 IP 地址。
- 9042 是默认 Cassandra 端口。
- 默认用户为
cassandra。 - 默认密码为
cassandra。如果您之前更改过密码,请使用当前密码。如果密码包含任何特殊字符,请用英文单引号将其括起来。
- 在
cqlsh>提示符处执行以下命令,以更新密码:ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
- 退出
cqlsh工具,如以下示例所示:exit
- 如果您尚未安装管理服务器、消息处理器、路由器、Qpid 服务器或 Postgres 服务器,请在配置文件中设置以下属性,然后安装这些组件:
CASS_USERNAME=cassandra CASS_PASSWORD=NEW_PASSWORD
- 如果您已安装 Management Server、Message Processor、Router、Qpid 服务器或 Postgres 服务器,请参阅重置 Edge 密码,了解如何更新这些组件以使用新密码。