Por padrão, o Cassandra é instalado sem a autenticação ativada. Isso significa que qualquer pessoa pode acessar Cassandra. Você pode ativar a autenticação depois de instalar o Edge ou como parte da instalação de desenvolvimento de software.
É possível adicionar, remover e modificar funções usando as instruções CREATE
/ALTER
/DROP ROLES
do Cassandra. Para ver mais informações, consulte os seguintes tópicos:
Algumas considerações gerais
- Quando você ativa a autenticação do Cassandra, um superusuário padrão cassandra (com a senha cassandra) é criado automaticamente pelo Cassandra. Esse usuário é muito conhecido e não deve ser usado para suas necessidades de produção. Além disso, a autenticação por meio desse superusuário requer consistência de quórum. Portanto, todas as conexões de autenticação do Cassandra por meio desse usuário exigem consistência mais rigorosa, o que resulta em um desempenho mais lento e menos tolerante a falhas.
- Um fluxo de trabalho típico envolve a ativação da autenticação no Cassandra, enquanto passa um nome de usuário e uma senha personalizados por meio do arquivo de configuração. Isso criará o usuário e a senha personalizados que podem ser usados com segurança de acordo com suas necessidades. A autenticação por esses usuários não tem restrições de consistência de quórum.
- Lembre-se de que, mesmo que um usuário personalizado tenha sido criado, o Cassandra ainda cria o superusuário padrão cassandra, e o cluster do Cassandra pode ser acessado por meio do superusuário. Normalmente, é necessário usar o comando ALTER ROLE para alterar a senha desse usuário cassandra para algo diferente do cassandra padrão depois que a autenticação do Cassandra for ativada em toda a Apigee. Mantenha um registro dessa senha para referência futura.
- NÃO altere a senha do papel que os componentes edge-* estão usando para autenticação, porque isso causará a interrupção do serviço imediatamente. Em vez disso, crie um novo usuário, modifique os componentes edge-* para usar o novo usuário e, depois da conclusão, elimine o usuário antigo usando o comando DROP ROLE.
- Para alterar o papel usado pelos componentes edge-* na autenticação do Cassandra, siga estas etapas:
- Siga as etapas da seção Ativar autenticação para criar um novo usuário. Se a autenticação já estiver ativada no cluster e você tiver alterado a senha do usuário cassandra, será necessário passar uma combinação de nome de usuário/senha de um usuário existente via
CASS_EXISTING_USERNAME
eCASS_EXISTING_PASSWORD
. - Após a conclusão, confirme com cqlsh se você consegue se conectar ao Cassandra por meio do usuário antigo e do novo.
- Aponte todos os componentes edge-* para usar o usuário recém-criado para se conectar ao Cassandra seguindo as instruções em Atualizar os componentes do Edge que se conectam ao Cassandra.
- Por fim, quando todos os componentes estiverem usando o novo usuário para se comunicar com o Cassandra, você poderá descartar o usuário antigo usando o comando
DROP ROLE
. Observe que o papel cassandra padrão não deve ser descartado. É possível descartar papéis personalizados que não estejam sendo usados pelos componentes edge-* para se comunicar com o Cassandra.
- Siga as etapas da seção Ativar autenticação para criar um novo usuário. Se a autenticação já estiver ativada no cluster e você tiver alterado a senha do usuário cassandra, será necessário passar uma combinação de nome de usuário/senha de um usuário existente via
- Lembre-se de atualizar o nome de usuário e a senha funcionais do Cassandra no arquivo de configuração que você usa para instalar ou fazer upgrade dos componentes do Edge. Isso elimina ou minimiza as interrupções durante as operações de borda.
Ativar a autenticação do Cassandra durante instalação
Você pode ativar a autenticação do Cassandra no momento da instalação.
Para ativar a autenticação do Cassandra no momento da instalação, inclua o CASS_AUTH
no arquivo de configuração para todos os nós do Cassandra:
CASS_AUTH=y # The default value is n.
Os seguintes componentes do Edge acessam o Cassandra:
- Servidor de gerenciamento
- Processadores de mensagens
- Roteadores
- Servidores Qpid
- Servidores Postgres
Ao instalar esses componentes, você deve definir um nome de usuário e uma senha no de configuração do Terraform:
CASS_USERNAME=cassandra_username CASS_PASSWORD=cassandra_password
É possível alterar as credenciais do Cassandra depois de instalá-lo. No entanto, se você tiver já tiver instalado o servidor de gerenciamento, processadores de mensagens, roteadores, servidores Qpid ou Postgres; você também precisa atualizar esses componentes para usar as novas credenciais.
Para alterar as credenciais do Cassandra depois de instalar o Cassandra:
- Faça login em qualquer nó do Cassandra usando a ferramenta
cqlsh
e o credenciais. Você só precisa alterar a senha em um nó e ela será transmitida a todos Nós do Cassandra no círculo:/opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra_username -p cassandra_password
Em que:
- cassIP é o endereço IP do nó do Cassandra.
- 9042 é a porta padrão do Cassandra.
- Execute o seguinte comando em cqlsh> solicitação para atualizar a senha:
ALTER ROLE <username> WITH PASSWORD='
'; - Saia da ferramenta
cqlsh
, como mostra o exemplo a seguir:exit
- Se você ainda não tiver instalado o servidor de gerenciamento, os processadores de mensagens,
Roteadores, servidores Qpid ou servidores Postgres, defina as seguintes propriedades no
de configuração e instale esses componentes:
CASS_USERNAME=cassandra_username CASS_PASSWORD=new_cassandra_password
- Se você já tiver instalado o Management Server, Processadores, roteadores, servidores Qpid ou servidores Postgres, em seguida, consulte Redefinir senhas de borda para conferir o procedimento de atualização dessas senhas. para usar a nova senha.
Ativar postagem de autenticação do Cassandra instalação
Para ativar a autenticação após uma instalação:
- Atualize todos os componentes do Edge que se conectam ao Cassandra com o nome de usuário do Cassandra e senha.
- Ative a autenticação em todos os nós do Cassandra. e definir o nome de usuário e a senha do Cassandra em qualquer nó. Você só precisa alterar credenciais em um nó do Cassandra e elas serão transmitidas para todos os nós do Cassandra na anel
Atualizar os componentes do Edge conectados ao Cassandra
Use o procedimento a seguir para atualizar todos os componentes do Edge que se comunicam com o Cassandra com as novas credenciais. Observe que você realiza esta etapa antes de realmente atualizar o Cassandra credenciais:
- No nó do Servidor de gerenciamento, execute o seguinte comando:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server store_cassandra_credentials -u cassandra_username -p cassandra_password
Também é possível transmitir um arquivo para o comando contendo o novo nome de usuário e a senha:
apigee-service edge-management-server store_cassandra_credentials -f configFile
Em que configFile contém o seguinte:
CASS_USERNAME=cassandra_username # Default is cassandra CASS_PASSWORD='cassandra_password' # Default is cassandra; wrap in single quotes if it includes special chars
Esse comando reinicia automaticamente o servidor de gerenciamento.
- Para cada um dos serviços a seguir, repita a Etapa 1:
- Todos os processadores de mensagens
- Todos os roteadores
- Todos os servidores Qpid (edge-qpid-server)
- Servidores Postgres (edge-postgres-server)
Ao repetir a Etapa 1 para cada serviço, substitua
edge-management-server
na acima pelo nome do serviço apropriado. Por exemplo, quando você executa a etapa para um serviço Roteador, use o seguinte comando:/opt/apigee/apigee-service/bin/apigee-service edge-router store_cassandra_credentials -u cassandra -p cassandra
Ativar a autenticação
Use o procedimento a seguir para ativar a autenticação do Cassandra e definir o nome de usuário e senha:
- Crie um arquivo de configuração silencioso com o conteúdo mostrado abaixo:
# 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_username # Default value is cassandra - don't use for production # Cassandra Password. If CASS_USERNAME does not exist, create SUPERUSER with this as password CASS_PASSWORD=cassandra_password # Default value is cassandra - don't use for production # 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 changed details of the default cassandra user(‘cassandra’) CASS_EXISTING_USERNAME=existing_cassandra_username # Password of an existing C* user. Only needed if you have disabled or change password of the default cassandra user(‘cassandra’) CASS_EXISTING_PASSWORD=existing_cassandra_password # Cassandra port CASS_PORT=9042 # The default port is 9042.
Faça login no primeiro nó do Cassandra e execute o seguinte comando:
apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG
Opcionalmente, você pode passar as propriedades como argumentos de comando para o script, conforme mostrado exemplo a seguir:
CASS_AUTH=y HOSTIP=$(hostname -i) CASS_PORT=9042 CASS_EXISTING_USERNAME=existing_cassandra_username CASS_EXISTING_PASSWORD=existing_cassandra_password CASS_USERNAME=cassandra_username CASS_PASSWORD=cassandra_password 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
Observações:
- Para o padrão as credenciais do Cassandra. O comando acima ativa a autenticação e reinicializações do Cassandra. Cassandra.
- Para credenciais não padrão, o comando também altera o fator de replicação, cria uma
superusuário e executa um reparo em
system_auth keyspace
.
- Repita as etapas 1 e 2 em todos os nós do Cassandra.