Présentation
GKE sur AWS utilise des clés symétriques AWS Key Management Service (KMS) gérées par le client pour chiffrer les éléments suivants :
- Données d'état Kubernetes dans etcd
- Données utilisateur des instances EC2
- Volumes EBS pour le chiffrement au repos des données du plan de contrôle et du pool de nœuds
Pour les environnements de production, nous vous recommandons d'utiliser différentes clés pour la configuration et le chiffrement du volume. Pour réduire davantage les risques si une clé est compromise, vous pouvez également créer des clés différentes pour chacun des éléments suivants :
- Configuration du plan de contrôle du cluster
- Base de données du plan de contrôle du cluster
- Volume principal du plan de contrôle du cluster
- Volume racine du plan de contrôle du cluster
- Configuration du pool de nœuds
- Volume racine du pool de nœuds
Pour renforcer la sécurité, vous pouvez créer une stratégie de clé KMS AWS qui n'attribue que l'ensemble minimal d'autorisations requis. Pour en savoir plus, consultez la page Créer des clés KMS avec des autorisations spécifiques.
Créer une clé AWS KMS
Pour créer une clé, exécutez la commande suivante :
aws --region AWS_REGION kms create-key \
--description "KEY_DESC"
Remplacez les éléments suivants :
AWS_REGION
par le nom de votre région AWSKEY_DESC
par une description textuelle de votre clé
Pour chaque clé que vous créez, enregistrez la valeur KeyMetadata.Arn
dans la sortie de la commande pour une utilisation ultérieure.
Créer des clés KMS avec des autorisations spécifiques
Si vous créez des clés distinctes pour différentes fonctions, vous devez fournir une règle de clé KMS pour chaque clé, qui accorde les autorisations appropriées. Si vous ne spécifiez pas de stratégie de clé lorsque vous créez une clé, AWS KMS crée une stratégie de clé par défaut qui attribue à tous les comptes principaux du compte propriétaire un accès illimité à toutes les opérations de la clé.
Lorsque vous créez une stratégie de clé, vous devez autoriser une stratégie AWS IAM à accéder à la stratégie de clé. La stratégie de clé doit également autoriser votre compte à utiliser les stratégies IAM. Sans autorisation de la stratégie de clé, les stratégies IAM qui autorisent les autorisations n'ont aucun effet. Pour en savoir plus, consultez la section Règles de clé dans KMS AWS.
Le tableau suivant décrit les autorisations de chacun des rôles AWS IAM utilisés par GKE sur AWS.
Rôle d'agent de service de l'API GKE Multi-cloud | Rôle du plan de contrôle | Rôle du pool de nœuds | Rôle de service AWS pour l'autoscaling | |
---|---|---|---|---|
Chiffrement de la configuration du plan de contrôle du cluster | kms:Encrypt | kms:Decrypt | N/A | N/A |
Chiffrement des bases de données du plan de contrôle du cluster | N/A | kms:Encrypt kms:Decrypt |
N/A | N/A |
Chiffrement du volume principal du plan de contrôle du cluster | kms:GenerateDataKeyWithoutPlaintext | kms:CreateGrant | N/A | N/A |
Chiffrement du volume racine du plan de contrôle du cluster | N/A | N/A | N/A | Consultez les sections concernant les règles de clé qui autorisent l'accès à la clé gérée par le client. |
Chiffrement de la configuration du pool de nœuds | kms:Encrypt | N/A | kms:Decrypt | N/A |
Chiffrement du volume racine du pool de nœuds | N/A | N/A | N/A | Consultez les sections concernant les règles de clé qui autorisent l'accès à la clé gérée par le client. |
Autres conditions requises | kms:DescribeKey | N/A | N/A | N/A |