Configurando o Secrets Manager no seu cluster Kubernetes Service
Ao integrar o IBM Cloud Secrets Manager ao seu cluster do IBM Cloud Kubernetes Service, você pode gerenciar centralmente os certificados de subdomínios do Ingress e outros segredos.
Cerca de Secrets Manager
Com Secrets Manager, você pode usar um único serviço para gerenciar seus segredos e controlar quem tem acesso a eles. Uma instância Secrets Manager não é provisionada automaticamente em seu cluster. No entanto, é possível usar uma única instância do Secrets Manager em vários clusters, e um único cluster pode ter mais de uma instância.
Que funcionalidade eu posso ganhar com Secrets Manager?
Com Secrets Manager, você pode:
- Crie segredos gerenciados do Kubernetes com certificados do Ingress TLS incluídos.
- Crie Kubernetes segredos de qualquer tipo usando o CRN de qualquer instância Secrets Manager você possui.
- Atualize automaticamente seus segredos em seu cluster em uma base regular.
- Controle as datas de expiração de seus certificados por meio do console do IBM Cloud.
- Controle quem tem acesso aos seus segredos, criando grupos secretos para usuários aprovados.
Observe que, para que seus segredos sejam atualizados automaticamente, você deve registrar pelo menos uma instância do Secrets Manager no seu cluster. Para obter mais informações, consulte “Registrando sua instância do Secrets Manager no seu cluster ”.
Secrets Manager Perguntas frequentes
Tenha em mente os seguintes pontos ao usar Secrets Manager.
- Quais tipos de segredos são suportados com Secrets Manager?
- O Secrets Manager suporta credenciais do IAM, segredos de chave-valor, credenciais do usuário, segredos arbitrários e segredos do Kubernetes. Para segredos do Kubernetes, o Secrets Manager oferece suporte tanto aos tipos de segredo TLS quanto aos não TLS (opacos). Com os segredos do TLS, é possível especificar um CRN de certificado. Com segredos que não são do tipo “ TLS ”, é possível especificar vários campos para extrair segredos que não sejam certificados. Se você não especificar um tipo de segredo ao criá-lo, o tipo “ TLS ” será aplicado por padrão. Para obter mais informações sobre segredos suportados, consulte Trabalhando com segredos de diferentes tipos.
- Os segredos que são armazenados em uma instância registrada Secrets Manager automaticamente atualizados?
- Sim. Se você tiver uma instância Secrets Manager registrada em seu cluster, os segredos no cluster são atualizados automaticamente com os valores de Secrets Manager uma vez por dia. Essas atualizações são feitas usando o valor do segredo do CRN correspondente.
- Os meus segredos são atualizados automaticamente se eu não criar e registrar uma instância Secrets Manager ?
- Se você não tiver uma instância Secrets Manager registrada em seu cluster, seus segredos Ingress padrão continuam a atualizar automaticamente a cada 90 dias e são aplicados em seu cluster. No entanto, quaisquer segredos que você tenha criado que referência o segredo Ingress padrão não são atualizados automaticamente.
- Cenário de Exemplo: Você tem um certificado Ingresso padrão no espaço de nomes
default. Você executa o comandoibmcloud ks ingress secret createe referencia o CRN do certificado Ingresso padrão para espelhar o certificado no espaço de nomesistio-system. Sem umSecrets Manager Por exemplo, o certificado Ingress padrão nodefaultnamespace é atualizado automaticamente. No entanto, você é responsável por atualizar regularmente o certificado noistio-systemespaço para nome com okubectlcomandos ou outro método de rotação. - Eu criei segredos que fazem referência ao certificado do Ingress padrão, mas não criei e registrei uma instância do Secrets Manager. Como gerencio meus segredos?
- Se você não registrar uma instância Secrets Manager, IBM Cloud Kubernetes Service somente atualiza automaticamente o segredo Ingress. Você é responsável por gerenciar quaisquer outros segredos usando comandos
kubectlou outro método de rotação. Se você tiver algum segredo que referência o certificado Ingress padrão, você deve removê-los usandoibmcloud ks ingress secret rm. - Qual é a diferença entre os comandos CLI
ibmcloud ks ingress instancee os comandos CLIibmcloud ks ingress secret? - Há dois conjuntos de comandos CLI que funcionam diretamente com instâncias Secrets Manager em IBM Cloud Kubernetes Service: os comandos
ibmcloud ks ingress secrete os comandosibmcloud ks ingress instance. Os comandosibmcloud ks ingress instancesão usados para gerenciar suas instâncias Secrets Manager. Os comandosibmcloud ks ingress secretsão usados para gerenciar seus segredos Ingress que são armazenados em uma instância Secrets Manager ou segredos que são escritos diretamente para o cluster.
Configurando sua instância do Secrets Manager
Siga as etapas para configurar o Secrets Manager no seu cluster.
Ativar a comunicação serviço-a-serviço
A integração do Secrets Manager com seu cluster do IBM Cloud Kubernetes Service requer autorização para comunicação entre serviços. Siga os passos para configurar a autorização. Para obter mais informações, acesse Integrações para Secrets Manager.
- No console da IBM Cloud, clique em Gerenciar > Acesso (IAM).
- Clique em Autorizações.
- Clique em Criar.
- Na lista de serviços de origem, selecione Kubernetes Service.
- Selecione a opção para escoar o acesso a Todos os recursos.
- Na lista de serviços de destino, selecione Secrets Manager.
- Selecione a opção para escoar o acesso a Todos os recursos.
- Na seção “Acesso ao serviço ”, marque a opção “Gerente ”.
- Clique em Autorizar.
Criar uma instância do Secrets Manager
Para criar uma instância do Secrets Manager na CLI ou na interface do usuário, consulte a documentação do Secrets Manager. Pode levar alguns minutos para que sua instância do Secrets Manager seja totalmente configurada.
Quando você cria uma instância do Secrets Manager, ela não é provisionada diretamente no seu cluster. Na próxima etapa, você deverá registrar sua nova instância do Secrets Manager no seu cluster.
Registre sua instância Secrets Manager para o seu cluster
Siga as etapas para registrar sua instância do Secrets Manager no seu cluster.
-
Obter o CRN da instância Secrets Manager. Na saída, o CRN está na linha ID.
ibmcloud resource service-instance <instance_name>Exemplo de saída
Name: my-secrets-manager-instance ID: crn:v1:bluemix:public:secrets-manager:us-south:a/1aa111aa1a11111aaa1a1111aa1aa111:111a1111-11a1-111a-1111-1a1a1a1111a1: GUID: 111a1111-11a1-111a-1111-1a1a1a1111a1 Location: us-south Service Name: secrets-manager Service Plan Name: standard Resource Group Name: default State: active Type: service_instance Sub Type: Created at: 2022-06-08T12:46:45Z Created by: user@ibm.com Updated at: 2022-06-08T12:54:45Z -
Registre a instância em seu cluster. Especificar a instância CRN encontrada na etapa anterior.
Se você deseja registrar uma instância em um cluster e também configurá-la como instância padrão, inclua a opção
--is-default. Caso contrário, é possível configurar uma instância padrão com o comandoibmcloud ks ingress instance default set.ibmcloud ks ingress instance register --cluster CLUSTER_NAME_OR_ID --crn INSTANCE_CRN [--is-default] -
Verifique se a instância Secrets Manager foi registrada para o cluster.
ibmcloud ks ingress instance ls --cluster CLUSTER_NAME_OR_IDExemplo de saída
Name Type Is Default Status Secret Group CRN my-secrets-manager-instance secrets-manager false created default crn:v1:bluemix:public:secrets-manager:us-south:a/1aa111aa1a11111aaa1a1111aa1aa111:111a1111-11a1-111a-1111-1a1a1a1111a1::
É possível especificar uma instância do Secrets Manager e um grupo de segredos ao criar um cluster com o ibmcloud ks cluster create classic ou ibmcloud ks cluster create vpc-gen2. Use a opção --sm-instance para registrar uma instância no cluster e a opção
--sm-group para especificar um grupo secreto que pode acessar os segredos no cluster. Consulte “Como registrar uma instância do Secrets Manager ao criar um cluster ”.
Configurar uma instância padrão Secrets Manager e regenerar seus segredos
Quando você configura uma instância padrão do Secrets Manager, todos os novos certificados de subdomínio de Ingresso são armazenados nessa instância.
-
Execute o comando para definir a nova instância padrão. Você pode, opcionalmente, especificar um grupo secreto que é permitido o acesso aos segredos na instância.
ibmcloud ks ingress instance default set --cluster CLUSTER_NAME_OR_ID --name INSTANCE_NAME --secret-group SECRET_GROUP_ID -
Gere novamente seus segredos. Quaisquer segredos que sejam gerenciados pela IBM, como seus segredos Ingress padrão, são carregados para a nova instância padrão. Esses segredos são atualizados automaticamente e o CRN é alterado para referencia a instância Secrets Manager.
- Liste os subdomínios nlb-dns do seu cluster.
ibmcloud ks nlb-dns ls --cluster CLUSTER_NAME_OR_ID ``` 2. Para cada subdomínio em seu cluster, execute o comando para regenerar seus segredos gerenciados IBM. Isto atualiza o CRN destes segredos para referencia o CRN da nova instância padrão Secrets Manager. Gerar novamente seus segredos está limitado a cinco vezes por semana. Siga os passos neste documento com cuidado, pois repetindo-os pode fazer com que você alcance o limite. Se você não regenerar seus segredos, ou se tiver atingido o limite, seus segredos serão enviados para sua instância do Secrets Manager no próximo ciclo de renovação. {: important} ```sh {: pre} ibmcloud ks nlb-dns secret regenerate --cluster CLUSTER_NAME_OR_ID --nlb-subdomain NLB_SUBDOMAIN ``` 3. Verifique se seus segredos de Ingresso padrão se regeneraram. Na saída, o CRN dos segredos Ingresso padrão deve conter `secrets-manager`. Pode levar vários minutos para que seus segredos se regenerem. Durante este processo, a coluna **Status** na saída diz `regenerating` e alterna para `created` quando a regeneração estiver completa. {: note} ```sh {: pre} ibmcloud ks ingress secret ls --show-crn --cluster CLUSTER_NAME_OR_ID ``` Exemplo de saída ```sh {: screen} Name Namespace Expiry Domains Status Type CRN secret-11111aa1a1a11aa1111111-000 default 3 months from now secret-11111aa1a1a.us-s…domain.cloud created TLS crn:v1:bluemix:public:secrets-manager:us-south:a/1aa111aa1:secret:a111aa11-11a1 secret-22222aa2a2a22aa2222222-000 default 3 months from now secret-22222aa2a2a.us-s…domain.cloud created TLS crn:v1:bluemix:public:secrets-manager:us-south:a/2aa222aa2:secret:a222aa22-22a2 ```
Controlar o acesso aos seus segredos com grupos secretos
Com o Secrets Manager, você pode usar grupos de segredos para controlar quem tem acesso aos segredos no seu cluster. Um grupo secreto pode ser atribuído a um grupo de acesso IAM para que apenas os usuários selecionados ou IDs de
serviço possam acessar os segredos dentro do grupo secreto. Para obter mais informações, consulte Organizando seus segredos.
Registrando uma instância do Secrets Manager ao criar um cluster
Se você estiver criando um novo cluster Classic ou VPC, poderá registrar uma instância existente do Secrets Manager e um grupo de segredos nesse cluster durante a criação. Os segredos do cluster são armazenados na instância do Secrets Manager e aplicados ao grupo de segredos.
A instância do Secrets Manager registrada durante a criação do cluster não se torna automaticamente a instância padrão do Secrets Manager. Você ainda deve configurar a instância padrão manualmente.
Se você criar um cluster na CLI com o ibmcloud ks cluster create classic ou ibmcloud ks cluster create vpc-gen2, você pode especificar uma instância Secrets Manager ou grupo secreto com as seguintes opções
de comando:
--sm-instance: Use esta opção para registrar uma instância Secrets Manager para o cluster especificando a instância CRN. Para localizar o CRN de uma instância do Secrets Manager, executeibmcloud resource service-instance <name_of_instance>ou navegue até sua lista de recursos na interface do usuário e clique na instância.--sm-group: Utilize esta opção para especificar o ID do grupo secreto. Para encontrar o ID do grupo secreto, executeibmcloud secrets-manager secret-groups.
Se você criar um cluster na UI, siga estas etapas para especificar uma instância Secrets Manager ou grupo secreto:
- Na seção Integrações da página de criação de cluster, selecione a opção para ativar o Secrets Manager.
- A partir do menu suspenso Secrets Manager drop down, selecione a instância que deseja se registrar no cluster. Se nenhuma instância estiver disponível, crie um.
- A partir do menu Secrets Manager group drop down, selecione o grupo secreto que deseja aplicar.
- Crie o cluster.
- Verifique se a instância Secrets Manager é registrada para o cluster.
- Quando seu cluster estiver totalmente provisionado, clique no cluster para visualizar os detalhes do cluster. Em Integrações, encontre o Secrets Manager em direção e clique em Gerenciar.
- No painel lateral, verifique se a instância correta está listada em Instâncias Registradas do Secrets Manager.
- Para registrar instâncias adicionais para o cluster, clique em Registrar instâncias.