默认情况下,Cassandra 会在未启用身份验证的情况下安装。这意味着有权访问您的 Cassandra 服务器的任何用户都可以查询 Cassandra 数据库,而无需任何身份验证。您可以在安装 Edge 后启用身份验证,也可以在安装过程中启用身份验证。
如果您决定在 Cassandra 上启用身份验证,但不提供自己的任何凭据,则会使用以下默认凭据:
- 用户名 = 'cassandra'
- 密码 =“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.
此命令会自动重启管理服务器。
- 对以下每项服务重复执行第 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
- 如果您已安装管理服务器、消息处理器、路由器、Qpid 服务器或 Postgres 服务器,请参阅重置边缘密码,了解更新这些组件以使用新密码的过程。