Gerenciando usuários e funções

IBM Cloud® Databases for Redis as instâncias vêm com a autenticação ativada e usam o acesso incorporado do Redis control.They suportam vários usuários e autenticação por meio do suporte a listas de controle de acesso(ACL).

Gerenciamento de usuários Redis

O usuário administrativo

Ao provisionar uma nova instância em IBM Cloud, você recebe automaticamente acesso à conta de usuário “Admin”. Você também pode criar usuários e credenciais adicionais para a sua instância.

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 da sua instância, use o seguinte comando:

ibmcloud cdb user-password <INSTANCE_NAME_OR_CRN> admin <NEWPASSWORD>

Como definir a senha de administrador na API

O Endpoint da Fundação, exibido na seção “Visão geral dos detalhes da implantação” do seu serviço, fornece o endereço URL como base para acessar esta 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

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 as suas instâncias usam atualmente o usuário default, é possível continuar fazendo isso. No entanto, o uso contínuo do usuário default exige uma alteração de senha, o que deve limitar as 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 seguintes permissões são restritas para o usuário default:

  • config: o usuário default não pode visualizar, incluir, atualizar ou excluir configurações do banco de dados. O usuário default também não pode criar ou gerenciar usuários e funções do banco de dados..
  • acl: O usuário default não pode criar novos usuários.

Se você planeja continuar usando o usuário padrão, certifique-se de testar seus aplicativos completamente após atualizar a senha para verificar a compatibilidade. Para obter mais informações sobre como configurar o acesso e as permissões em Redis, consulte Suporte a ACL em Redis.

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 acesso admin, read e write, 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 total admin com a capacidade de executar operações read.
  • admin + write: controle total admin com a capacidade de executar operações write.
  • admin + all: Simplifica para all, que inclui admin, read e write..
  • read + write: Os usuários que possuem as funções read e write podem realizar as operações read e write, mas não terão privilégios administrativos.
  • read + all: Simplifica para all, que inclui admin, read e write..
  • write + all: Simplifica para all, que inclui admin, read e write..
  • admin + read + write: controle admin total com a capacidade de executar as operações read e write
  • admin + read + all: Simplifica para all, que inclui admin, read e write.
  • admin + write + all: Simplifica para all, que inclui admin, read e write.
  • read + write + all: Simplifica para all, que inclui admin, read e write.
    • read- write: O usuário terá apenas a função “ read ” e poderá realizar apenas operações do tipo “ read ”.

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 o seguinte comando:

curl -X POST "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database" \
     -H "Authorization: Bearer {iam_token}" \
     -H "Content-Type: application/json" \
     -d '{
           "user": {
             "username": "example-user",
             "password": "YourPassword123!"
           }
         }'

Para criar um usuário com função padrão, use o seguinte comando:

curl -X POST "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database" \
     -H "Authorization: Bearer {iam_token}" \
     -H "Content-Type: application/json" \
     -d '{
           "user": {
             "username": "example-user",
             "password": "YourPassword123!"
           }
         }'

Para alterar ou atualizar uma função, use o seguinte comando:

curl -X PATCH "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database/{username}" \
     -H "Authorization: Bearer {iam_token}" \
     -H "Content-Type: application/json" \
     -d '{
           "user": {
             "role": "+@read +@admin"
           }
         }'

Para alterar a senha de uma função, use o seguinte comando:

curl -X PATCH "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database/{username}" \
     -H "Authorization: Bearer {iam_token}" \
     -H "Content-Type: application/json" \
     -d '{
           "user": {
             "password": "NewSecurePassword456!"
           }
         }'

Para excluir um usuário, use o seguinte comando:

curl -X DELETE "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database/{username}" \
     -H "Authorization: Bearer {iam_token}" \
     -H "Accept: application/json"

Criar um usuário com funções RBAC por meio da CLI

Para criar um usuário usando funções RBAC, use o seguinte comando:

ibmcloud cdb user-create <CRN> <USERNAME> <PASSWORD> -r "<ROLE_STRING>"

Para -r USER_ROLE, use alguma combinação de <+/-@all> <+/-@read> <+/-@write> <+/-@admin> para conceder o acesso

Exemplo:

ibmcloud cdb user-create \
  crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:: \
  ibm_cloud_35ea37ad_119b_462d_bfd4_a4f001387cdf \
  Password1234567890 \
  -r "+@read +@write"

Saída de amostra:

Key                   Value
ID                    crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:task:49ec86e6-a2ac-4eb2-9c6b-48039c554f7e
Deployment ID         crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
Description           Creating user
Created At            2025-04-18T07:26:31Z
Status                running
Progress Percentage   0
...
Progress Percentage   66
...
Status                completed
Progress Percentage   100
Location              https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
OK

Para criar um usuário com função padrão, use o seguinte comando:

ibmcloud cdb user-create <CRN> <USERNAME> <PASSWORD>

Exemplo:

ibmcloud cdb user-create \
  crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:: \
  ibm_cloud_user_default_role \
  Password1234567890

Saída de amostra:

Key                   Value
ID                    crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:task:f225e6a3-3f4e-449d-bfce-a5e171719074
Deployment ID         crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
Description           Creating user
Created At            2025-04-18T07:47:27Z
Status                running
Progress Percentage   0
Status                completed
Progress Percentage   100
Location              https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
OK

Para alterar ou atualizar uma função, use o seguinte comando:

ibmcloud cdb redis user-set <CRN> <USERNAME> <ROLE_STRING>

Exemplo:

ibmcloud cdb redis user-set \
  crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:: \
  ibm_cloud_35ea37ad_119b_462d_bfd4_a4f001387cdf \
  "+@all"

Saída de amostra:

Key                   Value
ID                    crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:task:3a30ebc4-20d8-4004-8514-47c615276f81
Deployment ID         crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
Description           Updating user
Created At            2025-04-18T07:32:40Z
Status                running
Progress Percentage   0
Status                completed
Progress Percentage   100
Location              https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
OK

Para alterar a senha de uma função, use o seguinte comando:

ibmcloud cdb user-password <CRN> <USERNAME> <NEW_PASSWORD>

Exemplo:

ibmcloud cdb user-password \
  crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02:: \
  ibm_cloud_35ea37ad_119b_462d_bfd4_a4f001387cdf \
  Password1234567890123

Saída de amostra:

Key                   Value
ID                    crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02:task:c254ccef-9e9c-4375-ae0f-4c78173f6278
Deployment ID         crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02::
Description           Updating user
Created At            2025-04-18T07:41:32Z
Status                running
Progress Percentage   0
Progress Percentage   66
Status                completed
Progress Percentage   100
Location              https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02::
OK

Para excluir uma função, use o seguinte comando:

ibmcloud cdb user-delete <CRN> <USERNAME>

Exemplo:

ibmcloud cdb user-delete \
  crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02:: \
  ibm_cloud_35ea37ad_119b_462d_bfd4_a4f001387cdf

Saída de amostra:

Key                   Value
ID                    crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02:task:cc7effad-4fb2-4ae6-bd94-2d432b471e39
Deployment ID         crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02::
Description           Deleting user
Created At            2025-04-18T07:44:10Z
Status                running
Progress Percentage   0
Status                completed
Progress Percentage   100
Location              https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02::
OK

Crie um usuário com funções RBAC por meio do Terraform

Para criar uma formação com um usuário usando funções RBAC, use o seguinte comando:

resource "ibm_database" "redis" {
  name              = "Databases for Redis-jt-DO-NOT-DELETE"
  plan              = "standard"
  location          = var.region
  service           = "databases-for-redis"
  version           = "7.2"
  service_endpoints = "public-and-private"
  resource_group_id = data.ibm_resource_group.group.id
  tags              = ["redis", "user-mgmt"]
#   ##################################################
#   # 1. Create user with custom ACL role
#   ##################################################
  users {
    name     = "reader-user-with-role"
    password = "secureReadPass123456789"
    role     = "-@all +@read"
  }

Para role, use alguma combinação de <+/-@all> <+/-@read> <+/-@write> <+/-@admin> para conceder o acesso

Para criar uma formação com uma função padrão, use o seguinte comando:

resource "ibm_database" "redis" {
  name              = "Databases for Redis-jt-DO-NOT-DELETE"
  plan              = "standard"
  location          = var.region
  service           = "databases-for-redis"
  version           = "7.2"
  service_endpoints = "public-and-private"
  resource_group_id = data.ibm_resource_group.group.id
  tags              = ["redis", "user-mgmt"]
  ##################################################
  # 2. Create user with default role
  ##################################################
  users {
    name     = "default-user-role"
    password = "defaultPass123456789"
    # no `role` field → default ACL applies
  }

Os usuários podem ser configurados durante o provisionamento inicial do Terraform com funções padrão ou personalizadas. Após o provisionamento, não há suporte para operações como criação, exclusão, atualização de senhas ou alteração de funções para manter a consistência e a segurança.

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, qualquer usuário que você criar, seja por meio das Credenciais de Serviço, da CLI, da API ou diretamente em 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 específicas ou intervalos de chaves, uma vez que esses direitos não são propagados automaticamente em uma implantação em cluster. Todos os outros meios para gerenciar os usuários garantem a propagação em todo o cluster.

Criação de usuários pela interface do usuário

  1. Navegue até o painel de serviço para o seu serviço.
  2. Selecione “Credenciais de serviço ”.
  3. Selecione “Nova credencial ”.
  4. Escolha um nome descritivo para a sua nova credencial.
  5. (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.
  6. Clique em “Adicionar” para configurar 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 Endpoint da Fundação, exibido na Visão geral do seu serviço, fornece o end URL de base para acessar essa instância por meio da API. Para criar e gerenciar usuários, utilize a API base URL com o endpoint “users ”:

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

Existem quatro usuários reservados na sua instância. A alteração desses usuários faz com que sua instância se torne instável ou inutilizável.

  • ibm-user- Um usuário interno do admin para gerenciar a instância e disponibilizar 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.