Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

34.5. データが暗号化されていることの確認

データは etcd に書き込まれる際に暗号化されます。API サーバーの再起動後、新たに作成されたか、または更新されたシークレットは、保存時に暗号化する必要があります。これを確認するには、etcdctl コマンドラインプログラムを使用して、シークレットの内容を検索できます。

  1. default の namespace に、secret1 という新規シークレットを作成します。

    $ oc create secret generic secret1 -n default --from-literal=mykey=mydata
  2. etcdctl コマンドラインを使用し、etcd からシークレットを読み取ります。

    $ 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. 上記のコマンド出力には、aescbc プロバイダーが結果として生成されるデータを暗号化したことを示す k8s:enc:aescbc:v1: の接頭辞が付けられます。
  4. シークレットが API 経由で取得される場合は、正しく復号化されていることを確認します。

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

    これは mykey: bXlkYXRh と一致するはずです。