问题标签 [google-cloud-kms]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
291 浏览

google-cloud-platform - Google Cloud - 保险柜存储、用户名和密码

我在谷歌云上有一个 Windows 服务器,必须创建一个本地用户和密码才能运行该应用程序。

我想将这些凭据存储到谷歌云的保险库中吗?谷歌云中有这样的服务吗?因此,当 ansible deploy 使用这些凭据进行身份验证时

在AWS我们有参数存储,但我不太确定在谷歌云..任何想法都非常感谢。

KMS 保险库,但不是真正的密码管理器

0 投票
0 回答
265 浏览

ecdsa - 使用 Google Cloud Key Management Service 签署以太坊交易

我一直在为以太坊交易管理器编写签名服务,我需要使用Google KMS Golang APIs签署以太坊交易。我将尝试在下面总结我面临的问题。

以太坊需要在 R 中使用紧凑型 RLP 编码的 65 字节 ECDSA 签名 || 小号 || V 格式。另一方面,Google KMS 的 ECDSA 签名具有额外的标头组件(R 长度、S 长度等)以及可变长度的 R 和 S 组件。这使得这些签名与以太坊交易签名不兼容。

解决此问题的一种方法是从从 Google KMS 获得的 ecdsa 签名中解析 R 和 S 字节,计算并将 V 字节添加到末尾,并使用此签名来获得签名的以太坊交易。像这样的东西:

但是,由于以下一个或多个原因,这可能会失败:

  • 通过解析 R 和 S 分量并添加 V 分量来创建 65 字节长度的紧凑 ECDSA 签名可能和听起来一样不可信。上面提到的 R 和 S 组件对于标准 ECDSA 签名并不总是 32 字节长度,这意味着通过连接组件创建的 ECDSA 签名可能并不总是导致 64 字节。
  • 目前在以太坊中签名的交易是在 RLP 编码交易后从 Keccak-256 摘要哈希创建的,如下所示: Google KMS 中的非对称 ECDSA密钥签名不支持 Keccak-256 SHA3 消息摘要。将 SHA-256 摘要用于以太坊交易是否有效?IMO 这将失败,因为所有交易签名验证都发生在 RLP 编码的 Keccak 哈希上。
  • 在这一点上,在检查了函数的secp256k1 实现之后,我不太确定如何计算 ECDSA 签名的 V 分量secp256k1_ecdsa_sign_recoverable()

我该如何解决上述问题,以便能够使用 Google KMS 的非对称椭圆曲线签名算法创建可验证的签名以太坊交易?

0 投票
1 回答
4245 浏览

google-cloud-functions - 资源...密钥的权限“cloudkms.cryptoKeyVersions.useToDecrypt”被拒绝

我正在使用 Google Cloud Functions 构建一个 http 端点。我有一个加密的秘密存储为一个文件,该文件在函数中加载和解密,以防止我的秘密存储在代码中。通常我从谷歌云存储中动态加载一些东西,但似乎 KMS 更适合这个目的。

使用 KMS 的代码如下所示:

一切都在本地运行良好,但当使用 http 触发器调用时,我似乎无法让该功能正常工作。检查日志我看到了这个:

我已经尝试了各种可用的 IAM 权限(包括所有者),所以看来我必须有更深的误解。

这可能与我无法让 Google Cloud Build 部署该功能的另一个问题有关。它在没有帮助的情况下出错:

您似乎不需要任何 KMS 权限来部署functions deploy name --trigger-http --runtime=nodejs10 --entry-point=fname --project=project,就像我说的那样,当我在gcloud deploy本地运行时它工作正常,所以我不确定为什么会失败。我们有几个云功能设置了类似的部署过程,所以似乎有一些关于 KMS 工作方式的不明显或破坏的东西对我有用,但也许这是一个红鲱鱼。

如果有更好的方法来为此目的使用 KMS,我会全力以赴!

0 投票
1 回答
881 浏览

java - 使用 Google KMS 和 Entrust 证书签署 PDF 文档

我正在尝试通过使用来自 Google KMS 的私钥生成的 CA (Entrust) 证书在 pdf 文档中进行有效签名(私钥永远不会从 KMS 中流出)。证书链为:[entrustCert, middle, rootCert]

按照我用来实现这一点的代码部分:

这是Google Cloud 的功能 - 创建和验证数字签名以进行签名验证:

目前我正在解决以下问题:

  1. 每个签名都无效:自应用签名以来,文档已被更改或损坏。
  2. 来自 Google 的签名验证始终是错误的。
0 投票
1 回答
130 浏览

