Я следовал этому документу для создания кластера GKE (1.13.6-gke.6) с флагом --database-encryption-key
, дающим ключ KMS для включения Шифрования секретов прикладного уровня .
Я создал секрет, используя следующую команду:
kubectl create secret generic dev-db-secret --from-literal=username=someuser --from-literal=password=somepass
Так что, если мое предположение верно, эти секреты хранятся в зашифрованном виде с использованием ключа KMS, предоставленного мной при создании кластера.,Однако даже после того, как я уничтожил все версии использованного ключа, я могу видеть секрет, хранящийся внутри GKE etcd
, используя kubectl get secret dev-db-secret -o yaml
, а также я могу видеть их в модуле, созданном с использованием приведенного ниже манифеста.:
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: mycontainer
image: redis
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: dev-db-secret
key: username
- name: SECRET_PASSWORD
valueFrom:
secretKeyRef:
name: test-secret
key: password
restartPolicy: Never
Если я выполняю в вышеупомянутом модуле и выполняю echo SECRET_USERNAME
и echo SECRET_PASSWORD
, я получаю имя пользователя и пароль, напечатанные на моей консоли в виде простого текста.
Это способшифрование должно работать?Если да, где именно происходит шифрование?Что я делаю неправильно?Секреты действительно зашифрованы?