Menu Close

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:v1:v1: 前缀 为 aescbc 提供程序加密生成的数据。
  4. 在通过 API 检索时,验证 secret 是否被正确解密:

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

    这应与 mykey 匹配:bXlkYXRh