34.5. データが暗号化されていることの確認
データは etcd に書き込まれる際に暗号化されます。API サーバーの再起動後、新たに作成されたか、または更新されたシークレットは、保存時に暗号化する必要があります。これを確認するには、etcdctl
コマンドラインプログラムを使用して、シークレットの内容を検索できます。
default
の namespace に、secret1
という新規シークレットを作成します。$ oc create secret generic secret1 -n default --from-literal=mykey=mydata
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
- 上記のコマンド出力には、aescbc プロバイダーが結果として生成されるデータを暗号化したことを示す k8s:enc:aescbc:v1: の接頭辞が付けられます。
シークレットが API 経由で取得される場合は、正しく復号化されていることを確認します。
$ oc get secret secret1 -n default -o yaml | grep mykey
これは mykey: bXlkYXRh と一致するはずです。