Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

34.5. 验证数据是否加密

在写入 etcd 时数据会被加密。在重启 API 服务器后,任何新创建或更新的 secret 都应在存储时加密。要检查,您可以使用 etcdctl 命令行程序检索您的 secret 的内容。

  1. default 命名空间中创建一个名为 secret1 的新 secret:

    $ oc create secret generic secret1 -n default --from-literal=mykey=mydata
  2. 使用 etcdctl 命令行,从 etcd 中读取该 secret:

    $ ETCDCTL_API=3 etcdctl get /kubernetes.io/secrets/default/secret1 -w fields [...] | grep Value

    […​] 必须是连接到 etcd 服务器的附加参数。

    最终的命令类似如下:

    $ ETCDCTL_API=3 etcdctl get /kubernetes.io/secrets/default/secret1 -w fields \
    --cacert=/var/lib/origin/openshift.local.config/master/ca.crt \
    --key=/var/lib/origin/openshift.local.config/master/master.etcd-client.key \
    --cert=/var/lib/origin/openshift.local.config/master/master.etcd-client.crt \
    --endpoints 'https://127.0.0.1:4001' | grep Value
  3. 验证以上命令的输出是否为前缀 k8s:enc:aescbc:v1:,它表示 aescbc 供应商已加密生成的数据。
  4. 通过 API 检索时验证 secret 是否已正确解密:

    $ oc get secret secret1 -n default -o yaml | grep mykey

    这应与 mykey: bXlkYXRh 匹配。