Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Crittografia dei dati e gestione dei segreti
Crittografia dei dati a riposo
Esistono tre diverse opzioni AWS-native di archiviazione che puoi utilizzare con Kubernetes: EBS , EFS e FSx for Lustre. Tutti e tre offrono la crittografia di dati a riposo utilizzando una chiave gestita dal servizio o una chiave cliente principale (CMK). Per EBS è possibile utilizzare il driver di archiviazione integrato nell'albero o il driver EBS CSI. https://github.com/kubernetes-sigs/aws-ebs-csi-drivertls parametro a mountOptions nel tuo PV come in questo esempio:
apiVersion: v1 kind: PersistentVolume metadata: name: efs-pv spec: capacity: storage: 5Gi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: efs-sc mountOptions: - tls csi: driver: efs.csi.aws.com volumeHandle: <file_system_id>
Il driver FSx CSI
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: fsx-sc provisioner: fsx.csi.aws.com parameters: subnetId: subnet-056da83524edbe641 securityGroupIds: sg-086f61ea73388fb6b deploymentType: PERSISTENT_1 kmsKeyId: <kms_arn>
Importante
A partire dal 28 maggio 2020, tutti i dati scritti nel volume temporaneo nei pod EKS Fargate sono crittografati per impostazione predefinita utilizzando un algoritmo crittografico standard del settore. AES-256 Non è necessaria alcuna modifica all'applicazione in quanto la crittografia e la decrittografia vengono gestite senza problemi dal servizio.
Crittografa i dati inattivi
La crittografia dei dati inattivi è considerata una best practice. Se non sei sicuro che la crittografia sia necessaria, crittografa i tuoi dati.
Ruota periodicamente i tuoi CMK
Configura KMS per ruotare automaticamente i tuoi CMK. In questo modo le tue chiavi verranno ruotate una volta all'anno e le vecchie chiavi verranno salvate a tempo indeterminato in modo che i dati possano ancora essere decrittografati. Per ulteriori informazioni, consulta Rotating customer master keys https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html
Usa i punti di accesso EFS per semplificare l'accesso ai set di dati condivisi
Se disponi di set di dati condivisi con autorizzazioni di file POSIX diverse o desideri limitare l'accesso a una parte del file system condiviso creando diversi punti di montaggio, prendi in considerazione l'utilizzo dei punti di accesso EFS. Per saperne di più sull'utilizzo degli access point, vedi https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html. Today, se vuoi usare un access point (AP) dovrai fare riferimento all'AP nel parametro del PV. volumeHandle
Importante
A partire dal 23 marzo 2021, il driver EFS CSI supporta il provisioning dinamico degli EFS Access Point. Gli access point sono punti di ingresso specifici dell'applicazione in un file system EFS che facilitano la condivisione di un file system tra più pod. Ogni file system EFS può contenere fino a 120 PV. Per ulteriori informazioni, consulta Introducing Amazon EFS CSI dynamic provisioning
Gestione dei segreti
I segreti di Kubernetes vengono utilizzati per archiviare informazioni sensibili, come certificati utente, password o chiavi API. Sono mantenuti in etcd come stringhe codificate in base 64. Su EKS, i volumi EBS per i nodi etcd sono crittografati con crittografia EBS. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Un pod può recuperare gli oggetti segreti di Kubernetes facendo riferimento al segreto nel. podSpec Questi segreti possono essere mappati su una variabile di ambiente o montati come volume. Per ulteriori informazioni sulla creazione di segreti, vedere https://kubernetes.io/docs/concepts/configuration/secret/.
avvertimento
I segreti in un particolare namespace possono essere referenziati da tutti i pod nel namespace del segreto.
avvertimento
L'autorizzatore del nodo consente al Kubelet di leggere tutti i segreti montati sul nodo.
Usa AWS KMS per la crittografia in busta dei segreti di Kubernetes
Ciò consente di crittografare i tuoi segreti con una chiave di crittografia dei dati (DEK) univoca. Il DEK viene quindi crittografato utilizzando una chiave di crittografia a chiave (KEK) di AWS KMS che può essere ruotata automaticamente in base a una pianificazione ricorrente. Con il plug-in KMS per Kubernetes, tutti i segreti di Kubernetes vengono archiviati in etcd in testo cifrato anziché in testo normale e possono essere decrittografati solo dal server API Kubernetes. Per ulteriori dettagli, consulta la sezione Utilizzo del provider di crittografia EKS support for defense in depth
Verifica l'uso di Kubernetes Secrets
Su EKS, attiva la registrazione di controllo e crea un filtro CloudWatch metrico e un allarme per avvisarti quando viene utilizzato un segreto (opzionale). Di seguito è riportato un esempio di filtro metrico per il log di controllo di Kubernetes,. {($.verb="get") && ($.objectRef.resource="secret")} Puoi anche utilizzare le seguenti query con Log Insights: CloudWatch
fields @timestamp, @message | sort @timestamp desc | limit 100 | stats count(*) by objectRef.name as secret | filter verb="get" and objectRef.resource="secrets"
La query precedente mostrerà il numero di volte in cui è stato effettuato l'accesso a un segreto in un determinato periodo di tempo.
fields @timestamp, @message | sort @timestamp desc | limit 100 | filter verb="get" and objectRef.resource="secrets" | display objectRef.namespace, objectRef.name, user.username, responseStatus.code
Questa query mostrerà il segreto, insieme allo spazio dei nomi e al nome utente dell'utente che ha tentato di accedere al segreto e al codice di risposta.
Ruota periodicamente i tuoi segreti
Kubernetes non ruota automaticamente i segreti. Se devi ruotare i segreti, prendi in considerazione l'utilizzo di un archivio segreto esterno, ad esempio Vault o AWS Secrets Manager.
Usa namespace separati per isolare i segreti di diverse applicazioni
Se disponi di segreti che non possono essere condivisi tra le applicazioni in uno spazio dei nomi, crea uno spazio dei nomi separato per tali applicazioni.
Usa i montaggi dei volumi anziché le variabili di ambiente
I valori delle variabili di ambiente possono apparire involontariamente nei log. I segreti montati come volumi vengono istanziati come volumi tmpfs (un file system supportato da RAM) che vengono rimossi automaticamente dal nodo quando il pod viene eliminato.
Utilizza un provider di segreti esterno
Esistono diverse valide alternative all'utilizzo dei segreti di Kubernetes, tra cui AWS Secrets Manager
Con l'aumento dell'uso di archivi segreti esterni, è cresciuta anche la necessità di integrarli con Kubernetes. The Secret Store CSI Driver
Nota
Quando il driver CSI dell'archivio segreto deve recuperare un segreto, assume il ruolo IRSA assegnato al pod che fa riferimento a un segreto. Il codice per questa operazione può essere trovato qui. https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/credential_provider/
Per ulteriori informazioni su AWS Secrets & Configuration Provider (ASCP), consulta le seguenti risorse:
external-secrets