问题标签 [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.
google-cloud-platform - Google Cloud - 保险柜存储、用户名和密码
我在谷歌云上有一个 Windows 服务器,必须创建一个本地用户和密码才能运行该应用程序。
我想将这些凭据存储到谷歌云的保险库中吗?谷歌云中有这样的服务吗?因此,当 ansible deploy 使用这些凭据进行身份验证时
在AWS我们有参数存储,但我不太确定在谷歌云..任何想法都非常感谢。
KMS 保险库,但不是真正的密码管理器
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 的非对称椭圆曲线签名算法创建可验证的签名以太坊交易?
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,我会全力以赴!
java - 使用 Google KMS 和 Entrust 证书签署 PDF 文档
我正在尝试通过使用来自 Google KMS 的私钥生成的 CA (Entrust) 证书在 pdf 文档中进行有效签名(私钥永远不会从 KMS 中流出)。证书链为:[entrustCert, middle, rootCert]
按照我用来实现这一点的代码部分:
这是Google Cloud 的功能 - 创建和验证数字签名以进行签名验证:
目前我正在解决以下问题:
- 每个签名都无效:自应用签名以来,文档已被更改或损坏。
- 来自 Google 的签名验证始终是错误的。
google-compute-engine - 用于 kms 的 Python 身份验证
我是 google cloud kms 产品的新手,是否有关于如何使用 python 验证(来自第三方服务器)kms 的教程?目标是访问公钥,加密数据(异步)。另一台服务器将拥有更多权限并且能够解密。我不想使用 gcloud shell 客户端。
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 上完成所有这些
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
我希望这会返回编码的字符串,因为命令行指令在相同的项目设置和配置下工作正常。
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)上运行我的应用程序,我使用的依赖项是
我对代码进行了一些更改以获取凭据:
但我总是得到“未经身份验证:计算凭证元数据失败”。
有什么帮助吗?如果我在这里遗漏了什么,请告诉我。
问候
security - 为什么 Google 建议将 CloudKMS 应用层加密与 Cloud Storage 结合使用?
在cloud.google.com 上有关秘密管理的此页面上,有一段内容如下:
使用 Cloud KMS 中的密钥使用应用层加密。使用此选项,您可以使用存储在 Cloud KMS 中的密钥在现有 Google 加密之上对 Cloud Storage 中的对象或存储分区实施加密。这是推荐的选项。
在此之下,下一段指出 Google Cloud Storage 默认加密静态数据:
使用 Cloud Storage 存储分区中内置的默认加密。GCP 使用一种或多种加密机制对静态存储的客户内容进行加密。顾名思义,默认情况下可以使用此加密,您无需执行任何其他操作。
对于外行,为什么这里推荐应用层加密?如果存储您的对象的 GCS 存储桶受 IAM 保护,并且 GCS 已经加密了该数据,那么可以获得什么好处?
google-cloud-kms - 我可以通过密钥材料恢复导入的 HSM AES-256 密钥吗?
我已将密钥材料导入 Cloud KMS,KMS 生成了一个(AES-256)密钥,然后我将密钥材料保存在本地,并使用生成的密钥加密了一些数据文件。
之后,如果我的 Google 帐户欠费或 Cloud KMS 崩溃并导致 KMS 密钥丢失(我知道这极不可能)。我还能恢复密钥并解密加密文件吗?
具体来说,我的场景是,在我更新我的付款方式后,我的 KMS 服务恢复了。我可以使用相同的密钥材料将其重新导入 KMS 以重新生成可以解密使用旧密钥加密的文件的新密钥吗?