google-compute-engine - 用于 kms 的 Python 身份验证

我是 google cloud kms 产品的新手,是否有关于如何使用 python 验证(来自第三方服务器)kms 的教程?目标是访问公钥,加密数据(异步)。另一台服务器将拥有更多权限并且能够解密。我不想使用 gcloud shell 客户端。

0 投票
1 回答
1087 浏览

java - 无法从 Spring Cloud 配置或环境变量中解密属性

我正在尝试让我的 KMS 库(在此处找到)来解密来自我的 application.yml 的项目,这些项目来自谷歌云配置服务器或环境变量。

在玩耍时,我尝试了多种方案来使其正常工作。理想情况下,我希望能够执行以下操作:

username: '{cipher}${db_username}${db_username}我从谷歌云配置中读取的属性或环境变量在 哪里。

到目前为止,我已经尝试过:

✅<code>username: ${username} -> 成功地从云配置或环境变量中读取纯文本属性。(无加密)

✅<code>username: '{cipher}MyEncodedString' -> Success - 解码提供的内联字符串

❗️ username: '{cipher}${username}'-> 我相信这是在尝试使用文字字符串${username}

❗️ username: '{cipher}'${username}-> 格式无效/无法读取

因为当我将字符串内联时我可以看到我的解码正在工作,所以我不认为这是解码器的问题。

我也可能很笨,这不是我想要做的场景,但对我来说,将这些存储在配置区域并让应用程序/配置文件拉入并解密它需要的内容似乎是合乎逻辑的。

如果它有所作为,而在这一点上我觉得没有,我正在尝试在 Google Cloud Run + Java + Jib 上完成所有这些

0 投票
1 回答
724 浏览

java - 谷歌云 KMS java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;CLjava/lang/Object;)V

我正在为 KMS 使用 java 客户端库。此处显示的 KeyManagementServiceClient.create() 方法正在引发上述异常。

番石榴依赖项看起来不错 - 27.1-jre

我希望这会返回编码的字符串,因为命令行指令在相同的项目设置和配置下工作正常。

0 投票
1 回答
225 浏览

google-cloud-kms - Gooble Cloud KMS:调用 kms 客户端时代码冻结

我想通过使用加密和解密儿子值,google cloud kms我使用此代码作为示例https://github.com/GoogleCloudPlatform/java-docs-samples/blob/master/kms/src/main/java/com/example/ CryptFile.java

当代码执行该行时client.encrypt(resourceName, ByteString.copyFrom(plaintext));,它会冻结,我没有得到任何响应。

如果我使用gcloud命令加密/解密它可以工作。

我在App Engine标准(运行时 java8)上运行我的应用程序,我使用的依赖项是

我对代码进行了一些更改以获取凭据:

但我总是得到“未经身份验证:计算凭证元数据失败”。

有什么帮助吗?如果我在这里遗漏了什么,请告诉我。

问候

0 投票
1 回答
342 浏览

security - 为什么 Google 建议将 CloudKMS 应用层加密与 Cloud Storage 结合使用?

在cloud.google.com 上有关秘密管理的此页面上,有一段内容如下:

使用 Cloud KMS 中的密钥使用应用层加密。使用此选项,您可以使用存储在 Cloud KMS 中的密钥在现有 Google 加密之上对 Cloud Storage 中的对象或存储分区实施加密。这是推荐的选项。

在此之下,下一段指出 Google Cloud Storage 默认加密静态数据:

使用 Cloud Storage 存储分区中内置的默认加密。GCP 使用一种或多种加密机制对静态存储的客户内容进行加密。顾名思义,默认情况下可以使用此加密,您无需执行任何其他操作。

对于外行,为什么这里推荐应用层加密?如果存储您的对象的 GCS 存储桶受 IAM 保护,并且 GCS 已经加密了该数据,那么可以获得什么好处?

0 投票
1 回答
131 浏览

google-cloud-kms - 我可以通过密钥材料恢复导入的 HSM AES-256 密钥吗?

我已将密钥材料导入 Cloud KMS,KMS 生成了一个(AES-256)密钥,然后我将密钥材料保存在本地,并使用生成的密钥加密了一些数据文件。

之后,如果我的 Google 帐户欠费或 Cloud KMS 崩溃并导致 KMS 密钥丢失(我知道这极不可能)。我还能恢复密钥并解密加密文件吗?

具体来说,我的场景是,在我更新我的付款方式后,我的 KMS 服务恢复了。我可以使用相同的密钥材料将其重新导入 KMS 以重新生成可以解密使用旧密钥加密的文件的新密钥吗?