Rotacionando Credenciais do Cluster
Descubra como rotacionar as credenciais dos clusters que você criou usando o Kubernetes Engine (OKE).
Para ativar a comunicação TLS segura (anteriormente SSL) de, para e dentro de clusters, o Kubernetes usa certificados PKI (Infraestrutura de Chave Pública) para autenticação. Para obter mais informações sobre certificados PKI e clusters do Kubernetes, consulte Certificados e requisitos PKI na documentação do Kubernetes.
Os clusters criados com o Kubernetes Engine têm CAs raiz PKI (Autoridades de Certificação) e chaves privadas para o cluster, o componente etcd e o componente front-proxy. Esses CAs raiz são usados para assinar os certificados e as chaves privadas usados no cluster. As CAs raiz, os certificados assinados e as chaves privadas usadas no cluster são coletivamente conhecidos como credenciais do cluster.
Em clusters que você cria com o Kubernetes Engine, as CAs raiz expiram após cinco anos. Para continuar usando um cluster, você precisa alterar (ou 'rotar') as credenciais do cluster antes do final do período de cinco anos. Além disso, sua organização pode ter diretrizes e políticas de segurança em vigor que exigem que você rotacione as credenciais do cluster com mais frequência (em alguns casos, com muito mais frequência). As mensagens informando sobre a expiração futura da credencial do cluster são mostradas na Console. Você também pode usar a Console, a CLI e a API para descobrir quando as credenciais do cluster estão prestes a expirar.
Ao rotacionar credenciais de cluster, você precisa atualizar clientes da API do Kubernetes que estavam usando as credenciais anteriores para se comunicar com a API do Kubernetes. Esses clientes da API do Kubernetes incluem arquivos kubeconfig e pods que se comunicam diretamente com a API do Kubernetes.
Você pode iniciar a rotação de credenciais do cluster a qualquer momento, mas deve iniciar a rotação de credenciais antes que as credenciais expirem.
Observe que, em um esforço para evitar a interrupção do serviço, se você não tiver iniciado a rotação de credenciais do cluster 90 dias antes da expiração das credenciais, o Kubernetes Engine tentará rotacionar as credenciais do cluster automaticamente. No entanto, recomendamos que você mesmo rotacione as credenciais do cluster, em vez de depender da rotação automática de credenciais do cluster. Para obter mais informações, consulte Rotação Automática de Credenciais de Cluster.
A rotação de credenciais do cluster é um processo de três etapas:
-
Etapa 1, Iniciar a fase Iniciar Rotação de Credencial: Durante a fase Iniciar Rotação de Credencial, novas CAs raiz, chaves privadas e certificados são criados. Você pode iniciar a fase Iniciar Rotação de Credencial a qualquer momento, mas deve iniciar a rotação de credencial antes que as credenciais expirem. Iniciar a rotação da credencial antes que as credenciais expirem também evitará a interrupção do serviço.
Ao iniciar a fase Iniciar Rotação de Credencial, você especifica explicitamente a duração de um 'período de atraso' antes que a fase Concluir Rotação de Credencial seja iniciada automaticamente. O período de atraso permite atualizar clientes da API do Kubernetes (Etapa 2). Durante o período de atraso, as credenciais legadas e as novas credenciais fornecem comunicação segura de, para e dentro do cluster. O período de atraso especificado não deve ser inferior a 1 dia e não superior a 90 dias. Você pode iniciar manualmente a fase Concluir Rotação de Credencial antes do final do período de atraso, desde que as novas credenciais tenham pelo menos 24 horas de duração e você tenha concluído com sucesso a Etapa 2.
Não inicie a Etapa 2 até que as novas CAs raiz, chaves privadas e certificados tenham sido criados.
Observação
Ao usar a CLI ou a API para iniciar a fase Iniciar Rotação de Credencial, especifique a duração do período de atraso no formato de duração ISO 8601. Por exemplo:- use
P5D
para especificar cinco dias - use
P5DT5H
para especificar cinco dias e cinco horas - use
P5DT5H5M
para especificar cinco dias, cinco horas e cinco minutos
Para obter mais informações sobre o formato de duração ISO 8601, pesquise on-line.
- use
- Etapa 2, Atualizar clientes de API do Kubernetes: Quando as novas CAs raiz, chaves privadas e certificados forem criados e dentro do período de atraso especificado (não menos de 1 dia e não mais de 90 dias):
- Configure novos arquivos kubeconfig para permitir o acesso ao cluster usando as novas credenciais e as credenciais legadas.
- Recrie ou reinicie os nós de trabalho que hospedam pods que se comunicam diretamente com o Servidor de API do Kubernetes (ou, para evitar a interrupção nos nós de trabalho, simplesmente reinicie os próprios pods). Se o cluster contiver nós virtuais, reinicie todos os pods em execução nos nós virtuais.
Não inicie a Etapa 3 até que você tenha configurado novos arquivos kubeconfig e tenha recriado ou reiniciado nós de trabalho (ou simplesmente reiniciado os pods).
- Etapa 3, Iniciar a fase Concluir Rotação da Credencial: Quando tiver concluído a Etapa 2 e dentro do período de atraso especificado (não menos de 1 dia e não mais de 90 dias), você poderá iniciar manualmente a fase Concluir Rotação da Credencial. Durante a fase Rotação Completa de Credenciais, os CAs raiz legados, as chaves privadas e os certificados são retirados e removidos. Inicie a fase Concluir Rotação de Credencial até 24 horas depois de iniciar a fase Iniciar Rotação de Credencial e somente depois de concluir a etapa 2. Desde que as novas credenciais tenham pelo menos 24 horas de duração, você poderá iniciar a fase de Rotação Completa de Credenciais assim que estiver pronto.
Se você não iniciar manualmente a fase Concluir Rotação de Credencial durante o período de atraso especificado (não menos de 1 dia e não mais de 90 dias), a fase Concluir Rotação de Credencial será iniciada automaticamente no final do período de atraso.
Quando a fase Concluir Rotação de Credencial estiver concluída, recomendamos substituir qualquer arquivo kubeconfig criado durante a etapa 2 (que conterá as credenciais legadas e as novas credenciais) por um novo arquivo kubeconfig que contenha apenas as novas credenciais. Se o cluster contiver nós virtuais, também recomendamos reiniciar todos os pods em execução nos nós virtuais.
A fase Iniciar Rotação da Credencial e a fase Concluir Rotação da Credencial são geradas como solicitações de serviço separadas. Para rastrear o andamento da fase Iniciar Rotação da Credencial e da fase Concluir Rotação da Credencial, exiba o status da solicitação de serviço correspondente. Consulte Exibindo Solicitações de Serviço.
Você pode rotacionar credenciais do cluster usando a Console, a CLI e a API.
Observe o seguinte ao rotacionar credenciais de cluster:
- A rotação de credenciais é suportada para clusters que executam o Kubernetes versão 1.20 ou posterior.
- O simples upgrade da versão do Kubernetes no plano de controle do cluster não rotaciona as credenciais. É necessário concluir todas as etapas do processo de rotação de credenciais.
- A fase Iniciar Rotação de Credencial e a fase Concluir Rotação de Credencial só podem começar quando todos os nós de trabalho no cluster (nós gerenciados, nós virtuais, nós autogerenciados) tiverem um status de PRONTO. Se o status de um ou mais nós de trabalho for alterado para NOT READY durante a rotação da credencial, as operações de rotação da credencial serão pausadas por até 24 horas, aguardando que todos os nós tenham novamente o status READY antes de serem retomados. Se um ou mais nós de trabalho ainda tiverem o status NOT READY após 24 horas, o tempo limite das operações de rotação de credenciais.
- Se a fase Iniciar Rotação de Credencial ou Concluir Rotação de Credencial falhar por algum motivo, as credenciais legadas continuarão funcionando e não serão desativadas até que expirem.
- Se você não iniciar manualmente a fase Concluir Rotação de Credencial dentro do período de atraso especificado (não menos de 1 dia e não mais de 90 dias), a fase Concluir Rotação de Credencial será iniciada automaticamente. Se você não tiver atualizado os clientes da API do Kubernetes antes do final do período de atraso, o cluster experimentará a interrupção do serviço.
Políticas do Serviço IAM Obrigatórias para Rotacionar Credenciais do Cluster
Para rotacionar credenciais de cluster, você deve pertencer a um grupo que recebeu permissão para gerenciar o cluster para o qual deseja rotacionar as credenciais ou estar no grupo Administradores da tenancy.
Rotação Automática da Credencial do Cluster
O Kubernetes Engine monitora seu ambiente do Kubernetes para identificar clusters com credenciais que estão se aproximando da data de expiração. Quando o Kubernetes Engine detecta um cluster com credenciais que devem expirar em 90 dias e que você não começou a rotacionar, o Kubernetes Engine tenta rotacionar as credenciais do cluster automaticamente em um esforço para evitar a interrupção do serviço. No entanto, observe que recomendamos que você mesmo rotacione as credenciais do cluster, em vez de depender do Kubernetes Engine para rotacionar automaticamente as credenciais do cluster para você.
O Kubernetes Engine rotaciona automaticamente as credenciais do cluster, independentemente da versão do Kubernetes em execução no cluster. Ao contrário da rotação manual de credenciais de cluster, a rotação automática de credenciais de cluster não exige que os clusters executem o Kubernetes versão 1.20 ou posterior.
Além disso, ao contrário da rotação manual de credenciais do cluster, o Kubernetes Engine rotaciona automaticamente as credenciais do cluster, independentemente do status dos nós de trabalho no cluster. A rotação automática de credenciais do cluster não exige que os nós de trabalho tenham um status PRONTO durante a fase Iniciar Rotação da Credencial ou a fase Concluir Credencial.
Quando o Kubernetes Engine inicia automaticamente a fase Iniciar Rotação de Credenciais da rotação de credenciais, ele notifica que a rotação automática de credenciais do cluster foi iniciada. Durante a fase Iniciar Rotação de Credenciais, novos CAs raiz, chaves privadas e certificados são criados. Quando a Fase Iniciar Credencial estiver concluída:
- Se as credenciais do cluster ainda não tiverem expirado, o Kubernetes Engine programará a fase Rotação Completa de Credenciais para iniciar três dias antes da data de expiração da credencial. Você pode iniciar manualmente a fase Rotação Completa de Credencial da rotação de credencial mais cedo, se preferir, concluindo a Etapa 3, Iniciar a fase Rotação Completa de Credencial (para evitar uma interrupção do serviço, primeiro conclua a Etapa 2, Atualizar clientes da API do Kubernetes).
- Se as credenciais do cluster já tiverem expirado ou expirarem dentro de três dias, o Kubernetes Engine iniciará a fase Rotação Completa de Credenciais imediatamente.
Antes de iniciar a fase Credencial Completa, para evitar uma interrupção do serviço, é sua responsabilidade atualizar os clientes da API do Kubernetes para:
- Configure novos arquivos kubeconfig para permitir o acesso ao cluster usando as novas credenciais e as credenciais legadas.
- Recrie ou reinicie os nós de trabalho que hospedam pods que se comunicam diretamente com o Servidor de API do Kubernetes (ou para evitar a interrupção dos nós de trabalho, basta reiniciar os próprios pods).
Observe que, se o Kubernetes Engine iniciar a fase Rotação Completa de Credenciais imediatamente porque as credenciais do cluster já expiraram, você não terá a oportunidade de atualizar os clientes da API do Kubernetes antes que as credenciais legadas sejam retiradas. Como resultado, o cluster experimentará uma interrupção de serviço até que você configure novos arquivos kubeconfig para permitir o acesso ao cluster usando as novas credenciais e recrie ou reinicie os nós de trabalho (ou reinicie os pods).
Usando a Console
Para verificar quando as credenciais do cluster devem expirar
- Abra o menu de navegação e selecione Serviços ao Desenvolvedor. Em Contêineres e Artefatos, selecione Clusters do Kubernetes (OKE).
- Escolha um Compartimento no qual você tem permissão para trabalhar.
- Na página Lista de Clusters, selecione o nome do cluster para o qual você deseja verificar a data de expiração da credencial.
- Na página Cluster, revise a data ao lado do rótulo Credenciais do cluster expiram em:.
Etapa 1: Iniciar a Fase de Rotação da Credencial Inicial
- Abra o menu de navegação e selecione Serviços ao Desenvolvedor. Em Contêineres e Artefatos, selecione Clusters do Kubernetes (OKE).
- Escolha um Compartimento no qual você tem permissão para trabalhar.
- Na página Lista de clusters, selecione o nome do cluster para o qual você deseja rotacionar credenciais.
- Na página Cluster, selecione Iniciar Rotação ao lado do label Credenciais do cluster expiram em:.
- Na caixa de diálogo Iniciar Rotação de Credencial, especifique por quanto tempo atrasar a inicialização automática da fase Concluir Rotação de Credencial. O período de atraso especificado deve ser:
- pelo menos 24 horas após iniciar a fase Iniciar Rotação da Credencial
- não mais de 90 dias após iniciar a fase Iniciar Rotação de Credencial
- Selecione Iniciar para iniciar a fase Iniciar Rotação da Credencial.
- Para exibir o andamento da solicitação de serviço Iniciar Rotação da Credencial, selecione Solicitações de Serviço em Recursos.
- Somente quando o status da solicitação de serviço Iniciar Rotação de Credencial for Concluído, passe para a atualização de clientes de API do Kubernetes (consulte Etapa 2: Atualizar Clientes de API do Kubernetes).
Etapa 2: Atualizar Clientes da API do Kubernetes
Quando o status da solicitação de serviço Iniciar Rotação de Credencial for Concluído:
- Configure novos arquivos kubeconfig para acessar o cluster usando as novas credenciais, usando o comando
oci ce cluster create-kubeconfig
(consulte Configurando o Acesso ao Cluster).Os arquivos kubeconfig contêm as novas credenciais e as credenciais legadas.
- Recrie ou reinicie os nós de trabalho que hospedam pods que se comunicam diretamente com o Servidor de API do Kubernetes (ou para evitar a interrupção dos nós de trabalho, basta reiniciar os próprios pods):
- Recrie ou reinicie nós de trabalho:
- Recrie um nó de trabalho, excluindo o nó de trabalho sem reduzir o pool de nós. Um novo nó de trabalho é criado para substituir o nó de trabalho excluído. Consulte Excluindo Nós de trabalho.
- Reinicie um nó de trabalho. Consulte Reinicializando uma Instância.
- Reinicie os pods em execução no cluster que se comunicam diretamente com o Kubernetes API Server. Se o cluster contiver nós virtuais, reinicie todos os pods em execução nos nós virtuais.
- Recrie ou reinicie nós de trabalho:
- Somente quando você tiver configurado novos arquivos kubeconfig e nós de trabalho ou pods recriados ou reiniciados, passe para concluir a rotação da credencial (consulte a Etapa 3: Iniciar a Fase Completa de Rotação da Credencial).
Etapa 3: Iniciar a Fase Completa de Rotação da Credencial
Ao iniciar a fase Iniciar Rotação de Credencial, você especifica explicitamente a duração de um período de atraso antes da inicialização automática da fase Concluir Rotação de Credencial. O período de atraso especificado não deve ser inferior a 1 dia e não superior a 90 dias. Durante o período de atraso, as credenciais legadas e as novas credenciais fornecem comunicação segura de, para e dentro do cluster.
Se preferir, em vez de aguardar o início automático da fase de Rotação Completa da Credencial no final do período de atraso, você poderá iniciar a fase de Rotação Completa da Credencial imediatamente, da seguinte forma:
- Verifique se:
- O status da solicitação de serviço Iniciar Rotação da Credencial é Concluído. Consulte Etapa 1: Iniciar a Fase de Rotação da Credencial Inicial.
- Clientes atualizados da API do Kubernetes. Consulte Etapa 2: Atualizar Clientes da API do Kubernetes.
- Na página Cluster, selecione Concluir Rotação Agora ao lado do label Concluir rotação de credencial em:.
- Na caixa de diálogo Rotação Completa, selecione a opção Li a mensagem acima para confirmar que você atualizou clientes de API do Kubernetes.
- Selecione Iniciar para iniciar a fase Concluir Rotação de Credencial, durante a qual as CAs raiz legadas, as chaves privadas e os certificados são retirados e removidos.
- Para exibir o andamento da solicitação de serviço Concluir Rotação de Credencial, selecione Solicitações de Serviço em Recursos.
Quando o status da solicitação de serviço Concluir Rotação de Credencial for Concluído, as novas credenciais estarão sendo usadas para comunicação segura com o cluster, de e dentro dele. As credenciais legadas foram descontinuadas e removidas.
- (Recomendado, mas não obrigatório) Substitua qualquer arquivo kubeconfig criado durante a etapa 2 (que conterá as credenciais legadas e as novas) por um novo arquivo kubeconfig que contenha apenas as novas credenciais, usando o comando
oci ce cluster create-kubeconfig
(consulte Configurando o Acesso ao Cluster). Se o cluster contiver nós virtuais, também recomendamos reiniciar todos os pods em execução nos nós virtuais.
Usando a CLI
Para obter informações sobre como usar a CLI, consulte Interface de Linha de Comando (CLI). Para obter uma lista completa de flags e opções disponíveis para comandos da CLI, consulte a Referência da Linha de Comando.
Iniciando a fase Iniciar Rotação de Credencial
oci ce cluster start-credential-rotation --auto-completion-delay-duration <number-of-days> --cluster-id <cluster-ocid>
Por exemplo:
oci ce cluster start-credential-rotation --auto-completion-delay-duration 'P5D' --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd
Exibindo o status das solicitações de serviço de Rotação de Credenciais
oci ce cluster credential-rotation-status get --cluster-id <cluster-ocid>
Por exemplo:
oci ce cluster credential-rotation-status get --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd
Iniciando a fase Concluir Rotação da Credencial
oci ce cluster complete-credential-rotation --cluster-id <cluster-ocid>
Por exemplo:
oci ce cluster complete-credential-rotation --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd
Usando a API
Execute as seguintes operações para rotacionar credenciais de cluster: