Armazenando credenciais do usuário

É possível usar o IBM Cloud® Secrets Manager para armazenar um nome do usuário e uma senha que você pode usar para efetuar login e acessar um serviço protegido dentro ou fora do IBM Cloud.

As credenciais do usuário consistem em valores de nome de usuário e de senha que podem ser usados para efetuar login ou acessar um serviço ou aplicativo externo. Seu segredo é armazenado de forma segura em sua instância de serviço dedicada Secrets Manager. Na instância, é possível gerenciar centralmente o seu ciclo de vida, e controlar a lifespan do segredo, configurando uma data de validade, políticas de rotação automática e muito mais.

Nas credenciais de usuário, somente o valor da senha no pode ser girado. Depois que o valor do nome de usuário é definido, ele não pode ser alterado.

Para saber mais sobre os tipos de segredos que podem ser gerenciados no Secrets Manager, consulte O que é um segredo?

Antes de Iniciar

Antes de começar, certifique-se de ter o nível de acesso necessário. Para criar ou incluir segredos, é necessária a função de serviço Gravador ou superior.

Incluindo credenciais do usuário na IU

Para armazenar um nome do usuário e uma senha usando a IU do Secrets Manager, conclua as etapas a seguir.

  1. No console, clique no ícone Menu Ícone do menu > Lista de Recursos.

  2. Na lista de serviços, selecione sua instância do Secrets Manager.

  3. Na tabela Segredos, clique em Incluir.

  4. Na lista de tipos de segredo, selecione o bloco Credenciais do usuário.

  5. Clique em Avançar.

  6. Inclua um nome e uma descrição para identificar facilmente o segredo.

  7. Selecione o grupo secretoO ambiente e as restrições que contêm segredos em uma instância devem estar em conformidade com ele. Um usuário pode ser associado a um grupo de segredos para ativar o acesso e a colaboração. que você deseja atribuir ao segredo.

    Você não tem um grupo de segredos? No campo Grupo de segredos, é possível clicar em Criar para fornecer um nome e uma descrição para um novo grupo. Seu segredo é incluído no novo grupo automaticamente. Para obter mais informações sobre grupos de segredos, confira Organizando seus segredos.

  8. Opcional: inclua rótulos para ajudar a procurar segredos semelhantes em sua instância.

  9. Opcional: inclua metadados em seu segredo ou em uma versão específica do seu segredo.

    1. Faça o upload de um arquivo ou insira os metadados e os metadados da versão no formato JSON.
  10. Clique em Avançar.

  11. Insira o nome do usuário a senha que você deseja associar ao segredo.

Se você optar por gerar uma senha, o site Secrets Manager substituirá o valor existente por uma senha de 32 caracteres gerada aleatoriamente que contém letras maiúsculas, letras minúsculas, dígitos e símbolos. É possível escolher customizar ainda mais a senha gerada configurando seu comprimento (12-256 caracteres) e se deve incluir números, símbolos e letras maiúsculas.

  1. Opcional: ative as opções de expiração e rotação para controlar o tempo de vida do segredo.
  2. Para configurar uma data de expiração para o segredo, alterne o comutador de expiração para Sim.
  3. Para alternar seu segredo em um intervalo de 30, 60 ou 90 dias, alterne a opção Rotação automática do segredo para Sim.
  4. Clique em Avançar.
  5. Revise os detalhes do segredo.
  6. Clique em Incluir.

Incluindo credenciais do usuário por meio da CLI

Antes de começar, siga os documentos da CLI para definir seu endpoint de API.

Para armazenar um nome de usuário e uma senha usando o plug-in da CLI do Secrets Manager, execute o comando ibmcloud secrets-manager secret-create.

ibmcloud secrets-manager secret-create \
    --secret-name example-username-password-secret \
    --secret-description "Description of my user credentials secret" \
    --secret-type username_password \
    --secret-group-id bfc0a4a9-3d58-4fda-945b-76756af516aa \
    --secret-labels dev,us-south \
    --username-password-username example-username \
    --username-password-password example-password \
    --secret-rotation '{"auto_rotate": true, "interval": 10, "unit": "day"}' \
    --secret-custom-metadata '{"metadata_custom_key": "metadata_custom_value"}' \
    --secret-version-custom-metadata '{"custom_version_key": "custom_version_value"}'

Gerando uma senha aleatória a partir da CLI

É possível escolher customizar ainda mais a senha gerada configurando seu comprimento (12-256 caracteres) e se deve incluir números, símbolos e letras maiúsculas. Para gerar uma senha aleatória usando o plug-in da CLI do Secrets Manager, execute o comando ibmcloud secrets-manager secret-create e inclua o campo password_generation_policy

ibmcloud secrets-manager secret-create \
    --secret-name example-username-password-secret \
    --secret-description "Description of my user credentials secret" \
    --secret-type username_password \
    --secret-group-id bfc0a4a9-3d58-4fda-945b-76756af516aa \
    --secret-labels dev,us-south \
    --username-password-username example-username \
    --username-password-password example-password \
    --secret-rotation '{"auto_rotate": true, "interval": 10, "unit": "day"}' \
    --username-password-policy '{"length": 24, "include_digits": true, "include_symbols": false, "include_uppercase": true}' \
    --secret-custom-metadata '{"metadata_custom_key": "metadata_custom_value"}' \
    --secret-version-custom-metadata '{"custom_version_key": "custom_version_value"}'

