【问题标题】:Is the information stored inside GKE "etcd" encrypted?存储在 GKE "etcd" 中的信息是否加密?
【发布时间】:2019-11-01 19:20:13
【问题描述】:

我正在使用 GKE(Google Kubernetes Engine) 1.13.6-gke.6,我需要为 PCI 目的提供 etcd 加密证据。
我使用了 --data-encryption-key 标志并使用了 KMS 密钥按照this 文档加密秘密。

我需要给出一组命令来证明存储在主节点etcd中的信息是加密的。

Here 是我们验证存储在普通 Kuebrnetes 集群(不是 GKE)中的机密是否已加密的方式。

我们知道 GKE 是托管服务和主节点由 GCP 管理。有没有办法访问 GKE "etcd" 以查看存储的秘密和静态数据?

【问题讨论】:

  • 您可以在您的帐户(GCP)中创建一个包含一个主节点和几个工作节点的 K8s 集群。主节点将安装etcd 作为其主组件的一部分。然后你创建一些秘密,configMaps,它们将存储在etcd。然后您可以使用etcd 来了解它们是如何存储的。 +1 好问题。
  • @RobertRanjan 但我们不会以这种方式使用 GKE,对吧?主节点独立于 Google Cloud,这样我就无法验证数据是否在 GKE 中加密。
  • 我从未使用过 GKE。如果我们无法访问 GKE 的 etcd,我们无法使用我上面提到的方式进行验证。
  • 这就是我要找的。一种访问 etcd 或通过任何其他方式验证加密的方法。
  • 如果 GKE 是一项服务,它的 etcd 包含更多与您的集群类似的信息。因此,除了他们的管理员之外,没有人可以访问它。 GKE 应该有自己的 PCI 合规性以及更多以保护客户/集群数据。 “您不应该尝试访问 GKE 的 etcd”。您应该寻找其他方式,例如阅读 GKE 的文档或与他们联系以找出您正在寻找的内容。

标签: kubernetes google-kubernetes-engine kubectl etcd


【解决方案1】:

参考:https://cloud.google.com/kubernetes-engine/docs/concepts/control-plane-security#etcd_security

在 Google Cloud 中,客户内容默认在文件系统层进行加密。因此,为 GKE 集群托管 etcd 存储的磁盘在文件系统层进行了加密。有关详细信息,请参阅静态加密。

【讨论】:

    【解决方案2】:

    为什么要证明信息是加密的? GKE 由Google Cloud's PCI DSS certification 覆盖,并且由于主服务器是“集群即服务”的一部分,因此应该超出您需要显示的范围,因为您不(也不能)控制存储实现。

    您可以做的一件事是使用Application-layer Secrets Encryption 使用存储在Cloud KMS 中的您自己的密钥来加密您的秘密。对于您的秘密,您将能够运行命令来证明额外的加密级别。

    【讨论】:

    • 感谢您提供 PCI 链接。它主要为我工作。但是,我只是好奇地学习。我遵循了这个 (cloud.google.com/kubernetes-engine/docs/how-to/…) 文档并创建了一个集群。使用kubectl create secret 命令创建一个 kuberntes 机密,有没有一种方法可以验证存储在 k8 集群中的机密是否已加密?
    • 是的,看起来你是对的,加密/解密发生在幕后。您可以做的一件事是销毁您的密钥以向自己证明它正在工作,但这会使加密数据无法使用,因此您无法在生产集群上这样做。
    • 即使在 KMS 中销毁密钥后,我也可以访问秘密 kubectl get secrets -o yaml。我仍然无法证明任何事情。
    • 您链接到的操作说明说“当您在 Cloud KMS 中销毁用于加密 GKE 中的 Secret 的密钥时,该 Secret 不再可用”所以如果您能证明这没有发生请向 Google 的云支持团队提交错误。
    • WARNING: Cluster etcd-cluster is DEGRADED with message: "Codes: [None] Messages: [u'Kubernetes Engine Service Agent account unable to use CloudKMS key configured for Application Level encryption. Please, refer to https://cloud.google.com/kubernetes-engine/docs/how-to/encrypting-sec rets to fix this.'].". 这是我在执行gcloud container cluster list 时看到的错误消息,但每个kubectl command 都有效。我想我肯定会报告错误或查询。
    猜你喜欢
    • 1970-01-01
    • 2011-07-04
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    相关资源
    最近更新 更多