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.
-
No console IBM Cloud, clique no ícone Menu
> Lista de recursos.
-
Na lista de serviços, selecione sua instância do Secrets Manager.
-
Na tabela Segredos, clique em Incluir.
-
Na lista de tipos de segredo, selecione o bloco Key-value (Chave-valor ).
-
Clique em Avançar.
-
Inclua um nome e uma descrição para identificar facilmente seu segredo.
-
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.
-
Opcional: inclua rótulos para ajudar a procurar segredos semelhantes em sua instância.
-
Opcional: inclua metadados em seu segredo ou em uma versão específica do seu segredo.
- Faça o upload de um arquivo ou insira os metadados e os metadados da versão no formato JSON
-
Clique em Avançar.
-
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.
- Clique em Avançar.
- Revise os detalhes do segredo.
- 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.
- 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
}
-
Designe um valor à variável
kv_secret_dataem um arquivoterraform.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.tfvarsapenas com seus usuários que possuem o acesso apropriado Você também deve ter cuidado para não armazenar arquivos.tfvarscom valores sensíveis no controle de versão, como Github, em texto não criptografado.kv_secret_data = { "key1" : "value1" } -
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.