0

このドキュメントに従って、アプリケーション レイヤのシークレットの暗号化--database-encryption-keyを有効にするための KMS キーを提供するフラグを使用して、GKE クラスタ (1.13.6-gke.6) を作成しました。

次のコマンドを使用してシークレットを作成しました。

kubectl create secret generic dev-db-secret --from-literal=username=someuser --from-literal=password=somepass

したがって、私の仮定が正しければ、これらのシークレットは、クラスターの作成中に提供された KMS キーを使用して暗号化されて保存されます。ただし、使用したキーのすべてのバージョンを破棄した後でも、以下のマニフェストを使用して作成された Pod で確認できるだけでなく、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_USERNAMEecho SECRET_PASSWORD、ユーザー名とパスワードがコンソールにプレーンテキストで出力されます。

これは、暗号化が機能するはずの方法ですか?はいの場合、暗号化は正確にどこで行われていますか? 私は何を間違っていますか?シークレットは本当に暗号化されていますか?

4

1 に答える 1