0

我正在研究SOPS作为我们加密秘密并将其推送到我们的存储库的可能解决方案。

我一直在玩它,这正是我所需要的,除了一个小问题。我希望这是我没有找到正确的文档。

为简单起见,假设我们有 2 个 AWS 账户,A 和 B。

在帐户 A 中,我们有:

  • 我们的“人类”用户将从他们的本地机器上加密/解密秘密。
  • KMS 密钥
  • 来自其他帐户的用户可以承担使用该 KMS 密钥的角色。

在账户 B 中:

  • 用户 Jenkins 脚本将用于解密机密

要使用我的本地用户加密文件,我正在做:

sops --kms arnofthekey -e -i filename.yaml

并解密它:

 sops --kms arnofthekey -d -i filename.yaml

奇迹般有效。

如果我以 Jenkins 用户的身份进行操作:

sops --kms arnOfTheKey+arnOfTheRole -e -i filename.yaml
sops --kms arnOfTheKey+arnOfTheRole -d -i filename.yaml

只要我在同一个地方加密/解密,一切都像魅力一样。

然后我尝试用 Jenkins 加密并在本地解密。我收到一条错误消息,通知我不允许担任 Jenkins 使用的角色。这是绝对正确的。

这是我不明白的,KMS 密钥在两种情况下都是相同的。但是,我可以看到加密文件保留了角色的记录。我想既然钥匙是一样的,这应该可以。

我缺少某种配置吗?

谢谢!

4

1 回答 1

0

再挖一点,我发现了一年前的一张公开票。我想,目前,这是无法直接用 sops 完成的事情。

https://github.com/mozilla/sops/issues/555

我找到的解决方案是让我的人类用户承担与 Jenkins 相同的角色。早该想到的:)

于 2020-07-06T18:54:28.367 回答