View a markdown version of this page

Faire pivoter un secret de cluster dans AWS PIÈCES - AWS PIÈCES

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Faire pivoter un secret de cluster dans AWS PIÈCES

Faites pivoter le secret de votre cluster pour vous conformer aux exigences de sécurité et éviter les compromissions potentielles. Ce processus nécessite de mettre votre cluster en mode maintenance.

Note

Par défaut, AWS PCS chiffre le secret du cluster avec un Clé gérée par AWS. Si vous le chiffrez à l'aide d'une clé gérée par le client, assurez-vous que la politique de clé autorise le rôle lié au service AWS PCS à accéder à la clé. Sinon, le AWS PCS ne peut pas modifier le secret. Pour de plus amples informations, veuillez consulter Utiliser une clé gérée par le client pour chiffrer le secret du cluster.

Conditions préalables

  • Rôle IAM avec autorisation secretsmanager:RotateSecret

  • Cluster dans ACTIVE notre UPDATE_FAILED état

Procédure

  1. Avertissez les utilisateurs du cluster de la prochaine fenêtre de maintenance.

  2. Passez le cluster en mode maintenance en dimensionnant tous les groupes de nœuds de calcul à une capacité nulle.

    1. Utilisez l' UpdateComputeNodeGroup API pour définir min InstanceCount et max sur 0 InstanceCount pour tous les groupes de nœuds de calcul.

    2. Attendez que tous les nœuds s'arrêtent.

    3. (Facultatif) Videz les files d'attente du planificateur à l'aide des commandes Slurm avant de mettre fin à la capacité pour une gestion fluide des tâches.

    Note

    La rotation ne nécessite aucune instance en cours d'exécution. Si les instances sont toujours en cours d'exécution lorsque vous démarrez la rotation, celle-ci échoue avec l'erreur suivante :

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

    Un groupe de nœuds de calcul peut générer des rapports ACTIVE alors que les instances sont toujours en train de s'arrêter pendant la réduction d'échelle. Il peut également générer des rapports ACTIVE avant l'existence d'une instance lors de la mise à l'échelle. La mise à l'échelle peut prendre plusieurs minutes, voire environ 30 minutes. Lorsqu'un groupe de nœuds de calcul existeUPDATING, get-compute-node-group renvoie les valeurs d'échelle antérieures à la mise à jour, et AWS PCS refuse les autres demandes de mise à jour jusqu'à ce que la mise à jour soit terminée. Ne considérez pas l'existence d'instances ACTIVE comme une confirmation.

  3. Lancez la rotation via Secrets Manager.

    • Méthode de console  :

      1. Accédez à Secrets Manager, sélectionnez le secret de votre cluster, puis choisissez Rotation du secret.

    • Méthode API  :

      1. Utilisez l'rotate-secretAPI Secrets Manager.

  4. Vérifiez que la rotation a réussi.

    Note

    L'rotate-secretappel renvoie HTTP 200 même si la rotation échoue ultérieurement. Le résultat arrive plus tard, sous la forme d'un RotationSucceeded événement RotationFailed ou d'un événement distinct. La réponse 200 confirme uniquement que AWS PCS a accepté la demande, pas que la rotation a réussi.

    1. Exécutez describe-secret et vérifiez que l'étiquette AWSCURRENT intermédiaire a été déplacée vers la nouvelle version et qu'elle a été lastRotatedDate mise à jour.

    2. Vous pouvez également attendre un RotationSucceeded événement dans AWS CloudTrail.

    Note

    Utilisez describe-secret plutôt que list-secret-version-ids pour inspecter les versions. list-secret-version-idspeut omettre la AWSPENDING version même lorsque vous la spécifiez--include-deprecated.

  5. Une fois la rotation réussie, restaurez la capacité du cluster.

    1. Utilisez l' UpdateComputeNodeGroup API pour réinitialiser les groupes de nœuds à la min/max capacité souhaitée.

    2. Pour les nœuds de AWS PCS-managed connexion : aucune action supplémentaire n'est requise.

    3. Pour les nœuds de connexion BYO :

      1. Connectez-vous aux nœuds de connexion.

      2. Mettez à jour /etc/slurm/slurm.key avec le nouveau secret de Secrets Manager.

      3. Redémarrez le démon Slurm Auth et Cred Kiosk (sackd).

Restaurer après une version en attente bloquée

Un échec de rotation peut bloquer une version sur l'étiquette AWSPENDING de test et bloquer les rotations ultérieures avec l'erreur suivante :

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

La cancel-rotate-secret commande à elle seule ne supprime pas AWSPENDING l'étiquette intermédiaire et elle est définie RotationEnabled surfalse. Pour effacer la version bloquée, supprimez l'étiquette AWSPENDING intermédiaire de la version en attente :

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

Vérifiez la rotation

Pour confirmer que le contrôleur Slurm est accessible et que les nœuds sont sains, utilisez scontrol ping et. scontrol show nodes Ne l'utilisez pas sinfo pour vérifier un cluster qui n'a pas de files d'attente, car cela ne sinfo montre rien dans ce cas et ce n'est pas une vérification valide.

Pour confirmer que les nœuds utilisent la clé actuelle, comparez le SHA-256 hachage du AWSCURRENT secret décodé en base64 avec le hachage de /etc/slurm/slurm.key sur les nœuds :

sha256sum /etc/slurm/slurm.key

Comparez également le hachage du nœud à la AWSPREVIOUS version pour prouver que les nœuds ne sont pas sur une clé obsolète. Nous vous recommandons de comparer les hachages plutôt que d'imprimer les informations clés.