Kubernetesは、クラスタの状態、アプリケーションの設定、シークレットを含むさまざまなデータを保存します。Kubernetesは、クラスタデータを静止状態で暗号化する機能をサポートしています。
本実習では、Kubernetesシークレットの暗号化に適した暗号化キーとencryption configを生成します。
暗号鍵を生成:
export ENCRYPTION_KEY=$(head -c 32 /dev/urandom | base64)
暗号化設定ファイル encryption-config.yaml
を作成:
envsubst < configs/encryption-config.yaml \
> encryption-config.yaml
ここでconfigs/encryption-config.yaml
が出てくるが、過去のコミットでこのファイルは削除されているため、Vimを使って次の内容のconfigs/encryption-config.yaml
を作成します。
kind: EncryptionConfig
apiVersion: v1
resources:
- resources:
- secrets
providers:
- aescbc:
keys:
- name: key1
secret: ${ENCRYPTION_KEY}
- identity: {}
その後に下記のコマンドを実行するとencryption-config.yaml
のsecret
の部分に暗号鍵が内包される。
envsubst < configs/encryption-config.yaml \
> encryption-config.yaml
なお、Issueも建てられています。
configs/encryption-config.yaml is missing #768
暗号化設定ファイル encryption-config.yaml
を各コントローラインスタンスにコピー:
scp encryption-config.yaml root@server:~/
Next: etcdクラスタのブートストラップ