O comando gera o valor do ID do segredo, além de outros metadados. Para obter mais informações sobre as opções de comando, consulte ibmcloud secrets-manager secret-create.

Incluindo credenciais do usuário com a API

É possível armazenar um nome do usuário e uma senha programaticamente chamando a API do Secrets Manager.

O exemplo a seguir mostra uma consulta que pode ser usada para criar um segredo de nome de usuário e senha. Ao chamar a API, substitua as variáveis de ID e o token IAM pelos valores que são específicos para a sua instância do Secrets Manager.

Você pode armazenar metadados que são relevantes para as necessidades de sua organização com os parâmetros de solicitação custom_metadata e version_custom_metadata. Os valores do version_custom_metadata são retornados apenas para as versões de um segredo. Os metadados personalizados do seu segredo são armazenados como todos os outros metadados, para versões de até 50 bits e você não deve incluir dados confidenciais.

curl -X POST
    -H "Authorization: Bearer {IAM_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "example-username-password-secret",
      "description": "Description of my user credentials secret",
      "secret_type": "username_password",
      "secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
      "labels": [
        "dev",
        "us-south"
      ],
      "username": "example-username",
      "password": "example-password",
      "rotation": {
        "auto_rotate": true,
        "interval": 10,
        "unit": "day"
      },
      "custom_metadata": {
        "metadata_custom_key": "metadata_custom_value"
      },
      "version_custom_metadata": {
        "custom_version_key": "custom_version_value"
      }
    }'
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

Gerando uma senha aleatória com a API.

É possível escolher customizar ainda mais a senha gerada configurando seu comprimento (12-256 caracteres) e se deve incluir números, símbolos e letras maiúsculas. Ao chamar a API Secrets Manager, inclua o campo password_generation_policy.

curl -X POST
    -H "Authorization: Bearer {IAM_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "example-username-password-secret",
      "description": "Description of my user credentials secret",
      "secret_type": "username_password",
      "secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
      "labels": [
        "dev",
        "us-south"
      ],
      "username": "example-username",
      "password": "example-password",
      "rotation": {
        "auto_rotate": true,
        "interval": 10,
        "unit": "day"
      },
      "password_generation_policy": {
        "length": 24,
        "include_digits": true,
        "include_symbols": false,
        "include_uppercase": true
      },
      "custom_metadata": {
        "metadata_custom_key": "metadata_custom_value"
      },
      "version_custom_metadata": {
        "custom_version_key": "custom_version_value"
      }
    }'
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

Incluindo credenciais do usuário com o Terraform

É possível armazenar um nome de usuário e senha programaticamente usando o Terraform para Secrets Manager.

É possível fornecer uma senha configurando o argumento password opcional na configuração do Terraform ou escolher gerar uma senha aleatória. Se você omitir o argumento password, o Secrets Manager gerará uma senha aleatória de 32 caracteres que contém letras maiúsculas, letras minúsculas, dígitos e símbolos. É possível escolher customizar ainda mais a senha gerada configurando seu comprimento (12-256 caracteres) e se deve incluir números, símbolos e letras maiúsculas.

Se você configurar o segredo com uma política de rotação automática, recomenda-se omitir o argumento password para que a senha inicial também seja gerada automaticamente Isso é para evitar uma situação de desvio do Terraform, em que, após a rotação automática, o Terraform detecta que a senha foi alterada fora do Terraform.

O exemplo a seguir mostra uma consulta que pode ser usada para criar um nome de usuário e senha secretos com uma senha gerada aleatoriamente e rotação automática ativada. Esse exemplo também mostra como especificar uma política de geração de senhas não padrão para o segredo.

    resource "ibm_sm_username_password_secret" "test_username_password_secret" {
        instance_id = local.instance_id
        region = local.region
        secret_group_id = "default"
        name = "test-user-creds-secret"
        username = "sm_username"
        rotation {
            auto_rotate = true
            interval = 10
            unit = "day"
        }
        password_generation_policy {
            length = 24
            include_digits = true
            include_symbols = false
            include_uppercase = true
        }
    }

O exemplo a seguir mostra uma consulta que pode ser usada para criar um nome de usuário e uma senha secreta com a senha fornecida na configuração do Terraform. A rotação automática é desativada neste exemplo, mas é possível girar a senha manualmente, modificando o valor do argumento password na configuração

    resource "ibm_sm_username_password_secret" "test_username_password_secret" {
        instance_id = local.instance_id
        region = local.region
        secret_group_id = "default"
        name = "test-user-creds-secret"
        username = "sm_username"
        password = "sm_password"
    }

Gerencie as credenciais de nome de usuário e senha de forma declarativa com o Terraform IBM Modules (TIM) para Secrets Manager Secret. Explore o Terraform IBM Modules para obter padrões.

Uma resposta bem-sucedida retorna o valor do ID do segredo, além de outros metadados. Para obter mais informações sobre os parâmetros de solicitação opcionais e necessários, confira a Referência de API.