【问题标题】:how to git clone from a private github repo in an kubernetes init container如何从 kubernetes 初始化容器中的私有 github 存储库中进行 git 克隆
【发布时间】:2021-07-30 06:27:42
【问题描述】:

可以通过 https 或 ssh 从私有 repo 进行克隆无需使用我的 git 凭据创建机密文件? 我不明白为什么建议这样做,kubernetes 集群中的任何人如果他们愿意,可以查看我的 git 凭据...

前两个答案都提倡这种危险不安全的做法 see 和 also。

我也一直在研究 git-sync,但它也希望将 git 凭据公开给集群中的每个人 see this answer。

是否假定您为此拥有一个服务帐户?如果我没有服务帐户怎么办?我是不是运气不好?

【问题讨论】:

  • 您可以将环境变量与您的凭据一起传递到容器中吗?如果是这样,有办法做到这一点。
  • 问题是它是一个共享环境,所以有人可以执行到容器中并列出环境
  • 如果无法在其他人无法阅读的情况下将机密信息放入容器中,那么就没有安全的方法可以做到这一点。如果您只想从集群中的每个人本质上都应该有权访问的存储库中克隆,那么您可以使用部署密钥,这将限制对单个存储库的访问。
  • 在 github 中创建个人访问令牌,并仅授予令牌相关权限以拉取 repo。在你的初始化容器中使用它。

标签: git github kubernetes ssh


【解决方案1】:

凭证必须存在于某个地方,而 Secret 是它们的最佳位置。但是,您不会授予“任何人”的访问权限,您应该使用 Kubernetes RBAC 策略系统来限制对 Secret 对象的访问,仅限于需要它们的地方和人员。还有其他解决方案直接从其他数据库(Hashicorp Vault、AWS SSM、GCP SM 等)读取,但它们在访问控制方面通常是相同的,因为 pod 将使用其 ServiceAccount 令牌对其他系统进行身份验证。 ..在一个秘密中。如果你全力以赴,我相信你可以找到某种支持 GitHub 的 HSM,但除非你有数十万美元要烧掉,否则与仅仅编写更好的 RBAC 策略相比,这似乎有点矫枉过正。

【讨论】:

    猜你喜欢
    • 2016-11-11
    • 2022-08-08
    • 2018-03-14
    • 2016-02-14
    • 2020-09-23
    • 2021-02-04
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    相关资源
    最近更新 更多