Aidez à améliorer cette page
Vous souhaitez contribuer à ce guide de l'utilisateur ? Faites défiler cette page vers le bas et sélectionnez Modifier cette page sur GitHub. Vos contributions aideront à améliorer notre guide de l'utilisateur pour tous.
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.
Chiffrez les secrets de Kubernetes sur des clusters existants AWS KMS
Si vous activez le chiffrement des secrets, les secrets de Kubernetes sont chiffrés à l'aide du AWS KMS key
que vous sélectionnez. La KMS clé doit répondre aux conditions suivantes :
-
Symétrique
-
Peut chiffrer et déchiffrer des données
-
Créé en même temps Région AWS que le cluster
-
Si la KMS clé a été créée dans un autre compte, le IAMmandant doit avoir accès à la KMS clé.
Pour plus d'informations, voir IAMAutoriser les principaux d'autres comptes à utiliser une KMS clé dans le Guide du AWS Key Management Service développeur.
Vous ne pouvez pas désactiver le chiffrement des secrets après l'avoir activé. Cette action est irréversible.
- eksctl
-
Vous pouvez activer le chiffrement de deux manières :
-
Ajoutez le chiffrement à votre cluster à l'aide d'une seule commande.
Pour re-chiffrer automatiquement vos secrets, exécutez la commande suivante.
eksctl utils enable-secrets-encryption \
--cluster my-cluster
\
--key-arn arn:aws:kms:region-code
:account
:key/key
Pour vous désabonner du chiffrement automatique de vos secrets, exécutez la commande suivante.
eksctl utils enable-secrets-encryption
--cluster my-cluster
\
--key-arn arn:aws:kms:region-code
:account
:key/key
\
--encrypt-existing-secrets=false
-
Ajoutez le chiffrement à votre cluster à l'aide d'un fichier kms-cluster.yaml
.
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: my-cluster
region: region-code
secretsEncryption:
keyARN: arn:aws:kms:region-code
:account
:key/key
Pour re-chiffrer automatiquement vos secrets, exécutez la commande suivante.
eksctl utils enable-secrets-encryption -f kms-cluster.yaml
Pour vous désabonner du chiffrement automatique de vos secrets, exécutez la commande suivante.
eksctl utils enable-secrets-encryption -f kms-cluster.yaml --encrypt-existing-secrets=false
- AWS Management Console
-
Ouvrez la EKS console Amazon à l'adresse https://console.aws.amazon.com/eks/home#/clusters.
-
Choisissez le cluster auquel vous souhaitez ajouter KMS le chiffrement.
-
Cliquez sur l'onglet Présentation (cette option est sélectionnée par défaut).
-
Faites défiler la page jusqu'à Secrets encryption (Chiffrement des secrets) et sélectionnez Enable (Activer).
-
Sélectionnez une clé dans la liste déroulant et appuyez sur le bouton Enable (Activer). Si aucune clé n'est répertoriée, vous devez d'abord en créer une. Pour plus d'informations, consultez Création de clés.
-
Appuyez sur le bouton Confirm (Confirmer) pour utiliser la touche choisie.
- AWS CLI
-
-
Associez la configuration de chiffrement des secrets à votre cluster à l'aide de la AWS CLI commande suivante. Remplacez le exemples de valeurs
avec les vôtres.
aws eks associate-encryption-config \
--cluster-name my-cluster
\
--encryption-config '[{"resources":["secrets"],"provider":{"keyArn":"arn:aws:kms:region-code
:account
:key/key
"}}]'
L'exemple qui suit illustre un résultat.
{
"update": {
"id": "3141b835-8103-423a-8e68-12c2521ffa4d
",
"status": "InProgress",
"type": "AssociateEncryptionConfig",
"params": [
{
"type": "EncryptionConfig",
"value": "[{\"resources\":[\"secrets\"],\"provider\":{\"keyArn\":\"arn:aws:kms:region-code
:account
:key/key
\"}}]"
}
],
"createdAt": 1613754188.734
,
"errors": []
}
}
-
Vous pouvez contrôler l'état de votre mise à jour de chiffrement à l'aide de la commande suivante. Utilisez le cluster name
et le update ID
spécifiques qui ont été renvoyés dans la sortie précédente. Lorsqu'un état Successful
s'affiche, la mise à jour est terminée.
aws eks describe-update \
--region region-code
\
--name my-cluster
\
--update-id 3141b835-8103-423a-8e68-12c2521ffa4d
L'exemple qui suit illustre un résultat.
{
"update": {
"id": "3141b835-8103-423a-8e68-12c2521ffa4d
",
"status": "Successful",
"type": "AssociateEncryptionConfig",
"params": [
{
"type": "EncryptionConfig",
"value": "[{\"resources\":[\"secrets\"],\"provider\":{\"keyArn\":\"arn:aws:kms:region-code
:account
:key/key
\"}}]"
}
],
"createdAt": 1613754188.734>,
"errors": []
}
}
-
Pour vérifier que le chiffrement est activé dans votre cluster, exécutez la commande describe-cluster
. La réponse contient une chaîne EncryptionConfig
.
aws eks describe-cluster --region region-code
--name my-cluster
Une fois que vous avez activé le chiffrement sur votre cluster, vous devez chiffrer tous les secrets existants avec la nouvelle clé :
Si vous utilisez eksctl
, l'exécution de la commande suivante n'est nécessaire que si vous vous désabonnez du chiffrement automatique de vos secrets.
kubectl get secrets --all-namespaces -o json | kubectl annotate --overwrite -f - kms-encryption-timestamp="time value
"
Si vous activez le chiffrement secret pour un cluster existant et que la KMS clé que vous utilisez est supprimée, il n'y a aucun moyen de récupérer le cluster. Si vous supprimez la KMS clé, vous mettez définitivement le cluster dans un état dégradé. Pour plus d'informations, consultez la section Suppression de AWS
KMS clés.
Par défaut, la create-key
commande crée une KMSclé de chiffrement symétrique avec une politique de clé qui donne à l'administrateur racine du compte un accès aux AWS KMS actions et aux ressources. Si vous souhaitez limiter les autorisations, assurez-vous que les kms:CreateGrant
actions kms:DescribeKey
et sont autorisées dans la politique du principal qui appelle le create-cluster
API.
Pour les clusters utilisant le chiffrement d'KMSenveloppe, kms:CreateGrant
des autorisations sont requises. La condition n'kms:GrantIsForAWSResource
est pas prise en charge pour l' CreateClusteraction et ne doit pas être utilisée dans KMS les politiques visant à contrôler kms:CreateGrant
les autorisations accordées aux utilisateurs CreateCluster.