雲端與容器基礎
把資料庫的密碼存放在 Kubernetes 的 Secret 中。關於 Secret 的說明,下列何者正確?
- A放入 Secret 的值會自動以強力密碼加密,因此叢集內不論誰讀取,都無法得知原本的密碼
- BSecret 的值無法從容器參照,因此密碼必須寫在映像檔內的設定檔中
- C值在預設下只是以 Base64 表示,並不是加密,因此要同時限制可讀取的使用者並使用儲存時的加密
查看答案與解析
正確答案:C. 值在預設下只是以 Base64 表示,並不是加密,因此要同時限制可讀取的使用者並使用儲存時的加密
Secret 是把密碼、API 金鑰等機密值與映像檔及 Pod 定義分開管理,並以環境變數或檔案的形式傳給容器的資源。不過,寫在資訊清單(manifest)中的值只是以 Base64 表示,任何人都能還原。而且在預設下,會以未加密的狀態存放在儲存叢集資訊的 etcd 中。因此要同時採取以 RBAC 限縮可讀取 Secret 的使用者、啟用 etcd 儲存時的加密等對策。
- A. Base64 是編碼,不是加密。只要有讀取權限,任何人都能還原成原本的值。
- B. Secret 可以作為環境變數或檔案傳給容器。把密碼寫在映像檔中,能拉取映像檔的人就會知道。
- C. 正確。Base64 不是加密,因此要與權限限制及儲存時的加密搭配使用。