Armazenando segredos de chave-valor

É possível usar o IBM Cloud® Secrets Manager para armazenar e gerenciar segredos chave-valor, incluindo documentos JSON complexos, que são usados para acessar os sistemas protegidos que estão dentro ou fora da IBM Cloud.

Um segredo de chave-valor é um tipo de segredo de aplicativo que pode ser usado para manter dados sensíveis que são estruturados como um objeto JSON. Depois de criar o segredo, ele poderá ser usado para conectar seu aplicativo a um recurso protegido, como um banco de dados ou um app de terceiros. Seu segredo é armazenado de forma segura em sua instância de serviço dedicada do Secrets Manager, na qual é possível gerenciar centralmente seu ciclo de vida.

É possível armazenar várias versões por chave e acessar o histórico e os metadados do seu segredo de chave-valor com o Secrets Manager. Para obter mais informações, consulte Gerenciando segredos de valor da chave com o Vault.

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.

Criando segredos de chave-valor na IU

Para incluir um segredo de chave-valor usando a IU do Secrets Manager, conclua as etapas a seguir.

  1. No console IBM Cloud, 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 Key-value (Chave-valor ).

  5. Clique em Avançar.

  6. Inclua um nome e uma descrição para identificar facilmente seu 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. Selecione um arquivo ou insira o valor de segredo que você deseja associar ao segredo.

Deve-se inserir os dados de chave-valor como um objeto JSON. O tamanho máximo do arquivo é 512 KB.

  1. Clique em Avançar.
  2. Revise os detalhes do segredo.
  3. Clique em Incluir.

Criando segredos chave-valor a partir da CLI

Para criar um segredo chave-valor usando o plug-in da CLI do Secrets Manager, execute o comando ibmcloud secrets-manager secret-create. Por exemplo, o comando a seguir cria um segredo de valor-chave e armazena {"key1":"value1"} como seu valor.

ibmcloud secrets-manager secret-create \
  --secret-name="example-kv-secret" \
  --secret-description="Description of my key-value secret." \
  --secret-type="kv" \
  --secret-group-id="67d025e1-0248-418f-83ba-deb0ebfb9b4a" \
  --secret-labels='["dev","us-south"]' \
  --kv-data='{"key1": "val1","key2": "val2"}' \
  --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.

Criando segredos de chave-valor com a API

É possível criar segredos de chave-valor programaticamente usando a API do Secrets Manager.

O exemplo a seguir mostra uma consulta que pode ser usada para criar e armazenar um segredo de chave-valor. 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-kv-secret",
          "description": "Description of my kv secret.",
          "secret_type": "kv",
          "secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
          "labels": [
            "dev",
            "us-south"
          ],
          "data": {
            "key1": "val1",
            "key2": "val2"
          },
          "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"

Uma resposta bem-sucedida retorna o valor de ID do segredo, além de outros metadados. Para obter mais informações sobre os parâmetros de solicitação obrigatórios e opcionais, consulte Criar um segredo.

Criando segredos de valor de chave com o Terraform

É possível criar segredos de valor de chave programaticamente usando o Terraform para Secrets Manager.

Siga as melhores práticas do Terraform para proteger variáveis de entrada sensíveis como credenciais secretas. Para obter mais informações, consulte Proteger variáveis de entrada sensíveis.

O exemplo a seguir mostra uma configuração que pode ser usada para criar um segredo de valor de chave configurando valores sensíveis em um arquivo terraform.tfvars.

  1. Defina uma variável de entrada para os dados secretos de valor da chave em um arquivo variables.tf.
    variable "kv_secret_data" {
        description = "KV secret data"
        type        = map(any)
        sensitive   = true
    }
  1. Designe um valor à variável kv_secret_data em um arquivo terraform.tfvars.

    Ao configurar valores com um arquivo .tfvars, é possível separar valores sensíveis do restante de seus valores de variáveis e assegurar que seus usuários que trabalham com sua configuração saibam quais valores são sensíveis. Para propósitos de segurança, deve-se manter e compartilhar o arquivo .tfvars apenas com seus usuários que possuem o acesso apropriado Você também deve ter cuidado para não armazenar arquivos .tfvars com valores sensíveis no controle de versão, como Github, em texto não criptografado.

    kv_secret_data = {
        "key1" : "value1"
    }
    
  2. Crie o segredo do valor da chave no arquivo main.tf

O exemplo a seguir mostra uma configuração que você pode usar para criar um segredo de valor-chave.

    resource "ibm_sm_kv_secret" "sm_kv_secret"{
        instance_id = local.instance_id
        region = local.region
        name = "kv-secret-example"
        description = "Extended description for this key-value secret."
        labels = ["my-label"]
        secret_group_id = ibm_sm_secret_group.sm_secret_group_test.secret_group_id
        data = var.kv_secret_data
    }

Armazene e gerencie pares de valores-chave de forma programática usando o Terraform IBM Modules (TIM) para Secrets Manager Secret. Saiba mais em Terraform IBM Modules.