Gerenciando usuários e funções
as instâncias IBM Cloud® Databases for Redis vêm com a autenticação ativada e usam o controle de acesso integrado do Redis. O Redis 5.x e mais antigo suportam apenas um único usuário do admin
. Redis 6 introduziu Suporte da Lista de Controle de Acesso(ACL). Faça upgrade para aproveitar as vantagens de vários usuários e autenticação
Gerenciamento de usuários Redis
O usuário administrativo
Ao provisionar uma nova instância em IBM Cloud, você recebe automaticamente acesso ao usuário Admin. Se você estiver usando Redis 5.x e versões anteriores, o usuário Admin é o único usuário disponível na sua instância. Se estiver usando Redis 6.x ou mais recente, você terá o usuário Admin e a capacidade de criar usuários e credenciais.
Para usar o usuário Administrador para se conectar à sua instância, primeiro configure a senha do Administrador.
Configuração da senha de administrador na interface do usuário
Defina sua senha de administrador por meio da interface do usuário, selecionando sua instância na lista de recursos no IBM Cloud Dashboard. Em seguida, selecione Configurações.. Em seguida, selecione Mudar senha do administrador de banco de dados
Configuração da senha de administrador na CLI
Use o comando cdb user-password
do plug-in da CLI do Cloud Databases para configurar a senha do admin
.
Por exemplo, para definir a senha de administrador de sua instância, use o seguinte comando:
ibmcloud cdb user-password <INSTANCE_NAME_OR_CRN> admin <NEWPASSWORD>
Definição da senha de administrador na API
O Foundation Endpoint que é mostrado na seção Overview Deployment Details (Visão geral dos detalhes da implementação) do seu serviço fornece o URL de base para acessar essa instância por meio da API. Use-o com o terminal Configurar a senha do usuário especificado para configurar a senha do administrador
curl -X PATCH `https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/admin` \
-H `Authorization: Bearer <>` \
-H `Content-Type: application/json` \
-d `{"password":"newrootpasswordsupersecure21"}` \
O usuário ' default
Antes da chegada do suporte da ACL do no Redis 6, o usuário do default
tinha permissões amplas e era usado
internamente por Cloud Databases e usuários externos para gerenciar instâncias do Databases for Redis.
Com o Redis 6.x, Databases for Redis não usa mais o usuário default
internamente. Em vez disso, as instâncias do Databases for Redis são gerenciadas pelo Cloud Databases ibm-user
.
Se suas instâncias usam atualmente o usuário default
(Redis 5.x), é possível continuar fazendo isso nas versões mais recentes, como 6.2. No entanto, o uso continuado do usuário default
após o upgrade para o v6.2 requer
uma mudança de senha, que deve limitar permissões. Essas limitações de permissão são uma mudança de comportamento esperada como parte de um upgrade de versão principal Especificamente, as permissões a seguir são restritas para o usuário
default
, começando com Redis v6.2:
config
: o usuáriodefault
não pode visualizar, incluir, atualizar ou excluir configurações do banco de dados. O usuáriodefault
também não pode criar ou gerenciar usuários e funções do banco de dados..acl
: O usuáriodefault
não pode criar novos usuários.
Fazendo upgrade para o Redis 6.2 e o usuário default
Se você estiver usando Redis 5, faça upgrade diretamente para Redis 6.2. Após o upgrade, teste completamente seus aplicativos usando o usuário default
para assegurar que seus aplicativos estejam totalmente funcionais. Fazer
upgrade para v6.2 e continuar a usar o usuário default
requer uma mudança de senha.
Para atualizar a senha do usuário default
, use um comando como:
ibmcloud cdb deployment-user-password <INSTANCE_NAME_OR_CRN> default <NEW PASSWORD>
Para obter mais informações, consulte Fazendo upgrade para uma nova versão principal
Gerenciamento de funções Redis
Controle de acesso baseado na função (RBAC)
O controle de acesso baseado na função (RBAC) permite configurar o nível de acesso que cada usuário possui.
O Databases for Redis atualmente suporta as seguintes funções:
- A função
admin
fornece controle total e acesso a todos os comandos e operações do administrador - A função
all
fornece acessoadmin
,read
ewrite
, fornecendo aos usuários o controle total sobre todos os comandos e operações - A função
read
permite o acesso somente leitura a comandos Os usuários com essa função podem executar operações de leitura, mas não podem executar operações de gravação - A função
write
permite acesso somente gravação a comandos. Os usuários com essa função podem executar operações de gravação, mas não podem executar operações de leitura.
Os comandos admin config get
, config reset
, acl whoami
, acl cat
, acl users
, acl genpass
, acl log
e acl help
estão disponíveis para uso
em admin
e all
, mas todos os outros comandos acl
e config
não estão.
Essas funções também podem ser combinadas para configurar o nível de acesso de um usuário
Combinações de funções RBAC
+
inclui comandos
-
exclui comandos
+@
inclui categorias de comando
-@
exclui categorias de comandos
admin
+read
: controle totaladmin
com a capacidade de executar operaçõesread
.admin
+write
: controle totaladmin
com a capacidade de executar operaçõeswrite
.admin
+all
: Simplifica paraall
, que incluiadmin
,read
ewrite
..read
+write
: os usuários com as funçõesread
ewrite
podem executar operaçõesread
ewrite
, mas eles não terão privilégios administrativos.read
+all
: Simplifica paraall
, que incluiadmin
,read
ewrite
..write
+all
: Simplifica paraall
, que incluiadmin
,read
ewrite
..admin
+read
+write
: controleadmin
total com a capacidade de executar as operaçõesread
ewrite
admin
+read
+all
: Simplifica paraall
, que incluiadmin
,read
ewrite
.admin
+write
+all
: Simplifica paraall
, que incluiadmin
,read
ewrite
.read
+write
+all
: Simplifica paraall
, que incluiadmin
,read
ewrite
.
Essas combinações fornecem diferentes níveis de controle de acesso. Escolha a combinação que se alinha com seus requisitos específicos e considerações de segurança..
Criar um usuário com funções RBAC por meio da API
Para criar um usuário usando funções RBAC, use um comando como:
Create User
POST /deployments/{id}/users/{user_type}
{
"user": {
"username": "#{USER}",
"password": "<PASSWORD>",
"role": "<+/-@all> <+/-@read> <+/-@write> <+/-@admin>"
}
}
Criar um usuário com funções RBAC por meio da CLI
Para criar um usuário usando funções RBAC, use um comando como:
ibmcloud cdb deployment-user-create <INSTANCE_NAME_OR_CRN> <USERNAME> <PASSWORD> -r "+@read +@write"
Para -r USER_ROLE
, use alguma combinação de <+/-@all>
<+/-@read>
<+/-@write>
<+/-@admin>
para conceder o acesso
Quando a tarefa for concluída, recupere as cadeias de conexão do novo usuário com o comando " ibmcloud cdb deployment-connections
.
Crie um usuário com funções RBAC por meio do Terraform
Para criar um usuário usando funções RBAC, use uma configuração como:
resource "ibm_database" "redis" {
name = "example-redis"
plan = "standard"
location = "us-south"
service = "databases-for-redis"
resource_group_id = data.ibm_resource_group.group.id
tags = ["tag1", "tag2"]
version = "6"
users {
name = "<user_name>"
password = "securepassword123"
role = "-@all +@read"
}
}
Para role
, use alguma combinação de <+/-@all>
<+/-@read>
<+/-@write>
<+/-@admin>
para conceder o acesso
Funções do Redis
O usuário administrativo e todos os outros usuários em sua instância têm acesso total ao conjunto de comandos do Redis, exceto para o subcomando config
e acl
-isso inclui o usuário administrativo. config get
,
config reset
, acl whoami
, acl cat
, acl users
, acl genpass
, acl log
e acl help
são utilizáveis
No Redis 6.x e versões mais recentes, qualquer usuário que você criar, seja por meio de Credenciais de Serviço, CLI, API ou diretamente no Redis, terá o mesmo acesso. Não é possível usar o próprio ' Redis para criar usuários ou funções com acesso limitado a chaves ou intervalos de chaves específicos, pois eles não são propagados automaticamente em uma implementação de cluster. Todos os outros meios para gerenciar os usuários garantem a propagação em todo o cluster.
Criação de usuários por meio da interface do usuário
- Navegue até o painel de serviço para o seu serviço.
- Selecione Credenciais de serviço.
- Selecione New Credential (Nova credencial).
- Escolha um nome descritivo para a sua nova credencial.
- (Opcional) Especificar se as novas credenciais usam um terminal público ou privado. Use
{ "service-endpoints": "public" }
/{ "service-endpoints": "private" }
no campo Incluir Parâmetros de Configuração Sequencial para gerar sequências de conexão usando o terminal especificado. O uso do terminal não é cumprido. Ele apenas controla quais nomes do host estão nas sequências de conexões. Os terminais públicos são gerados por padrão. - Clique em Add para provisionar as novas credenciais. Um nome de usuário, uma senha e um usuário associado são gerados automaticamente.
As novas credenciais aparecem na tabela, e as sequências de conexão estarão disponíveis como JSON em um campo click-to-copy sob Visualizar Credenciais.
Criando usuários por meio da API
O Foundation Endpoint que é mostrado na Visão geral do seu serviço fornece o URL de base para acessar essa instância por meio da API. Para criar e gerenciar usuários, use a URL de base com o endpoint de usuários:
curl -X POST https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/{user_type} \
-H "Authorization: Bearer $APIKEY" \
-H "Content-Type: application/json" \
-d "{"user": {"username": "user", "password": "v3ry-1-secUre-pAssword-2"}}" \
Para recuperar as sequências de conexões de um usuário, use a URL base com o terminal /users/{userid}/connections
.
Usuários de uso interno - Redis 6.x e mais recentes
Há quatro usuários reservados na sua instância. A modificação desses usuários faz com que sua instância se torne instável ou inutilizável.
ibm-user
- Um usuário interno 'admin
para gerenciar a instância e expor métricas.replication-user
- A conta do usuário usada para replicação.sentinel-user
- A conta do usuário para sentinelas manipularem o monitoramento e os failovers.admin
- O usuário padrão fornecido para acessar sua instância.