View a markdown version of this page

Gire um segredo de cluster em AWS PEÇAS - AWS PEÇAS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gire um segredo de cluster em AWS PEÇAS

Alterne o segredo do seu cluster para cumprir os requisitos de segurança e resolver possíveis comprometimentos. Esse processo exige colocar seu cluster em modo de manutenção.

nota

Por padrão, o AWS PCS criptografa o segredo do cluster com um Chave gerenciada pela AWS. Se, em vez disso, você a criptografar com uma chave gerenciada pelo cliente, certifique-se de que a política de chaves conceda à função vinculada ao serviço do AWS PCS acesso à chave. Caso contrário, o AWS PCS não poderá alternar o segredo. Para obter mais informações, consulte Use uma chave gerenciada pelo cliente para criptografar o segredo do cluster.

Pré-requisitos

  • Função do IAM com secretsmanager:RotateSecret permissão

  • Cluster em ACTIVE nosso UPDATE_FAILED estado

Procedimento

  1. Notifique os usuários do cluster sobre a próxima janela de manutenção.

  2. Coloque o cluster em modo de manutenção escalando todos os grupos de nós de computação para 0 de capacidade.

    1. Use a UpdateComputeNodeGroup API para definir o mínimo InstanceCount e o máximo como 0 InstanceCount para todos os grupos de nós de computação.

    2. Espere até que todos os nós parem.

    3. (Opcional) Elimine as filas do agendador com comandos Slurm antes de encerrar a capacidade de lidar com tarefas sem problemas.

    nota

    A rotação não exige nenhuma instância em execução. Se as instâncias ainda estiverem em execução quando você iniciar a rotação, a rotação falhará com o seguinte erro:

    All instances must be terminated before you rotate a secret. Set the minimum instance count to 0 to terminate active instances.
    nota

    Um grupo de nós de computação pode reportar ACTIVE enquanto as instâncias ainda estão sendo encerradas durante a redução de escala. Ele também pode relatar ACTIVE antes que qualquer instância exista durante o aumento de escala. O dimensionamento pode levar vários minutos, até cerca de 30 minutos. Enquanto um grupo de nós de computação estiverUPDATING, get-compute-node-group retorna os valores de escalabilidade de pré-atualização e o AWS PCS recusa novas solicitações de atualização até que a atualização seja concluída. Não trate ACTIVE como confirmação de que existem instâncias.

  3. Inicie a rotação por meio do Secrets Manager.

    • Método de console:

      1. Navegue até o Secrets Manager, selecione o segredo do cluster e escolha Rotate secret.

    • Método de API:

      1. Use a rotate-secret API Secrets Manager.

  4. Confirme se a rotação foi bem-sucedida.

    nota

    A rotate-secret chamada retorna HTTP 200 mesmo se a rotação falhar posteriormente. O resultado chega mais tarde, como um RotationSucceeded evento RotationFailed ou evento separado. A resposta 200 confirma apenas que o AWS PCS aceitou a solicitação, não que a rotação foi bem-sucedida.

    1. Execute describe-secret e confirme se o rótulo AWSCURRENT de teste foi movido para a nova versão e esta lastRotatedDate foi atualizada.

    2. Como alternativa, aguarde um RotationSucceeded evento na AWS CloudTrail.

    nota

    Use describe-secret em vez de list-secret-version-ids inspecionar versões. list-secret-version-idspode omitir a AWSPENDING versão mesmo quando você especifica--include-deprecated.

  5. Após a rotação bem-sucedida, restaure a capacidade do cluster.

    1. Use a UpdateComputeNodeGroup API para redefinir os grupos de nós para a min/max capacidade desejada.

    2. Para nós de AWS PCS-managed login: nenhuma ação adicional é necessária.

    3. Para nós de login BYO:

      1. Conecte-se aos nós de login.

      2. Atualize /etc/slurm/slurm.key com o novo segredo do Secrets Manager.

      3. Reinicie o Slurm Auth e o Cred Kiosk Daemon (sackd).

Recupere de uma versão pendente perdida

Uma rotação com falha pode encalhar uma versão na etiqueta AWSPENDING de teste e bloquear rotações posteriores com o seguinte erro:

A previous rotation isn't complete. That rotation will be reattempted.

O cancel-rotate-secret comando sozinho não remove o rótulo AWSPENDING de teste e é definido RotationEnabled como. false Para limpar a versão bloqueada, remova o rótulo AWSPENDING de teste da versão pendente:

aws secretsmanager update-secret-version-stage \ --secret-id secret-arn \ --version-stage AWSPENDING \ --remove-from-version-id pending-version-id

Verifique a rotação

Para confirmar se o controlador Slurm está acessível e se os nós estão íntegros, use e. scontrol ping scontrol show nodes Não use sinfo para verificar um cluster que não tem filas, porque não sinfo mostra nada nesse caso e não é uma verificação válida.

Para confirmar que os nós usam a chave atual, compare o SHA-256 hash do AWSCURRENT segredo decodificado em base64 com o hash dos nós: /etc/slurm/slurm.key

sha256sum /etc/slurm/slurm.key

Compare também o hash do nó com a AWSPREVIOUS versão para provar que os nós não estão em uma chave obsoleta. Recomendamos que você compare hashes em vez de imprimir material de chave.